BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TBuilderCurl.cxx File Reference
#include "TrkReco/TBuilderCurl.h"
#include "TrkReco/TMLink.h"
#include "TrkReco/TTrack.h"
#include "TrackUtil/Lpav.h"
#include "TrkReco/TMLine.h"
#include "TrkReco/TRobustLineFitter.h"
#include "GaudiKernel/StatusCode.h"
#include "GaudiKernel/IInterface.h"
#include "GaudiKernel/Kernel.h"
#include "GaudiKernel/Service.h"
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/SvcFactory.h"
#include "GaudiKernel/IDataProviderSvc.h"
#include "GaudiKernel/Bootstrap.h"
#include "GaudiKernel/MsgStream.h"
#include "GaudiKernel/SmartDataPtr.h"
#include "GaudiKernel/IMessageSvc.h"

Go to the source code of this file.

Macros

#define DEBUG_CURL_DUMP   0
 
#define DEBUG_CURL_GNUPLOT   0
 
#define DEBUG_CURL_MC   0
 

Functions

int doLineFit (AList< TMLink > &points, double &m_a, double &m_b, double &chi2, double &nhits, int ipC=1)
 
int checkBorder (AList< TMLink > &layer0, AList< TMLink > &layer1, AList< TMLink > &layer2)
 
int checkBorder (AList< TMLink > &layer0, AList< TMLink > &layer1, AList< TMLink > &layer2, AList< TMLink > &layer3)
 
int offsetBorder (TMLink *l)
 
void makeList (AList< TMLink > &layer, AList< TMLink > &list, double q, int border, int checkB, TMLink *layer0)
 
unsigned findMaxLocalId (unsigned layerId)
 
unsigned isIsolation (unsigned localId, unsigned maxLocalId, unsigned layerId, int lr, const AList< TMLink > &allStereoList)
 
void findTwoHits (AList< TMLink > &twoOnLayer, const AList< TMLink > &hitsOnLayer, const AList< TMLink > &allStereoList)
 
void setLR (AList< TMLink > &hitsOnLayer, unsigned LR=0)
 
bool moveLR (AList< TMLink > &hitsOnLayer)
 
void selectGoodWires (const AList< TMLink > &allWires, AList< TMLink > &goodWires)
 
void calVirtualCircle (const TMLink &hit, const TTrack &track, const int LR, HepPoint3D &center, double &radius)
 
void moveLR (AList< TMLink > &hits, const AList< TMLink > &hitsOnLayerOrg, const TTrack &track)
 

Macro Definition Documentation

◆ DEBUG_CURL_DUMP

#define DEBUG_CURL_DUMP   0

Definition at line 29 of file TBuilderCurl.cxx.

◆ DEBUG_CURL_GNUPLOT

#define DEBUG_CURL_GNUPLOT   0

Definition at line 30 of file TBuilderCurl.cxx.

◆ DEBUG_CURL_MC

#define DEBUG_CURL_MC   0

Definition at line 31 of file TBuilderCurl.cxx.

Function Documentation

◆ calVirtualCircle()

void calVirtualCircle ( const TMLink hit,
const TTrack track,
const int  LR,
HepPoint3D center,
double &  radius 
)

Definition at line 1472 of file TBuilderCurl.cxx.

1473 {
1474 if(abs(LR) != 1)return;
1475 double Q = track.charge();
1476 int isOuter = 1;
1477 if(Q > 0. && LR == 1)isOuter = -1; // Inner
1478 else if(Q < 0. && LR == -1)isOuter = -1; // Inner
1479 radius = fabs(track.radius());
1480 center = track.helix().center();
1481 HepPoint3D wire = hit.wire()->xyPosition();
1482 center.setZ(0.);
1483 wire.setZ(0.);
1484 // new center(virtual)
1485 center = wire +
1486 (radius+((double)isOuter)*(hit.hit()->drift()))*(center-wire).unit();
1487}
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per saves r n generator level $ !Flag for chat level in !Latex Output unit
Definition: FoamA.h:90
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
float drift(unsigned) const
returns drift distance.
Definition: TMDCWireHit.h:236
const HepPoint3D & xyPosition(void) const
returns middle position of a wire. z componet is 0.
Definition: TMDCWire.h:327
const Helix & helix(void) const
returns helix parameter.
Definition: TTrack.h:477
double radius(void) const
returns signed radius.
Definition: TTrack.h:577
double charge(void) const
returns charge.
Definition: TTrack.h:504

Referenced by moveLR().

◆ checkBorder() [1/2]

int checkBorder ( AList< TMLink > &  layer0,
AList< TMLink > &  layer1,
AList< TMLink > &  layer2 
)

Definition at line 898 of file TBuilderCurl.cxx.

900 {
901 AList<TMLink> list = layer0;
902 list.append(layer1);
903 list.append(layer2);
904 int size = list.length();
905 if(size <= 1)return 0;
906 int layerId = list[0]->hit()->wire()->layerId();
907 int maxLocalId = 79;
908 if(layerId >= 15)maxLocalId = 127;
909 if(layerId >= 23)maxLocalId = 159;
910 if(layerId >= 32)maxLocalId = 207;
911 if(layerId >= 41)maxLocalId = 255;
912 int HId = (int)(0.8*(maxLocalId+1));
913 int LId = (int)(0.2*(maxLocalId+1));
914 int low = 0;
915 int high = 0;
916 for(int i=0;i>size;++i){
917 if(list[i]->hit()->wire()->localId() < LId)low = 1;
918 else if(list[i]->hit()->wire()->localId() > HId)high = 1;
919 if(low == 1 && high == 1)return 1;
920 }
921 return 0;
922}

◆ checkBorder() [2/2]

int checkBorder ( AList< TMLink > &  layer0,
AList< TMLink > &  layer1,
AList< TMLink > &  layer2,
AList< TMLink > &  layer3 
)

Definition at line 925 of file TBuilderCurl.cxx.

928 {
929 AList<TMLink> list = layer0;
930 list.append(layer1);
931 list.append(layer2);
932 list.append(layer3);
933 int size = list.length();
934 if(size <= 1)return 0;
935 int layerId = list[0]->hit()->wire()->layerId();
936 int maxLocalId = 79;
937 if(layerId >= 15)maxLocalId = 127;
938 if(layerId >= 23)maxLocalId = 159;
939 if(layerId >= 32)maxLocalId = 207;
940 if(layerId >= 41)maxLocalId = 255;
941 int HId = (int)(0.8*(maxLocalId+1));
942 int LId = (int)(0.2*(maxLocalId+1));
943 int low = 0;
944 int high = 0;
945 for(int i=0;i>size;++i){
946 if(list[i]->hit()->wire()->localId() < LId)low = 1;
947 else if(list[i]->hit()->wire()->localId() > HId)high = 1;
948 if(low == 1 && high == 1)return 1;
949 }
950 return 0;
951}

◆ doLineFit()

int doLineFit ( AList< TMLink > &  points,
double &  m_a,
double &  m_b,
double &  chi2,
double &  nhits,
int  ipC = 1 
)

Definition at line 783 of file TBuilderCurl.cxx.

786{
787 m_a = m_b = nhits = 0.;
788 chi2 = 1.e+10;
789 unsigned n = points.length();
790 double sum = double(n);
791 double sumX = 0., sumY = 0., sumX2 = 0., sumXY = 0., sumY2 = 0.;
792 for (unsigned i = 0; i < n; i++) {
793 TMLink & l = * points[i];
794
795 double x = l.position().x();
796 double y = l.position().y();
797 sumX += x;
798 sumY += y;
799 sumX2 += x * x;
800 sumXY += x * y;
801 sumY2 += y * y;
802 }
803 if(ipC != 0)sum += 1.0;// IP Constraint
804 nhits = sum;
805
806 double m_det = sum * sumX2 - sumX * sumX;
807 if(m_det == 0. && sum != 2.){
808 return -1;
809 }else if(m_det == 0. && sum == 2.){
810 double x0 = points[0]->position().x();
811 double y0 = points[0]->position().y();
812 double x1 = points[1]->position().x();
813 double y1 = points[1]->position().y();
814 if(x0 == x1)return -1;
815 m_a = (y0-y1)/(x0-x1);
816 m_b = -m_a*x1 + y1;
817 chi2 = 0.;
818 return 0;
819 }
820 chi2 = 0.;
821 m_a = (sumXY * sum - sumX * sumY) / m_det;
822 m_b = (sumX2 * sumY - sumX * sumXY) / m_det;
823
824 for(unsigned i = 0; i < n; i++) {
825 TMLink & l = * points[i];
826
827 double x = l.position().x();
828 double y = l.position().y();
829 double d = y-(x*m_a+m_b);
830 chi2 += d*d;
831 }
832
833 return 0;
834}
const Int_t n
Double_t x[10]
*********DOUBLE PRECISION m_pi INTEGER m_lenwt !max no of aux weights INTEGER m_phmax !maximum photon multiplicity ISR FSR *DOUBLE COMPLEX m_Pauli4 DOUBLE COMPLEX m_AmpBorn DOUBLE COMPLEX m_AmpBoxy DOUBLE COMPLEX m_AmpBorn1 DOUBLE COMPLEX m_AmpBorn2 DOUBLE COMPLEX m_AmpExpo2p DOUBLE COMPLEX m_Rmat DOUBLE COMPLEX m_BoxGZut !DOUBLE COMPLEX m_F1finPair2 !DOUBLE PRECISION m_Vcut DOUBLE PRECISION m_Alfinv DOUBLE PRECISION m_Lorin1 DOUBLE PRECISION m_Lorin2 DOUBLE PRECISION m_b
Definition: GPS.h:30
double y[1000]
int nhits

◆ findMaxLocalId()

unsigned findMaxLocalId ( unsigned  layerId)

Definition at line 1261 of file TBuilderCurl.cxx.

1261 {
1262/* unsigned maxLocalId = 79;
1263 if(superLayerId == 3)maxLocalId = 127;
1264 else if(superLayerId == 5)maxLocalId = 159;
1265 else if(superLayerId == 7)maxLocalId = 207;
1266 else if(superLayerId == 9)maxLocalId = 255;
1267 return maxLocalId;
1268*/
1269//changed to BESiii, Liuqg
1270 unsigned maxLocalId = 39;
1271 if(layerId == 1)maxLocalId = 43;
1272 else if(layerId == 2)maxLocalId = 47;
1273 else if(layerId == 3)maxLocalId = 55;
1274 else if(layerId == 4)maxLocalId = 63;
1275 else if(layerId == 5)maxLocalId = 71;
1276 else if(layerId == 6 || layerId == 7 )maxLocalId = 79;
1277 else if(layerId == 20 || layerId == 21 || layerId == 22 || layerId == 23)maxLocalId = 159;
1278 else if(layerId == 24 || layerId == 25 || layerId == 26 || layerId == 27)maxLocalId = 175;
1279 else if(layerId == 28 || layerId == 29 || layerId == 30 || layerId == 31)maxLocalId = 207;
1280 else if(layerId == 32 || layerId == 33 || layerId == 34 || layerId == 35)maxLocalId = 239;
1281
1282 return maxLocalId;
1283}

Referenced by findTwoHits().

◆ findTwoHits()

void findTwoHits ( AList< TMLink > &  twoOnLayer,
const AList< TMLink > &  hitsOnLayer,
const AList< TMLink > &  allStereoList 
)

Definition at line 1313 of file TBuilderCurl.cxx.

1315 {
1316 //...finds "two" seq. and isolated hits.
1317 //...and then sets LR for selected hits.
1318 if(hitsOnLayer.length() == 0 ||
1319 hitsOnLayer.length() > 3)return;
1320 twoOnLayer.removeAll();
1321 if(hitsOnLayer.length() == 1){
1322 if(hitsOnLayer[0]->wire()->superLayerId() == 0)return; //origin is == 1, Liuqg 060921
1323 unsigned maxLocalId = findMaxLocalId(hitsOnLayer[0]->wire()->layerId());
1324 unsigned R = isIsolation(hitsOnLayer[0]->wire()->localId(),
1325 maxLocalId,
1326 hitsOnLayer[0]->wire()->layerId(),1,allStereoList);
1327 unsigned L = isIsolation(hitsOnLayer[0]->wire()->localId(),
1328 maxLocalId,
1329 hitsOnLayer[0]->wire()->layerId(),-1,allStereoList);
1330 if(R == 1 && L == 0){
1331 unsigned nextLocalId = hitsOnLayer[0]->wire()->localIdForPlus()+1;
1332 L = isIsolation(nextLocalId,
1333 maxLocalId,
1334 hitsOnLayer[0]->wire()->layerId(),-1,allStereoList);
1335 if(L == 1){ // xuox
1336 hitsOnLayer[0]->leftRight(1); // R
1337 hitsOnLayer[0]->position(hitsOnLayer[0]->arcZ(1));
1338 twoOnLayer.append(hitsOnLayer[0]);
1339 }
1340 }else if(R == 0 && L == 1){
1341 unsigned nextLocalId = hitsOnLayer[0]->wire()->localIdForMinus()+1;
1342 R = isIsolation(nextLocalId,
1343 maxLocalId,
1344 hitsOnLayer[0]->wire()->layerId(),1,allStereoList);
1345 if(R == 1){ // xoux
1346 hitsOnLayer[0]->leftRight(0); // L
1347 hitsOnLayer[0]->position(hitsOnLayer[0]->arcZ(0));
1348 twoOnLayer.append(hitsOnLayer[0]);
1349 }
1350 }
1351 }
1352 if(hitsOnLayer.length() == 2){
1353 if(hitsOnLayer[0]->wire()->localIdForPlus()+1 ==
1354 hitsOnLayer[1]->wire()->localId()){
1355 unsigned maxLocalId = findMaxLocalId(hitsOnLayer[0]->wire()->layerId());
1356 unsigned R = isIsolation(hitsOnLayer[0]->wire()->localId(),
1357 maxLocalId,
1358 hitsOnLayer[0]->wire()->layerId(),1,allStereoList);
1359 unsigned L = isIsolation(hitsOnLayer[1]->wire()->localId(),
1360 maxLocalId,
1361 hitsOnLayer[1]->wire()->layerId(),-1,allStereoList);
1362 if(R == 1 && L == 1){ // xoox
1363 hitsOnLayer[0]->leftRight(1); // R
1364 hitsOnLayer[0]->position(hitsOnLayer[0]->arcZ(1));
1365 hitsOnLayer[1]->leftRight(0); // L
1366 hitsOnLayer[1]->position(hitsOnLayer[1]->arcZ(0));
1367 twoOnLayer.append(hitsOnLayer[0]);
1368 twoOnLayer.append(hitsOnLayer[1]);
1369 }
1370 }
1371 }
1372 if(hitsOnLayer.length() == 3){
1373 if(hitsOnLayer[0]->wire()->localIdForPlus()+1 ==
1374 hitsOnLayer[1]->wire()->localId() &&
1375 hitsOnLayer[1]->wire()->localIdForPlus()+1 !=
1376 hitsOnLayer[2]->wire()->localId()){
1377 unsigned maxLocalId = findMaxLocalId(hitsOnLayer[0]->wire()->layerId());
1378 unsigned R = isIsolation(hitsOnLayer[0]->wire()->localId(),
1379 maxLocalId,
1380 hitsOnLayer[0]->wire()->layerId(),1,allStereoList);
1381 unsigned L = isIsolation(hitsOnLayer[1]->wire()->localId(),
1382 maxLocalId,
1383 hitsOnLayer[1]->wire()->layerId(),-1,allStereoList);
1384 if(R == 1 && L == 1){ // oxoox
1385 hitsOnLayer[0]->leftRight(1); // R
1386 hitsOnLayer[0]->position(hitsOnLayer[0]->arcZ(1));
1387 hitsOnLayer[1]->leftRight(0); // L
1388 hitsOnLayer[1]->position(hitsOnLayer[1]->arcZ(0));
1389 twoOnLayer.append(hitsOnLayer[0]);
1390 twoOnLayer.append(hitsOnLayer[1]);
1391 }
1392 }else if(hitsOnLayer[0]->wire()->localIdForPlus()+1 !=
1393 hitsOnLayer[1]->wire()->localId() &&
1394 hitsOnLayer[1]->wire()->localIdForPlus()+1 ==
1395 hitsOnLayer[2]->wire()->localId()){
1396 unsigned maxLocalId = findMaxLocalId(hitsOnLayer[1]->wire()->layerId());
1397 unsigned R = isIsolation(hitsOnLayer[1]->wire()->localId(),
1398 maxLocalId,
1399 hitsOnLayer[1]->wire()->layerId(),1,allStereoList);
1400 unsigned L = isIsolation(hitsOnLayer[2]->wire()->localId(),
1401 maxLocalId,
1402 hitsOnLayer[2]->wire()->layerId(),-1,allStereoList);
1403 if(R == 1 && L == 1){ // xooxo
1404 hitsOnLayer[1]->leftRight(1); // R
1405 hitsOnLayer[1]->position(hitsOnLayer[1]->arcZ(1));
1406 hitsOnLayer[2]->leftRight(0); // L
1407 hitsOnLayer[2]->position(hitsOnLayer[2]->arcZ(0));
1408 twoOnLayer.append(hitsOnLayer[1]);
1409 twoOnLayer.append(hitsOnLayer[2]);
1410 }
1411 }
1412 }
1413 /* if(twoOnLayer.length() != 0){
1414 std::cout << "TWO " << twoOnLayer.length() << std::endl;
1415 } */
1416}
unsigned findMaxLocalId(unsigned layerId)
unsigned isIsolation(unsigned localId, unsigned maxLocalId, unsigned layerId, int lr, const AList< TMLink > &allStereoList)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)
Definition: TUtil.h:27

◆ isIsolation()

unsigned isIsolation ( unsigned  localId,
unsigned  maxLocalId,
unsigned  layerId,
int  lr,
const AList< TMLink > &  allStereoList 
)

Definition at line 1286 of file TBuilderCurl.cxx.

1290 {
1291 unsigned findId;
1292 if(lr == 1){ // R : ox, Dose a wire exist at "x"?
1293 findId = maxLocalId;
1294 if(localId != 0)findId = localId-1;
1295 }else if(lr == -1){ // L : xo, Dose a wire exist at "x"?
1296 findId = 0;
1297 if(localId != maxLocalId)findId = localId+1;
1298 }else{
1299 return 1;
1300 }
1301 unsigned isolate = 1;
1302 for(int i=0;i<allStereoList.length();++i){
1303 if(allStereoList[i]->wire()->layerId() == layerId &&
1304 allStereoList[i]->wire()->localId() == findId){
1305 isolate = 0;
1306 break;
1307 }
1308 }
1309 return isolate;
1310}

Referenced by findTwoHits().

◆ makeList()

void makeList ( AList< TMLink > &  layer,
AList< TMLink > &  list,
double  q,
int  border,
int  checkB,
TMLink layer0 
)

Definition at line 965 of file TBuilderCurl.cxx.

965 {
966 int n = layer.length();
967 if(checkB == 0){
968 for(int i=0;i<n;++i){
969 if(q < 0.){
970 if(layer[i]->hit()->wire()->localId() >= border)list.append(layer[i]);
971 }else{
972 if(layer[i]->hit()->wire()->localId() <= border)list.append(layer[i]);
973 }
974 }
975 }else{
976 //difficult!! --> puls offset
977 int offset = offsetBorder(layer0);
978 if(border*2 < offset)border += offset;
979 for(int i=0;i<n;++i){
980 int lId = layer[i]->hit()->wire()->localId();
981 if(lId*2 < offset)lId += offset;
982 if(q < 0.){
983 if(lId >= border)list.append(layer[i]);
984 }else{
985 if(lId <= border)list.append(layer[i]);
986 }
987 }
988 }
989}
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
int offsetBorder(TMLink *l)

◆ moveLR() [1/2]

void moveLR ( AList< TMLink > &  hits,
const AList< TMLink > &  hitsOnLayerOrg,
const TTrack track 
)

Definition at line 1490 of file TBuilderCurl.cxx.

1492 {
1493 AList<TMLink> hitsOnLayer = hitsOnLayerOrg;
1494 hitsOnLayer.remove(hits);
1495 if(hitsOnLayer.length() == 0)return;
1496
1497 unsigned nHits = hits.length();
1498 if(nHits == 0)return;
1499
1500 //...finds "ref" from hits.
1501 // ex) LLLL|, LLL|R, LL|RR, L|RRR, |RRRR
1502 int LR = -1; // L
1503 TMLink ref;
1504 if(hits[nHits-1]->leftRight() == 1){ // All R
1505 LR = 1; // R
1506 ref = *hits[nHits-1];
1507 }
1508 for(unsigned i=0;i<nHits;++i){
1509 if(hits[i]->leftRight() == 0){ // L
1510 ref = *hits[i];
1511 break;
1512 }
1513 }
1514
1515 HepPoint3D center;
1516 double radius;
1517 calVirtualCircle(ref,track,LR,center,radius);
1518
1519 double Q = track.charge();
1520 for(int i=0;i<hitsOnLayer.length();++i){
1521 int isOuter = 1;
1522 if((hitsOnLayer[i]->wire()->xyPosition()-center).mag()-radius < 0.)isOuter = -1;
1523 if(Q > 0. && isOuter == 1){
1524 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(0)); // L
1525 hitsOnLayer[i]->leftRight(0); // L
1526 }else if(Q > 0. && isOuter == -1){
1527 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(1)); // R
1528 hitsOnLayer[i]->leftRight(1); // R
1529 }else if(Q < 0. && isOuter == 1){
1530 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(1)); // R
1531 hitsOnLayer[i]->leftRight(1); // R
1532 }else if(Q < 0. && isOuter == -1){
1533 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(0)); // L
1534 hitsOnLayer[i]->leftRight(0); // L
1535 }
1536 }
1537}
void calVirtualCircle(const TMLink &hit, const TTrack &track, const int LR, HepPoint3D &center, double &radius)

◆ moveLR() [2/2]

bool moveLR ( AList< TMLink > &  hitsOnLayer)

Definition at line 1434 of file TBuilderCurl.cxx.

1434 {
1435 unsigned nHits = hitsOnLayer.length();
1436 if(nHits == 0)return false;
1437 // ex) LLLL --> LLLR --> LLRR --> LRRR --> RRRR
1438 if(hitsOnLayer[nHits-1]->leftRight() == 1)return false; // All R
1439 for(unsigned i=0;i<nHits;++i){
1440 if(hitsOnLayer[i]->leftRight() == 0){ // L
1441 hitsOnLayer[i]->leftRight(1); // R
1442 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(1));
1443 return true;
1444 }
1445 }
1446 return false;
1447}

◆ offsetBorder()

int offsetBorder ( TMLink l)

Definition at line 954 of file TBuilderCurl.cxx.

954 {
955 int layerId = l->hit()->wire()->layerId();
956 int maxLocalId = 79;
957 if(layerId >= 15)maxLocalId = 127;
958 if(layerId >= 23)maxLocalId = 159;
959 if(layerId >= 32)maxLocalId = 207;
960 if(layerId >= 41)maxLocalId = 255;
961 return maxLocalId+1;
962}
const TMDCWire *const wire(void) const
returns a pointer to a TMDCWire.
Definition: TMDCWireHit.h:218
unsigned layerId(void) const
returns layer id.
Definition: TMDCWire.h:219

Referenced by makeList().

◆ selectGoodWires()

void selectGoodWires ( const AList< TMLink > &  allWires,
AList< TMLink > &  goodWires 
)

Definition at line 1450 of file TBuilderCurl.cxx.

1451 {
1452 goodWires.removeAll();
1453 for(int i=0;i<allWires.length();++i){
1454 if(allWires[i]->position().x() != -999.){
1455 goodWires.append(allWires[i]);
1456 }
1457 }
1458}

◆ setLR()

void setLR ( AList< TMLink > &  hitsOnLayer,
unsigned  LR = 0 
)

Definition at line 1419 of file TBuilderCurl.cxx.

1419 {
1420 // LR = 0 : L
1421 // = 1 : R
1422 for(unsigned i=0;i<hitsOnLayer.length();++i){
1423 if(LR == 0){
1424 hitsOnLayer[i]->leftRight(0); // L
1425 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(0));
1426 }else{
1427 hitsOnLayer[i]->leftRight(1); // R
1428 hitsOnLayer[i]->position(hitsOnLayer[i]->arcZ(1));
1429 }
1430 }
1431}