FEDRA emulsion software from the OPERA Collaboration
EdbPointsBox2D Class Referenceabstract

#include <EdbVirtual.h>

Inheritance diagram for EdbPointsBox2D:
Collaboration diagram for EdbPointsBox2D:

Public Member Functions

virtual EdbPointAt (int i) const =0
 
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 Int_t N () const =0
 
virtual void Print (Option_t *opt="") const
 
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 SetX (float x)
 
virtual void SetY (float y)
 
virtual void SetZ (float z)
 
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 Float_t X () const
 
virtual TH1F * Xhist ()
 
virtual Float_t Xmax () const
 
virtual Float_t Xmin () const
 
virtual TH2F * XYhist ()
 
virtual Float_t Y () const
 
virtual TH1F * Yhist ()
 
virtual Float_t Ymax () const
 
virtual Float_t Ymin () const
 
virtual Float_t Z () 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

EdbAffine2DeKeep
 

Constructor & Destructor Documentation

◆ EdbPointsBox2D() [1/2]

EdbPointsBox2D::EdbPointsBox2D ( )
125 {
126  eKeep = new EdbAffine2D();
127 }
Definition: EdbAffine.h:17
EdbAffine2D * eKeep
Definition: EdbVirtual.h:151

◆ EdbPointsBox2D() [2/2]

EdbPointsBox2D::EdbPointsBox2D ( const EdbPointsBox2D pb)
131 {
132  eKeep = new EdbAffine2D(*pb.GetKeep());
133 }
virtual const EdbAffine2D * GetKeep() const
Definition: EdbVirtual.h:175

◆ ~EdbPointsBox2D()

EdbPointsBox2D::~EdbPointsBox2D ( )
virtual
137 {
138  if(eKeep) delete eKeep;
139 }

Member Function Documentation

◆ At()

virtual EdbPoint* EdbPointsBox2D::At ( int  i) const
pure virtual

◆ DeltaX()

virtual Float_t EdbPointsBox2D::DeltaX ( )
inlinevirtual
184 { return Xmax()-Xmin(); }
virtual Float_t Xmax() const
Definition: EdbVirtual.cxx:195
virtual Float_t Xmin() const
Definition: EdbVirtual.cxx:185

◆ DeltaY()

virtual Float_t EdbPointsBox2D::DeltaY ( )
inlinevirtual
185 { return Ymax()-Ymin(); }
virtual Float_t Ymin() const
Definition: EdbVirtual.cxx:205
virtual Float_t Ymax() const
Definition: EdbVirtual.cxx:215

◆ DrawPoints()

void EdbPointsBox2D::DrawPoints ( int  style = 23,
int  col = 4,
float  size = 1.,
bool  same = false 
)
virtual
255 {
256  TGraph *mark = new TGraph( N() );
257 
258  int n=N();
259  for( int i=0; i<n; i++ )
260  mark->SetPoint( i, At(i)->X(), At(i)->Y() );
261 
262  printf("EdbPointsBox2D::Draw: %d points\n", N() );
263 
264  mark->SetMarkerStyle(style);
265  mark->SetMarkerColor(col);
266  mark->SetMarkerSize(size);
267  mark->SetTitle("Points box");
268  if(same) mark->Draw("P");
269  else mark->Draw("AP");
270 }
virtual Float_t X() const
Definition: EdbVirtual.h:164
virtual Float_t Y() const
Definition: EdbVirtual.h:165
virtual Int_t N() const =0
virtual EdbPoint * At(int i) const =0

◆ GetKeep() [1/2]

virtual const EdbAffine2D* EdbPointsBox2D::GetKeep ( ) const
inlinevirtual
175 {return eKeep;}

◆ GetKeep() [2/2]

void EdbPointsBox2D::GetKeep ( EdbAffine2D aff)
virtual
148 {
149  a.Set( eKeep->A11(),eKeep->A12(),eKeep->A21(),eKeep->A22(),
150  eKeep->B1(),eKeep->B2() );
151 }
void a()
Definition: check_aligned.C:59
Float_t B2() const
Definition: EdbAffine.h:48
Float_t A22() const
Definition: EdbAffine.h:46
Float_t A21() const
Definition: EdbAffine.h:45
Float_t A12() const
Definition: EdbAffine.h:44
Float_t B1() const
Definition: EdbAffine.h:47
Float_t A11() const
Definition: EdbAffine.h:43

◆ N()

virtual Int_t EdbPointsBox2D::N ( ) const
pure virtual

◆ Print()

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

Reimplemented from EdbPoint3D.

Reimplemented in EdbSegmentsBox, EdbPredictionsBox, and EdbMarksBox.

274 {
275  printf("EdbPointsBox2D: %d elements \n", N() );
276 }

◆ Retransform()

void EdbPointsBox2D::Retransform ( )
virtual
171 {
172  eKeep->Invert();
173  Transform(eKeep);
174  eKeep->Reset();
175 }
void Invert()
Definition: EdbAffine.cxx:103
void Reset()
Definition: EdbAffine.cxx:72
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:154

◆ Rotate()

void EdbPointsBox2D::Rotate ( float  angle)
virtual
163 {
164  EdbAffine2D aff(1,0,0,1,0,0);
165  aff.Rotate(angle);
166  Transform(&aff);
167 }

◆ ScaleX()

virtual void EdbPointsBox2D::ScaleX ( float  scaleFactor)
inlinevirtual
189 {}

◆ ScaleY()

virtual void EdbPointsBox2D::ScaleY ( float  scaleFactor)
inlinevirtual
190 {}

◆ SetKeep()

void EdbPointsBox2D::SetKeep ( float  a11,
float  a12,
float  a21,
float  a22,
float  b1,
float  b2 
)
virtual
144  {eKeep->Set(a11,a12,a21,a22,b1,b2);}
void Set(EdbAffine2D &a)
Definition: EdbAffine.h:36

◆ SetX()

virtual void EdbPointsBox2D::SetX ( float  x)
inlinevirtual

Implements EdbPoint2D.

Reimplemented in EdbSegmentsBox.

167 {};

◆ SetY()

virtual void EdbPointsBox2D::SetY ( float  y)
inlinevirtual

Implements EdbPoint2D.

Reimplemented in EdbSegmentsBox.

168 {};

◆ SetZ()

virtual void EdbPointsBox2D::SetZ ( float  z)
inlinevirtual

Implements EdbPoint3D.

Reimplemented in EdbSegmentsBox.

169 {};

◆ ShiftX()

virtual void EdbPointsBox2D::ShiftX ( float  offset)
inlinevirtual
187 {}

◆ ShiftY()

virtual void EdbPointsBox2D::ShiftY ( float  offset)
inlinevirtual
188 {}

◆ SmearXY()

virtual void EdbPointsBox2D::SmearXY ( float  sigmax,
float  sigmay 
)
inlinevirtual
192 {}

◆ Substruct()

void EdbPointsBox2D::Substruct ( EdbPointsBox2D b)
virtual
179 {
180  int n=N();
181  for( int i=0; i<n; i++ ) At(i)->Substruct( b->At(i) );
182 }
virtual void Substruct(EdbPoint *p)=0

◆ Transform()

void EdbPointsBox2D::Transform ( const EdbAffine2D a)
virtual

Reimplemented from EdbPoint2D.

155 {
156  int n=N();
157  for( int i=0; i<n; i++ ) At(i)->Transform(a);
158  eKeep->Transform(a);
159 }
void Transform(const EdbAffine2D *a)
Definition: EdbAffine.cxx:93
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.h:42

◆ X()

virtual Float_t EdbPointsBox2D::X ( ) const
inlinevirtual

Implements EdbPoint2D.

Reimplemented in EdbSegmentsBox.

164 {return 0;};

◆ Xhist()

TH1F * EdbPointsBox2D::Xhist ( )
virtual
226 {
227  TH1F *hist = new TH1F("xhist","X coordinate of the box",100, Xmin(),Xmax() );
228  int n=N();
229  for( int i=0; i<n; i++ ) hist->Fill( At(i)->X() );
230  return hist;
231 }
void hist()
Definition: init.C:23

◆ Xmax()

Float_t EdbPointsBox2D::Xmax ( ) const
virtual
196 {
197  int n=N();
198  if( n<1 ) return 0;
199  Float_t a = At(0)->X();
200  for( int i=0; i<n; i++ ) a = TMath::Max(a,At(i)->X());
201  return a;
202 }
virtual Float_t X() const =0

◆ Xmin()

Float_t EdbPointsBox2D::Xmin ( ) const
virtual
186 {
187  int n=N();
188  if( n<1 ) return 0;
189  Float_t a = At(0)->X();
190  for( int i=0; i<n; i++ ) a = TMath::Min(a,At(i)->X());
191  return a;
192 }

◆ XYhist()

TH2F * EdbPointsBox2D::XYhist ( )
virtual
244 {
245  TH2F *hist = new TH2F("xyhist","X coordinate of the box",
246  100, Xmin(), Xmax(),
247  100, Ymin(), Ymax() );
248  int n=N();
249  for( int i=0; i<n; i++ ) hist->Fill( At(i)->X(), At(i)->Y() );
250  return hist;
251 }

◆ Y()

virtual Float_t EdbPointsBox2D::Y ( ) const
inlinevirtual

Implements EdbPoint2D.

Reimplemented in EdbSegmentsBox.

165 {return 0;};

◆ Yhist()

TH1F * EdbPointsBox2D::Yhist ( )
virtual
235 {
236  TH1F *hist = new TH1F("yhist","Y coordinate of the box",100, Ymin(),Ymax() );
237  int n=N();
238  for( int i=0; i<n; i++ ) hist->Fill( At(i)->Y() );
239  return hist;
240 }

◆ Ymax()

Float_t EdbPointsBox2D::Ymax ( ) const
virtual
216 {
217  int n=N();
218  if( n<1 ) return 0;
219  Float_t a = At(0)->Y();
220  for( int i=0; i<n; i++ ) a = TMath::Max(a,At(i)->Y());
221  return a;
222 }
virtual Float_t Y() const =0

◆ Ymin()

Float_t EdbPointsBox2D::Ymin ( ) const
virtual
206 {
207  int n=N();
208  if( n<1 ) return 0;
209  Float_t a = At(0)->Y();
210  for( int i=0; i<n; i++ ) a = TMath::Min(a,At(i)->Y());
211  return a;
212 }

◆ Z()

virtual Float_t EdbPointsBox2D::Z ( ) const
inlinevirtual

Implements EdbPoint3D.

Reimplemented in EdbSegmentsBox.

166 {return 0;};

Member Data Documentation

◆ eKeep

EdbAffine2D* EdbPointsBox2D::eKeep
private

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