FEDRA emulsion software from the OPERA Collaboration
EdbSegmentsBox Class Reference

#include <EdbPattern.h>

Inheritance diagram for EdbSegmentsBox:
Collaboration diagram for EdbSegmentsBox:

Public Member Functions

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

Float_t eDZkeep
 
TClonesArray * eSegments
 
Float_t eX
 
Float_t eY
 
Float_t eZ
 

Constructor & Destructor Documentation

◆ EdbSegmentsBox() [1/3]

EdbSegmentsBox::EdbSegmentsBox ( int  nseg = 0)
31 {
32  if(nseg>0) eSegments = new TClonesArray("EdbSegP",nseg);
33  else eSegments = new TClonesArray("EdbSegP");
34  Set0();
35 }
void Set0()
Definition: EdbPattern.cxx:57
TClonesArray * eSegments
Definition: EdbPattern.h:33

◆ EdbSegmentsBox() [2/3]

EdbSegmentsBox::EdbSegmentsBox ( EdbSegmentsBox box)
inline
46  {
47  eX=box.X();
48  eY=box.Y();
49  eZ=box.Z();
50  int n=box.N();
51  eSegments = new TClonesArray("EdbSegP",n);
52  for(int i=0; i<n; i++)
53  AddSegment( *(box.GetSegment(i)) );
54  }
Float_t Z() const
Definition: EdbPattern.h:87
Float_t eY
Definition: EdbPattern.h:31
Float_t eZ
Definition: EdbPattern.h:31
Int_t N() const
Definition: EdbPattern.h:89
Float_t Y() const
Definition: EdbPattern.h:86
Float_t eX
Definition: EdbPattern.h:31
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
Float_t X() const
Definition: EdbPattern.h:85
EdbSegP * AddSegment(int i, EdbSegP &s)
Definition: EdbPattern.cxx:71

◆ EdbSegmentsBox() [3/3]

EdbSegmentsBox::EdbSegmentsBox ( float  x0,
float  y0,
float  z0,
int  nseg = 0 
)
39 {
40  if(nseg>0) eSegments = new TClonesArray("EdbSegP",nseg);
41  else eSegments = new TClonesArray("EdbSegP");
42  eX=x0; eY=y0; eZ=z0;
43  eDZkeep=0;
44 }
brick z0
Definition: RecDispMC.C:106
Float_t eDZkeep
Definition: EdbPattern.h:35

◆ ~EdbSegmentsBox()

EdbSegmentsBox::~EdbSegmentsBox ( )
virtual
48 {
49  if(eSegments) {
50  eSegments->Delete();
51  delete eSegments;
52  eSegments=0;
53  }
54 }

Member Function Documentation

◆ AddSegment() [1/4]

EdbSegP * EdbSegmentsBox::AddSegment ( EdbSegP s)
78 {
79  return new((*eSegments)[N()]) EdbSegP( s );
80 }
Definition: EdbSegP.h:18
EdbSegP * s
Definition: tlg2pattern.C:32

◆ AddSegment() [2/4]

EdbSegP * EdbSegmentsBox::AddSegment ( EdbSegP s1,
EdbSegP s2 
)
84 {
85  EdbSegP *s = new((*eSegments)[N()]) EdbSegP( s1 );
86  s->MergeTo(s2);
87  return s;
88 }
void MergeTo(EdbSegP &s)
Definition: EdbSegP.cxx:365
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31

◆ AddSegment() [3/4]

EdbSegP * EdbSegmentsBox::AddSegment ( int  i,
EdbSegP s 
)
72 {
73  return new((*eSegments)[i]) EdbSegP( s );
74 }

◆ AddSegment() [4/4]

EdbSegP * EdbSegmentsBox::AddSegment ( int  id,
float  x,
float  y,
float  tx,
float  ty,
float  w = 0,
int  flag = 0 
)
66 {
67  return new((*eSegments)[N()]) EdbSegP( id,x,y,tx,ty,w,flag );
68 }
void w(int rid=2, int nviews=2)
Definition: test.C:27

◆ AddSegmentNoDuplicate()

EdbSegP * EdbSegmentsBox::AddSegmentNoDuplicate ( EdbSegP s)
92 {
93  // This function will add the segment s to the current list of
94  // segments checking for duplicates. If any segment in the list is found,
95  // that is compatible to this, the segment will _not_ be added,
96  // instead a warning message will be printed (according to
97  // verbosity level)
98  // This function might be slow.
99 
100  //cout << endl << endl;
101  //cout <<"EdbSegmentsBox::AddSegmentNoDuplicate( EdbSegP &s )" << endl;
102  //s.PrintNice();
103  Int_t eSegmentsN = GetN();
104  //cout << "Segments already in the eSegments list: " << eSegmentsN << endl;
105  //cout << "Check now if segment s is already in the list..." << endl;
106 
107  EdbSegP* sComparison;
108 
109  for (int i=0; i<eSegmentsN; ++i) {
110 
111  sComparison=(EdbSegP* )eSegments->At(i);
112  //sComparison->PrintNice();
113  //Bool_t EdbSegP::IsEqual(const TObject *obj) const
114  //cout << "Evaluating s.IsEqual(sComparison) = " << s.IsEqual(sComparison) << endl;
115  if (s.IsEqual(sComparison)==kTRUE) {
116  //cout << "Tested Segment is witin one sigma equal with one already in the list. DO NOT ADD THIS Segment..." << endl;
117  return NULL;
118  }
119 
120  //bool EdbSegP::IsCompatible( EdbSegP &s, float nsigx, float nsigt ) const
121  /*
122  cout << "Evaluating s.IsCompatible(*sComparison,1,1) = " << s.IsCompatible(*sComparison,1,1) << endl;
123  if (s.IsCompatible(*sComparison,1,1)==kTRUE) {
124  cout << "Tested Segment is witin one sigma compatible with one already in the list. DO NOT ADD THIS Segment..." << endl;
125  return NULL;
126  }
127  */
128 
129  }
130 
131  //cout <<" EdbSegmentsBox::AddSegmentNoDuplicate( EdbSegP &s ) Segment s added." << endl;
132  return new((*eSegments)[N()]) EdbSegP( s );
133 }
Bool_t IsEqual(const TObject *obj) const
Definition: EdbSegP.cxx:425
Int_t GetN() const
Definition: EdbPattern.h:65
#define NULL
Definition: nidaqmx.h:84

◆ At()

EdbPoint* EdbSegmentsBox::At ( int  i) const
inlinevirtual

Implements EdbPointsBox2D.

90 {return (EdbPoint*)GetSegment(i);}
Definition: EdbVirtual.h:28

◆ CalculateAXAY()

int EdbSegmentsBox::CalculateAXAY ( EdbSegmentsBox p,
EdbAffine2D affA 
)
337 {
338  int n=N();
339  if( n>pat->N() ) n=pat->N();
340  if(n<2) return 0;
341 
342  float *ax1 = new float[n];
343  float *ay1 = new float[n];
344  float *ax2 = new float[n];
345  float *ay2 = new float[n];
346 
347  EdbSegP *p1,*p2;
348  for(int i=0; i<n; i++ ) {
349  p1 = GetSegment(i);
350  p2 = pat->GetSegment(i);
351  ax1[i] = p1->TX();
352  ay1[i] = p1->TY();
353  ax2[i] = p2->TX();
354  ay2[i] = p2->TY();
355  }
356  aff->Calculate(n,ax1,ay1,ax2,ay2);
357 
358  delete ax1;
359  delete ay1;
360  delete ax2;
361  delete ay2;
362 
363  return 1;
364 }
Float_t TX() const
Definition: EdbSegP.h:172
Float_t TY() const
Definition: EdbSegP.h:173

◆ CalculateXY()

int EdbSegmentsBox::CalculateXY ( EdbSegmentsBox p,
EdbAffine2D aff 
)
326 {
327  int n=N();
328  if( n>pat->N() ) n=pat->N();
329  if(n<2) return 0;
330 
331  aff->Calculate(this,pat);
332  return 1;
333 }
Int_t Calculate(EdbPointsBox2D *b1, EdbPointsBox2D *b2)
Definition: EdbAffine.cxx:260

◆ Diff()

float EdbSegmentsBox::Diff ( EdbSegmentsBox p)
165 {
166  // return the mean difference beteween pattern elements
167  int nseg = TMath::Min( N(), p.N() );
168 
169  if(nseg<1) return 0;
170 
171  EdbSegP *s1=0, *s2=0;
172 
173  float dx=0, dy=0;
174  double sdx=0;
175  for(int i=0; i<nseg; i++ ) {
176  s1 = GetSegment(i);
177  s2 = p.GetSegment(i);
178  dx = s2->X() - s1->X();
179  dy = s2->Y() - s1->Y();
180  sdx += TMath::Sqrt( dx*dx + dy*dy);
181  }
182  return sdx/nseg;
183 }
Float_t X() const
Definition: EdbSegP.h:170
Float_t Y() const
Definition: EdbSegP.h:171
p
Definition: testBGReduction_AllMethods.C:8

◆ DiffAff()

float EdbSegmentsBox::DiffAff ( EdbAffine2D aff)
147 {
148  EdbSegmentsBox p,p1;
149  p.AddSegment(0,Xmin(),Ymin(),0.,0.);
150  p.AddSegment(0,Xmax(),Ymin(),0.,0.);
151  p.AddSegment(0,Xmin(),Ymax(),0.,0.);
152  p.AddSegment(0,Xmax(),Ymax(),0.,0.);
153 
154  p1.AddSegment(0,Xmin(),Ymin(),0.,0.);
155  p1.AddSegment(0,Xmax(),Ymin(),0.,0.);
156  p1.AddSegment(0,Xmin(),Ymax(),0.,0.);
157  p1.AddSegment(0,Xmax(),Ymax(),0.,0.);
158 
159  p1.Transform(aff);
160  return p.Diff(p1);
161 }
virtual Float_t Xmax() const
Definition: EdbVirtual.cxx:195
virtual Float_t Ymin() const
Definition: EdbVirtual.cxx:205
virtual Float_t Xmin() const
Definition: EdbVirtual.cxx:185
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:154
virtual Float_t Ymax() const
Definition: EdbVirtual.cxx:215
Definition: EdbPattern.h:27

◆ DZ()

Float_t EdbSegmentsBox::DZ ( ) const
inline
88 {return eDZkeep;}

◆ Expand()

void EdbSegmentsBox::Expand ( int  n)
inline
71 {eSegments->Expand(n);}

◆ GetN()

Int_t EdbSegmentsBox::GetN ( ) const
inline
65 {return eSegments ? eSegments->GetEntriesFast() : 0;}

◆ GetSegment()

EdbSegP* EdbSegmentsBox::GetSegment ( int  i) const
inline
66 {return (EdbSegP*)eSegments->At(i); }

◆ GetSegmentLast()

EdbSegP* EdbSegmentsBox::GetSegmentLast ( ) const
inline
67 {return GetN() ? (EdbSegP*)eSegments->Last() : 0;}

◆ GetSegments()

TClonesArray* EdbSegmentsBox::GetSegments ( ) const
inline
69 { return eSegments; }

◆ GetSegmentsAddr()

void* EdbSegmentsBox::GetSegmentsAddr ( )
inline
70 { return &eSegments; }

◆ GetSize()

float EdbSegmentsBox::GetSize ( Int_t  XorY)
187 {
188  // return the size of the segments box in X//Y
189  // simple approach using max/min values of segments
190  // works only if 2 or more segemts are in it.
191  int nseg = N();
192  if(nseg<2) return 0;
193  EdbSegP *s1=0;
194 
195  float minX=0; float maxX=0;
196  float minY=0; float maxY=0;
197  for(int i=0; i<nseg; i++ ) {
198  s1 = GetSegment(i);
199  if (i==0) {
200  minX=s1->X(); maxX=s1->X();
201  minY=s1->Y(); maxY=s1->Y();
202  }
203  maxX=TMath::Max(maxX,s1->X());
204  minX=TMath::Min(minX,s1->X());
205  maxY=TMath::Max(maxY,s1->Y());
206  minY=TMath::Min(minY,s1->Y());
207  }
208  float sizeX=TMath::Abs(maxX-minX);
209  float sizeY=TMath::Abs(maxY-minY);
210 
211  if (XorY==1) { return sizeY; }
212  else { return sizeX; }
213 }

◆ GetSizeX()

Float_t EdbSegmentsBox::GetSizeX ( )
inline
106 { return GetSize(0); }
Float_t GetSize(Int_t XorY)
Definition: EdbPattern.cxx:186

◆ GetSizeXY()

float EdbSegmentsBox::GetSizeXY ( )
217 {
218  return (GetSize(0)*GetSize(1));
219 }

◆ GetSizeY()

Float_t EdbSegmentsBox::GetSizeY ( )
inline
107 { return GetSize(1); }

◆ GetTrackDensity()

float EdbSegmentsBox::GetTrackDensity ( )
223 {
224  // Returns number of tracks per area (in microns usually)
225  int nseg = N();
226  if(nseg<2) return 0;
227  float size=GetSizeXY();
228  return float(nseg)/size;
229 }
Float_t GetSizeXY()
Definition: EdbPattern.cxx:216

◆ GetTrackDensitymm2()

float EdbSegmentsBox::GetTrackDensitymm2 ( )
233 {
234  // Returns number of tracks per area in millimeter squared
235  // Original area is in microns x microns
236  return GetTrackDensity()*1e6;
237 }
Float_t GetTrackDensity()
Definition: EdbPattern.cxx:222

◆ N()

Int_t EdbSegmentsBox::N ( ) const
inlinevirtual

Implements EdbPointsBox2D.

89 {return GetN();}

◆ Print()

void EdbSegmentsBox::Print ( Option_t *  opt = "") const
virtual

Reimplemented from EdbPointsBox2D.

421 {
422  int nseg=GetN();
423  printf("EdbSegmentsBox: %d segments\n", nseg );
424  for(int i=0; i<nseg; i++) GetSegment(i)->Print();
425 }
void Print(Option_t *opt="") const
Definition: EdbSegP.cxx:405

◆ ProjectTo()

void EdbSegmentsBox::ProjectTo ( const float  dz)
312 {
313  eZ += dz; eDZkeep += dz;
314  int nseg = N();
315  for(int i=0; i<nseg; i++ ) GetSegment(i)->PropagateToDZ(dz);
316 /* for(int i=0; i<nseg; i++ ) {
317  p = GetSegment(i);
318  p->SetX( p->X() + p->TX()*dz );
319  p->SetY( p->Y() + p->TY()*dz );
320  p->SetZ( Z() );
321  }*/
322 }
brick dz
Definition: RecDispMC.C:107
void PropagateToDZ(float dz)
Definition: EdbSegP.cxx:280

◆ RemoveAngMargins()

void EdbSegmentsBox::RemoveAngMargins ( float  tx0,
float  ty0,
float  dtx,
float  dty 
)
255 {
256  int nseg = N();
257  for(int i=nseg-1; i>=0; i-- ) {
258  EdbSegP *s = GetSegment(i);
259  if( s->eTX > tx0+dtx || s->eTX < tx0-dtx || s->eTY > ty0+dty || s->eTY < ty0-dty ) eSegments->RemoveAt(i);
260  }
261  eSegments->Compress();
262  Log(2,"EdbSegmentsBox::RemoveAngMargins","%d out of %d segments left", N(), nseg );
263 }
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
Float_t eTX
Definition: EdbSegP.h:29
Float_t eTY
Definition: EdbSegP.h:29

◆ RemovePosMargins()

void EdbSegmentsBox::RemovePosMargins ( float  x0,
float  y0,
float  dx,
float  dy 
)
241 {
242  int nseg = N();
243  for(int i=nseg-1; i>=0; i-- ) {
244  EdbSegP *s = GetSegment(i);
245  if( s->eX > x0+dx || s->eX < x0-dx || s->eY > y0+dy || s->eY < y0-dy ) {
246  eSegments->RemoveAt(i);
247  }
248  }
249  eSegments->Compress();
250  Log(2,"EdbSegmentsBox::RemovePosMargins","%d out of %d segments left", N(), nseg );
251 }
Float_t eX
Definition: EdbSegP.h:28
Float_t eY
Definition: EdbSegP.h:28

◆ Reset()

void EdbSegmentsBox::Reset ( )
140 {
141  Set0();
142  if(eSegments) eSegments->Clear();
143 }

◆ Set0()

void EdbSegmentsBox::Set0 ( )
58 {
59  eX=0; eY=0; eZ=0;
60  eDZkeep=0;
61 }

◆ SetSegmentsDZ()

void EdbSegmentsBox::SetSegmentsDZ ( float  dz)
285 {
286  int nseg = N();
287  for(int i=0; i<nseg; i++ ) {
288  GetSegment(i)->SetDZ( dz );
289  }
290 }
void SetDZ(float dz)
Definition: EdbSegP.h:123

◆ SetSegmentsFlag()

void EdbSegmentsBox::SetSegmentsFlag ( int  flag)
303 {
304  int nseg = N();
305  for(int i=0; i<nseg; i++ ) {
306  GetSegment(i)->SetFlag( flag );
307  }
308 }
void SetFlag(int flag)
Definition: EdbSegP.h:127

◆ SetSegmentsPlate()

void EdbSegmentsBox::SetSegmentsPlate ( int  plate)
267 {
268  int nseg = N();
269  for(int i=0; i<nseg; i++ ) {
270  GetSegment(i)->SetPlate( plate );
271  }
272 }
void SetPlate(int plateid)
Definition: EdbSegP.h:139
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1

◆ SetSegmentsW()

void EdbSegmentsBox::SetSegmentsW ( float  w)
294 {
295  int nseg = N();
296  for(int i=0; i<nseg; i++ ) {
297  GetSegment(i)->SetW( w );
298  }
299 }
void SetW(float w)
Definition: EdbSegP.h:129

◆ SetSegmentsZ()

void EdbSegmentsBox::SetSegmentsZ ( )
276 {
277  int nseg = N();
278  for(int i=0; i<nseg; i++ ) {
279  GetSegment(i)->SetZ( Z() );
280  }
281 }
void SetZ(float z)
Definition: EdbSegP.h:122

◆ SetX()

void EdbSegmentsBox::SetX ( float  x)
inlinevirtual

Reimplemented from EdbPointsBox2D.

82 { eX=x; }

◆ SetY()

void EdbSegmentsBox::SetY ( float  y)
inlinevirtual

Reimplemented from EdbPointsBox2D.

83 { eY=y; }

◆ SetZ()

void EdbSegmentsBox::SetZ ( float  z)
inlinevirtual

Reimplemented from EdbPointsBox2D.

41 { eZ=z; }

◆ TransformA()

void EdbSegmentsBox::TransformA ( const EdbAffine2D affA)
368 {
369  EdbSegP *p;
370  float tx,ty;
371 
372  int nseg = N();
373  for(int i=0; i<nseg; i++ ) {
374  p = GetSegment(i);
375 
376  tx = aff->A11()*p->TX() + aff->A12()*p->TY() + aff->B1();
377  ty = aff->A21()*p->TX() + aff->A22()*p->TY() + aff->B2();
378  p->SetTX(tx);
379  p->SetTY(ty);
380  }
381 }

◆ TransformARot()

void EdbSegmentsBox::TransformARot ( const EdbAffine2D affA)
402 {
403  // apply to the angles only rotation members of transformation
404 
405  EdbSegP *p;
406  float tx,ty;
407 
408  int nseg = N();
409  for(int i=0; i<nseg; i++ ) {
410  p = GetSegment(i);
411 
412  tx = aff->A11()*p->TX() + aff->A12()*p->TY();
413  ty = aff->A21()*p->TX() + aff->A22()*p->TY();
414  p->SetTX(tx);
415  p->SetTY(ty);
416  }
417 }

◆ TransformShr()

void EdbSegmentsBox::TransformShr ( const float  shr)
385 {
386  EdbSegP *p;
387  float tx,ty;
388 
389  int nseg = N();
390  for(int i=0; i<nseg; i++ ) {
391  p = GetSegment(i);
392 
393  tx = p->TX()/shr;
394  ty = p->TY()/shr;
395  p->SetTX(tx);
396  p->SetTY(ty);
397  }
398 }

◆ X()

Float_t EdbSegmentsBox::X ( ) const
inlinevirtual

Reimplemented from EdbPointsBox2D.

85 {return eX;}

◆ Y()

Float_t EdbSegmentsBox::Y ( ) const
inlinevirtual

Reimplemented from EdbPointsBox2D.

86 {return eY;}

◆ Z()

Float_t EdbSegmentsBox::Z ( ) const
inlinevirtual

Reimplemented from EdbPointsBox2D.

87 {return eZ;}

Member Data Documentation

◆ eDZkeep

Float_t EdbSegmentsBox::eDZkeep
private

◆ eSegments

TClonesArray* EdbSegmentsBox::eSegments
private

◆ eX

Float_t EdbSegmentsBox::eX
private

◆ eY

Float_t EdbSegmentsBox::eY
private

◆ eZ

Float_t EdbSegmentsBox::eZ
private

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