FEDRA emulsion software from the OPERA Collaboration
EdbPattern Class Reference

#include <EdbPattern.h>

Inheritance diagram for EdbPattern:
Collaboration diagram for EdbPattern:

Public Member Functions

Int_t AddPattern (EdbPattern &p)
 
Int_t Brick () const
 
TIndexCellCell () const
 
 EdbPattern ()
 emulsion side 0/1/2, defined when possible More...
 
 EdbPattern (EdbPattern &p)
 
 EdbPattern (float x0, float y0, float z0, int n=0)
 
EdbPatternExtractSubPattern (float min[5], float max[5], int MCevt=-1)
 
EdbPatternExtractSubPatternXY (float xmin, float xmax, float ymin, float ymax)
 
void FillCell (float stepx, float stepy, float steptx, float stepty)
 
int FindCompliments (EdbSegP &s, TObjArray &arr, float nsig, float nsigt)
 
EdbSegPFindSegment (int id)
 
int ID () const
 
Int_t NAff () const
 
int PID () const
 
Int_t Plate () const
 
void Reset ()
 
EdbID ScanID () const
 
void Set0 ()
 
void SetID (int id)
 
void SetNAff (int n)
 
void SetPID (int pid)
 
void SetScanID (EdbID id)
 
void SetSegmentsPID ()
 
void SetSegmentsScanID (EdbID id)
 
void SetSide (int side)
 
void SetSigma (float sx, float sy, float stx, float sty)
 
void SetStep (float stepx, float stepy, float steptx, float stepty)
 
Int_t Side () const
 
float StepTX () const
 
float StepTY () const
 
float StepX () const
 
float StepY () const
 
float SummaryPath ()
 
float Xmean ()
 
float Ymean ()
 
virtual ~EdbPattern ()
 
- Public Member Functions inherited from EdbSegmentsBox
EdbSegPAddSegment (EdbSegP &s)
 
EdbSegPAddSegment (EdbSegP &s1, EdbSegP &s2)
 
EdbSegPAddSegment (int i, EdbSegP &s)
 
EdbSegPAddSegment (int id, float x, float y, float tx, float ty, float w=0, int flag=0)
 
EdbSegPAddSegmentNoDuplicate (EdbSegP &s)
 
EdbPointAt (int i) const
 
Int_t CalculateAXAY (EdbSegmentsBox *p, EdbAffine2D *affA)
 
Int_t CalculateXY (EdbSegmentsBox *p, EdbAffine2D *aff)
 
Float_t Diff (EdbSegmentsBox &p)
 
Float_t DiffAff (EdbAffine2D *aff)
 
Float_t DZ () const
 
 EdbSegmentsBox (EdbSegmentsBox &box)
 
 EdbSegmentsBox (float x0, float y0, float z0, int nseg=0)
 
 EdbSegmentsBox (int nseg=0)
 
void Expand (int n)
 
Int_t GetN () const
 
EdbSegPGetSegment (int i) const
 
EdbSegPGetSegmentLast () const
 
TClonesArray * GetSegments () const
 
voidGetSegmentsAddr ()
 
Float_t GetSize (Int_t XorY)
 
Float_t GetSizeX ()
 
Float_t GetSizeXY ()
 
Float_t GetSizeY ()
 
Float_t GetTrackDensity ()
 
Float_t GetTrackDensitymm2 ()
 
Int_t N () const
 
void Print (Option_t *opt="") const
 
void ProjectTo (const float dz)
 
void RemoveAngMargins (float tx0, float ty0, float dtx, float dty)
 
void RemovePosMargins (float x0, float y0, float dx, float dy)
 
void Reset ()
 
void Set0 ()
 
void SetSegmentsDZ (float dz)
 
void SetSegmentsFlag (int flag)
 
void SetSegmentsPlate (int plate)
 
void SetSegmentsW (float w)
 
void SetSegmentsZ ()
 
void SetX (float x)
 
void SetY (float y)
 
void SetZ (float z)
 
void TransformA (const EdbAffine2D *affA)
 
void TransformARot (const EdbAffine2D *affA)
 
void TransformShr (const float shr)
 
Float_t X () const
 
Float_t Y () const
 
Float_t Z () const
 
virtual ~EdbSegmentsBox ()
 
- Public Member Functions inherited from EdbPointsBox2D
virtual Float_t DeltaX ()
 
virtual Float_t DeltaY ()
 
virtual void DrawPoints (int style=23, int col=4, float size=1., bool same=false)
 
 EdbPointsBox2D ()
 
 EdbPointsBox2D (const EdbPointsBox2D &pb)
 
virtual const EdbAffine2DGetKeep () const
 
virtual void GetKeep (EdbAffine2D &aff)
 
virtual void Retransform ()
 
virtual void Rotate (float angle)
 
virtual void ScaleX (float scaleFactor)
 
virtual void ScaleY (float scaleFactor)
 
virtual void SetKeep (float a11, float a12, float a21, float a22, float b1, float b2)
 
virtual void ShiftX (float offset)
 
virtual void ShiftY (float offset)
 
virtual void SmearXY (float sigmax, float sigmay)
 
virtual void Substruct (EdbPointsBox2D *b)
 
virtual void Transform (const EdbAffine2D *a)
 
virtual TH1F * Xhist ()
 
virtual Float_t Xmax () const
 
virtual Float_t Xmin () const
 
virtual TH2F * XYhist ()
 
virtual TH1F * Yhist ()
 
virtual Float_t Ymax () const
 
virtual Float_t Ymin () const
 
virtual ~EdbPointsBox2D ()
 
- Public Member Functions inherited from EdbPoint3D
virtual void Substruct (EdbPoint *p)
 
virtual void Test () const
 
virtual void TestPoint3D () const
 
virtual void Transform (const EdbAffine3D *a)
 
virtual ~EdbPoint3D ()
 
- Public Member Functions inherited from EdbPoint2D
virtual void TestPoint2D () const
 
virtual ~EdbPoint2D ()
 
- Public Member Functions inherited from EdbPoint
virtual ~EdbPoint ()
 

Private Attributes

TIndexCelleCell
 
Int_t eFlag
 
Int_t eID
 
Int_t eNAff
 
Int_t ePID
 
EdbID eScanID
 
Int_t eSide
 main scanning ID for this pattern, defined when possible More...
 
Float_t eSigma [4]
 
Float_t eStepTX
 
Float_t eStepTY
 
Float_t eStepX
 associated with eSegments More...
 
Float_t eStepY
 

Constructor & Destructor Documentation

◆ EdbPattern() [1/3]

EdbPattern::EdbPattern ( )

emulsion side 0/1/2, defined when possible

1348  : EdbSegmentsBox()
1349 {
1350  eCell = new TIndexCell();
1351  Set0();
1352 }
TIndexCell * eCell
Definition: EdbPattern.h:286
void Set0()
Definition: EdbPattern.cxx:1383
EdbSegmentsBox(int nseg=0)
Definition: EdbPattern.cxx:30
Definition: TIndexCell.h:19

◆ EdbPattern() [2/3]

EdbPattern::EdbPattern ( EdbPattern p)
1362  :EdbSegmentsBox(p)
1363 {
1364  eID = p.eID;
1365  ePID = p.ePID;
1366  eSide = p.eSide;
1367  eScanID = p.eScanID;
1368  eFlag = p.eFlag;
1369  eNAff = p.eNAff;
1370  eStepX = p.eStepX; eStepY = p.eStepY;
1371  eStepTX = p.eStepTX; eStepTY = p.eStepTY;
1372  for(int i=0; i<4; i++) eSigma[i] = p.eSigma[i];
1373  if(p.eCell) eCell = new TIndexCell(*(p.eCell));
1374 }
Int_t eID
Definition: EdbPattern.h:284
Float_t eStepY
Definition: EdbPattern.h:287
Int_t ePID
Definition: EdbPattern.h:285
Int_t eNAff
Definition: EdbPattern.h:291
Int_t eSide
main scanning ID for this pattern, defined when possible
Definition: EdbPattern.h:293
EdbID eScanID
Definition: EdbPattern.h:292
Float_t eStepTY
Definition: EdbPattern.h:288
Float_t eStepTX
Definition: EdbPattern.h:288
Float_t eSigma[4]
Definition: EdbPattern.h:289
Int_t eFlag
Definition: EdbPattern.h:290
Float_t eStepX
associated with eSegments
Definition: EdbPattern.h:287
p
Definition: testBGReduction_AllMethods.C:8

◆ EdbPattern() [3/3]

EdbPattern::EdbPattern ( float  x0,
float  y0,
float  z0,
int  n = 0 
)
1355  : EdbSegmentsBox(x0,y0,z0,n)
1356 {
1357  Set0();
1358  eCell = new TIndexCell();
1359 }
brick z0
Definition: RecDispMC.C:106

◆ ~EdbPattern()

EdbPattern::~EdbPattern ( )
virtual
1378 {
1379  if(eCell) { delete eCell; eCell=0; }
1380 }

Member Function Documentation

◆ AddPattern()

Int_t EdbPattern::AddPattern ( EdbPattern p)
1564 {
1565  int n=p.N();
1566  Expand( N()+n );
1567  for(int i=0; i<n; i++)
1568  AddSegment( *(p.GetSegment(i)) );
1569  return n;
1570 }
Int_t N() const
Definition: EdbPattern.h:89
void Expand(int n)
Definition: EdbPattern.h:71
EdbSegP * AddSegment(int i, EdbSegP &s)
Definition: EdbPattern.cxx:71

◆ Brick()

Int_t EdbPattern::Brick ( ) const
inline
341 {return eScanID.eBrick;}
Int_t eBrick
Definition: EdbID.h:10

◆ Cell()

TIndexCell* EdbPattern::Cell ( ) const
inline
330 {return eCell;}

◆ ExtractSubPattern()

EdbPattern * EdbPattern::ExtractSubPattern ( float  min[5],
float  max[5],
int  MCevt = -1 
)
1594 {
1595  //
1596  // return the copy of selected segments
1597  //
1598  EdbPattern *pat = new EdbPattern( X(), Y(), Z() );
1599  EdbSegP *s;
1600  int nseg = N();
1601 
1602  for(int i=0; i<nseg; i++) {
1603  s = GetSegment(i);
1604 
1605  if (s->MCEvt()!=MCEvt && s->MCEvt()>0 && MCEvt>=0) continue;
1606  // Do not continue not in case MCEvt was not specified at all.
1607  // This allows backward compability.
1608 
1609  if(s->X() < min[0]) continue;
1610  if(s->Y() < min[1]) continue;
1611  if(s->TX() < min[2]) continue;
1612  if(s->TY() < min[3]) continue;
1613  if(s->W() < min[4]) continue;
1614 
1615  if(s->X() > max[0]) continue;
1616  if(s->Y() > max[1]) continue;
1617  if(s->TX() > max[2]) continue;
1618  if(s->TY() > max[3]) continue;
1619  if(s->W() > max[4]) continue;
1620 
1621  pat->AddSegment(*s);
1622  }
1623 
1624  // Set ID() and PID() to have consistent values of this pattern:
1625  pat->SetID(this->ID());
1626  pat->SetPID(this->PID());
1627 
1628  return pat;
1629 }
float min(TClonesArray *t)
Definition: bitview.cxx:275
int max
Definition: check_shower.C:41
Definition: EdbPattern.h:280
void SetID(int id)
Definition: EdbPattern.h:318
void SetPID(int pid)
Definition: EdbPattern.h:319
int PID() const
Definition: EdbPattern.h:329
int ID() const
Definition: EdbPattern.h:328
EdbPattern()
emulsion side 0/1/2, defined when possible
Definition: EdbPattern.cxx:1348
Definition: EdbSegP.h:18
Float_t TX() const
Definition: EdbSegP.h:172
Float_t X() const
Definition: EdbSegP.h:170
Float_t Y() const
Definition: EdbSegP.h:171
Float_t W() const
Definition: EdbSegP.h:148
Float_t TY() const
Definition: EdbSegP.h:173
Int_t MCEvt() const
Definition: EdbSegP.h:142
Float_t Z() const
Definition: EdbPattern.h:87
Float_t Y() const
Definition: EdbPattern.h:86
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
Float_t X() const
Definition: EdbPattern.h:85
EdbSegP * s
Definition: tlg2pattern.C:32

◆ ExtractSubPatternXY()

EdbPattern * EdbPattern::ExtractSubPatternXY ( float  xmin,
float  xmax,
float  ymin,
float  ymax 
)
1574 {
1575  EdbPattern *pat = new EdbPattern( X(), Y(), Z() );
1576  EdbSegP *s;
1577  int nseg = N();
1578 
1579  for(int i=0; i<nseg; i++) {
1580  s = GetSegment(i);
1581  if(s->X() < xmin || s->X() > xmax || s->Y() < ymin || s->Y() > ymax) continue;
1582  pat->AddSegment(*s);
1583  }
1584 
1585  // Set ID() and PID() to have consistent values of this pattern:
1586  pat->SetID(this->ID());
1587  pat->SetPID(this->PID());
1588 
1589  return pat;
1590 }
float xmin
Definition: emthickness.cpp:61
float ymin
Definition: emthickness.cpp:63
float xmax
Definition: emthickness.cpp:61
float ymax
Definition: emthickness.cpp:63

◆ FillCell()

void EdbPattern::FillCell ( float  stepx,
float  stepy,
float  steptx,
float  stepty 
)
1417 {
1418  // fill cells with fixed size at z=zPat
1419 
1420  TIndexCell *cell = Cell();
1421  if(cell) cell->Drop();
1422  SetStep(stepx,stepy,steptx,stepty);
1423 
1424  float x,y,tx,ty,dz;
1425  Long_t val[5]; // x,y,ax,ay,i
1426  EdbSegP *p;
1427  int npat = N();
1428  for(int i=0; i<npat; i++ ) {
1429  p = GetSegment(i);
1430  dz = Z() - p->Z();
1431  tx = p->TX();
1432  ty = p->TY();
1433  x = p->X() + tx*dz;
1434  y = p->Y() + ty*dz;
1435  val[0]= (Long_t)( x / stepx );
1436  val[1]= (Long_t)( y / stepy );
1437  val[2]= (Long_t)( tx/ steptx );
1438  val[3]= (Long_t)( ty/ stepty );
1439  val[4]= (Long_t)(i);
1440  cell->Add(5,val);
1441  }
1442  cell->Sort();
1443 
1444 }
brick dz
Definition: RecDispMC.C:107
Int_t npat
Definition: Xi2HatStartScript.C:33
TIndexCell * Cell() const
Definition: EdbPattern.h:330
void SetStep(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPattern.h:306
void Drop()
Definition: TIndexCell.cpp:237
void Sort(Int_t upto=kMaxInt)
Definition: TIndexCell.cpp:539
Int_t Add(Int_t narg, Long_t varg[])
Definition: TIndexCell.cpp:602

◆ FindCompliments()

int EdbPattern::FindCompliments ( EdbSegP s,
TObjArray &  arr,
float  nsig,
float  nsigt 
)

TODO: move this cycle into iterator

1448 {
1449  // return the array of segments compatible with the
1450  // prediction segment s with the accuracy of nsig (in sigmas)
1451 
1452  float dz = Z()-s.Z();
1453  float x = s.X() + s.TX()*dz;
1454  float y = s.Y() + s.TY()*dz;
1455  float sx = TMath::Sqrt( s.SX() + s.STX()*dz*dz );
1456  float sy = TMath::Sqrt( s.SY() + s.STY()*dz*dz );
1457 
1458  float stx = s.STX();
1459  if (stx <= 0.) stx = 1.;
1460  float sty = s.STY();
1461  if (sty <= 0.) sty = 1.;
1462 
1463 // printf("Step: %f %f %f %f\n",StepX(),StepY(),StepTX(),StepTY());
1464 // printf("Sigm: %f %f %f %f\n",sx,sy,TMath::Sqrt(stx),TMath::Sqrt(sty));
1465 
1466 
1467  long vcent[4] = { (long)(x/StepX()),
1468  (long)(y/StepY()),
1469  (long)(s.TX()/StepTX()),
1470  (long)(s.TY()/StepTY()) };
1471  long vdiff[4] = { (long)(sx*nsigx/StepX()+1),
1472  (long)(sy*nsigx/StepY()+1),
1473  (long)(TMath::Sqrt(stx)*nsigt/StepTX()+1),
1474  (long)(TMath::Sqrt(sty)*nsigt/StepTY()+1) };
1475 
1476  sy*=sy;
1477  sx*=sx;
1478 
1479  float dx,dy,dtx,dty;
1480 
1481  int nseg=0;
1482  EdbSegP *seg=0;
1483 
1484 
1485  //printf("find compliments in pattern %d\n",ID());
1486  //s.Print();
1487 
1488  long vmin[4],vmax[4];
1489  for(int i=0; i<4; i++) {
1490  vmin[i] = vcent[i]-vdiff[i];
1491  vmax[i] = vcent[i]+vdiff[i];
1492  //printf("%f +- %f \t",(float)vcent[i],(float)vdiff[i]);
1493  }
1494  //printf("\n");
1495 
1497 
1498  TIndexCell *c1=0,*c2=0,*c3=0,*c4=0;
1499  for(vcent[0]=vmin[0]; vcent[0]<=vmax[0]; vcent[0]++) {
1500  c1 = eCell->Find(vcent[0]);
1501  if(!c1) continue;
1502  for(vcent[1]=vmin[1]; vcent[1]<=vmax[1]; vcent[1]++) {
1503  c2 = c1->Find(vcent[1]);
1504  if(!c2) continue;
1505  for(vcent[2]=vmin[2]; vcent[2]<=vmax[2]; vcent[2]++) {
1506  c3 = c2->Find(vcent[2]);
1507  if(!c3) continue;
1508  for(vcent[3]=vmin[3]; vcent[3]<=vmax[3]; vcent[3]++) {
1509  c4 = c3->Find(vcent[3]);
1510  if(!c4) continue;
1511 
1512  for(int i=0; i<c4->N(); i++) {
1513  seg = GetSegment(c4->At(i)->Value());
1514  dtx=s.TX()-seg->TX();
1515  if( dtx*dtx > stx*nsigt*nsigt ) continue;
1516  dty=s.TY()-seg->TY();
1517  if( dty*dty > sty*nsigt*nsigt ) continue;
1518  dz = seg->Z()-s.Z();
1519  dx=s.X()+s.TX()*dz-seg->X();
1520  if( dx*dx > sx*nsigx*nsigx ) continue;
1521  dy=s.Y()+s.TY()*dz-seg->Y();
1522  if( dy*dy > sy*nsigx*nsigx ) continue;
1523  //if(!s.IsCompatible(*seg,nsigx,nsigt)) continue;
1524  arr.Add(seg);
1525  nseg++;
1526  }
1527 
1528  }
1529  }
1530  }
1531  }
1532 
1533 
1534 // TIndexCellIterV itr( eCell, 4, vcent, vdiff );
1535 // const TIndexCell *c=0;
1536 // while( (c=itr.Next()) )
1537 // for(int i=0; i<c->N(); i++) {
1538 // seg = GetSegment(c->At(i)->Value());
1539 // if(!s.IsCompatible(*seg,nsigx,nsigt)) continue;
1540 // arr.Add(seg);
1541 // nseg++;
1542 // }
1543 
1544  return nseg;
1545 }
float StepX() const
Definition: EdbPattern.h:324
float StepTY() const
Definition: EdbPattern.h:327
float StepTX() const
Definition: EdbPattern.h:326
float StepY() const
Definition: EdbPattern.h:325
Float_t STX() const
Definition: EdbSegP.h:161
Float_t SY() const
Definition: EdbSegP.h:160
Float_t Z() const
Definition: EdbSegP.h:150
Float_t STY() const
Definition: EdbSegP.h:162
Float_t SX() const
Definition: EdbSegP.h:159
TIndexCell * Find(Int_t narg, Long_t varg[]) const
Definition: TIndexCell.cpp:613
TCanvas * c1
Definition: energy.C:13
TCanvas * c2
Definition: energy.C:26
MFTYPE32 long(MFTYPE MPTYPE *MOCRHOOKFCTPTR)(long HookType
Definition: milocr.h:32

◆ FindSegment()

EdbSegP * EdbPattern::FindSegment ( int  id)
1396 {
1397  for(int i=0; i<N(); i++) if(GetSegment(i)->ID()==id) return GetSegment(i);
1398  return 0;
1399 }
Int_t ID() const
Definition: EdbSegP.h:144
UInt_t id
Definition: tlg2pattern.C:118

◆ ID()

int EdbPattern::ID ( ) const
inline
328 {return eID;}

◆ NAff()

Int_t EdbPattern::NAff ( ) const
inline
323 {return eNAff;}

◆ PID()

int EdbPattern::PID ( ) const
inline
329 {return ePID;}

◆ Plate()

Int_t EdbPattern::Plate ( ) const
inline
340 {return eScanID.ePlate;}
Int_t ePlate
Definition: EdbID.h:11

◆ Reset()

void EdbPattern::Reset ( )
1633 {
1634  ((EdbSegmentsBox *)this)->Reset();
1635  Set0();
1636  if(eCell) eCell->Drop();
1637 }
Definition: EdbPattern.h:27

◆ ScanID()

EdbID EdbPattern::ScanID ( ) const
inline
339 {return eScanID;}

◆ Set0()

void EdbPattern::Set0 ( )
1384 {
1385  eID = 0;
1386  ePID = 0;
1387  eFlag = 0;
1388  eNAff = 0;
1390  for(int i=0; i<4; i++) eSigma[i]=0;
1391  eSide=0;
1392 }

◆ SetID()

void EdbPattern::SetID ( int  id)
inline
318 {eID=id;}

◆ SetNAff()

void EdbPattern::SetNAff ( int  n)
inline
320 {eNAff=n;}

◆ SetPID()

void EdbPattern::SetPID ( int  pid)
inline
319 {ePID=pid;}
int pid[1000]
Definition: m2track.cpp:13

◆ SetScanID()

void EdbPattern::SetScanID ( EdbID  id)
inline
303 {eScanID=id;}

◆ SetSegmentsPID()

void EdbPattern::SetSegmentsPID ( )
1549 {
1550  int nseg = N();
1551  for(int i=0; i<nseg; i++) {
1552  GetSegment(i)->SetPID(ID()); //PID of the segment must be ID of the pattern!
1553  }
1554 }
void SetPID(int pid)
Definition: EdbSegP.h:126

◆ SetSegmentsScanID()

void EdbPattern::SetSegmentsScanID ( EdbID  id)
1558 {
1559  for(int i=0; i<N(); i++) GetSegment(i)->SetScanID(id);
1560 }
void SetScanID(EdbID id)
Definition: EdbSegP.h:140

◆ SetSide()

void EdbPattern::SetSide ( int  side)
inline
321 {eSide=side;}

◆ SetSigma()

void EdbPattern::SetSigma ( float  sx,
float  sy,
float  stx,
float  sty 
)
inline
305  {eSigma[0]=sx; eSigma[1]=sy; eSigma[2]=stx; eSigma[3]=sty;}

◆ SetStep()

void EdbPattern::SetStep ( float  stepx,
float  stepy,
float  steptx,
float  stepty 
)
inline
307  {eStepX=stepx; eStepY=stepy; eStepTX=steptx; eStepTY=stepty;}

◆ Side()

Int_t EdbPattern::Side ( ) const
inline
342 {return eSide;}

◆ StepTX()

float EdbPattern::StepTX ( ) const
inline
326 {return eStepTX;}

◆ StepTY()

float EdbPattern::StepTY ( ) const
inline
327 {return eStepTY;}

◆ StepX()

float EdbPattern::StepX ( ) const
inline
324 {return eStepX;}

◆ StepY()

float EdbPattern::StepY ( ) const
inline
325 {return eStepY;}

◆ SummaryPath()

float EdbPattern::SummaryPath ( )
1403 {
1404  // calculate the microscope path of the eventual prediction scan of this pattern
1405  float sum=0,dx,dy;
1406  if(N()<2) return sum;
1407  for(int i=0; i<N()-1; i++ ) {
1408  dx = GetSegment(i+1)->X()-GetSegment(i)->X();
1409  dy = GetSegment(i+1)->Y()-GetSegment(i)->Y();
1410  sum += Sqrt(dx*dx+dy*dy);
1411  }
1412  return sum;
1413 }

◆ Xmean()

float EdbPattern::Xmean ( )
1641 {
1642  Double_t s=0;
1643  int n=N(); if(n<1) return 0;
1644  for(int i=0; i<n; i++) s += GetSegment(i)->eX;
1645  s /= n;
1646  return (float)s;
1647 }
Float_t eX
Definition: EdbSegP.h:28

◆ Ymean()

float EdbPattern::Ymean ( )
1688 {
1689  Double_t s=0;
1690  int n=N(); if(n<1) return 0;
1691  for(int i=0; i<n; i++) s += GetSegment(i)->eY;
1692  s /= n;
1693  return (float)s;
1694 }
Float_t eY
Definition: EdbSegP.h:28

Member Data Documentation

◆ eCell

TIndexCell* EdbPattern::eCell
private

◆ eFlag

Int_t EdbPattern::eFlag
private

◆ eID

Int_t EdbPattern::eID
private

◆ eNAff

Int_t EdbPattern::eNAff
private

◆ ePID

Int_t EdbPattern::ePID
private

◆ eScanID

EdbID EdbPattern::eScanID
private

◆ eSide

Int_t EdbPattern::eSide
private

main scanning ID for this pattern, defined when possible

◆ eSigma

Float_t EdbPattern::eSigma[4]
private

◆ eStepTX

Float_t EdbPattern::eStepTX
private

◆ eStepTY

Float_t EdbPattern::eStepTY
private

◆ eStepX

Float_t EdbPattern::eStepX
private

associated with eSegments

◆ eStepY

Float_t EdbPattern::eStepY
private

The documentation for this class was generated from the following files: