FEDRA emulsion software from the OPERA Collaboration
EdbPointsBox2D Class Referenceabstract

collection of 2D points More...

#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.)
 
 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 Print (Option_t *opt="") const
 
virtual void SetZ (float z)=0
 
virtual void Substruct (EdbPoint *p)
 
virtual void Test () const
 
virtual void TestPoint3D () const
 
virtual void Transform (const EdbAffine3D *a)
 
virtual Float_t Z () const =0
 
virtual ~EdbPoint3D ()
 
- Public Member Functions inherited from EdbPoint2D
virtual void Print (Option_t *opt="") const
 
virtual void SetX (float x)=0
 
virtual void SetY (float y)=0
 
virtual void SetZ (float z)
 
virtual void Substruct (EdbPoint *p)
 
virtual void Test () const
 
virtual void TestPoint2D () const
 
virtual void Transform (const EdbAffine2D *a)
 
virtual Float_t X () const =0
 
virtual Float_t Y () const =0
 
virtual Float_t Z () const
 
virtual ~EdbPoint2D ()
 
- Public Member Functions inherited from EdbPoint
virtual void SetX (float x)=0
 
virtual void SetY (float y)=0
 
virtual void SetZ (float z)=0
 
virtual void Substruct (EdbPoint *p)=0
 
virtual void Test () const
 
virtual void Transform (const EdbAffine2D *a)
 
virtual void Transform (const EdbAffine3D *a)
 
virtual Float_t X () const =0
 
virtual Float_t Y () const =0
 
virtual Float_t Z () const =0
 
virtual ~EdbPoint ()
 

Private Attributes

EdbAffine2DeKeep
 

Detailed Description

collection of 2D points

abstrackt box with geometrical elements collection inside 2 members are assumed: *collection - pointer to the collection of objects *affine - affine transformation with readonly access from outside to keep all transformation done with the box function Retransform will recalculate original data

Constructor & Destructor Documentation

◆ EdbPointsBox2D() [1/2]

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

◆ EdbPointsBox2D() [2/2]

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

◆ ~EdbPointsBox2D()

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

Member Function Documentation

◆ At()

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

◆ DeltaX()

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

◆ DeltaY()

virtual Float_t EdbPointsBox2D::DeltaY ( )
inlinevirtual
186{ return Ymax()-Ymin(); }
virtual Float_t Ymin() const
Definition: EdbVirtual.cxx:206
virtual Float_t Ymax() const
Definition: EdbVirtual.cxx:216

◆ DrawPoints()

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

◆ GetKeep() [1/2]

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

◆ GetKeep() [2/2]

void EdbPointsBox2D::GetKeep ( EdbAffine2D aff)
virtual
149{
150 a.Set( eKeep->A11(),eKeep->A12(),eKeep->A21(),eKeep->A22(),
151 eKeep->B1(),eKeep->B2() );
152}
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 EdbMarksBox, EdbPredictionsBox, and EdbSegmentsBox.

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

◆ Retransform()

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

◆ Rotate()

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

◆ ScaleX()

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

◆ ScaleY()

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

◆ SetKeep()

void EdbPointsBox2D::SetKeep ( float  a11,
float  a12,
float  a21,
float  a22,
float  b1,
float  b2 
)
virtual
145 {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.

168{};

◆ SetY()

virtual void EdbPointsBox2D::SetY ( float  y)
inlinevirtual

Implements EdbPoint2D.

Reimplemented in EdbSegmentsBox.

169{};

◆ SetZ()

virtual void EdbPointsBox2D::SetZ ( float  z)
inlinevirtual

Implements EdbPoint3D.

Reimplemented in EdbSegmentsBox.

170{};

◆ ShiftX()

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

◆ ShiftY()

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

◆ SmearXY()

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

◆ Substruct()

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

◆ Transform()

void EdbPointsBox2D::Transform ( const EdbAffine2D a)
virtual

Reimplemented from EdbPoint2D.

156{
157 int n=N();
158 for( int i=0; i<n; i++ ) At(i)->Transform(a);
159 eKeep->Transform(a);
160}
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.

165{return 0;};

◆ Xhist()

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

◆ Xmax()

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

◆ Xmin()

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

◆ XYhist()

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

◆ Y()

virtual Float_t EdbPointsBox2D::Y ( ) const
inlinevirtual

Implements EdbPoint2D.

Reimplemented in EdbSegmentsBox.

166{return 0;};

◆ Yhist()

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

◆ Ymax()

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

◆ Ymin()

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

◆ Z()

virtual Float_t EdbPointsBox2D::Z ( ) const
inlinevirtual

Implements EdbPoint3D.

Reimplemented in EdbSegmentsBox.

167{return 0;};

Member Data Documentation

◆ eKeep

EdbAffine2D* EdbPointsBox2D::eKeep
private

affine transformation to keep all operations done with data


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