FEDRA emulsion software from the OPERA Collaboration
EdbVirtual.h
Go to the documentation of this file.
1#ifndef ROOT_EdbVirtual
2#define ROOT_EdbVirtual
5
11
12#include "TObject.h"
13
14class TH1F;
15class TH2F;
16
17class EdbAffine2D;
18class EdbAffine3D;
19
20class EdbPoint;
21class EdbPoint2D;
22class EdbPoint3D;
23
24class EdbAngle2D;
25class EdbTrack2D;
26
28class EdbPoint {
29
30 // protocol class for point
31
32 public:
33 virtual ~EdbPoint() {}
34
35 virtual Float_t X() const = 0;
36 virtual Float_t Y() const = 0;
37 virtual Float_t Z() const = 0;
38 virtual void SetX( float x ) = 0;
39 virtual void SetY( float y ) = 0;
40 virtual void SetZ( float z ) = 0;
41
42 virtual void Transform( const EdbAffine2D *a ) {}
43 virtual void Transform( const EdbAffine3D *a ) {}
44
45 virtual void Substruct( EdbPoint *p ) = 0;
46
47 virtual void Test() const { printf("EdbPoint::Test \n"); }
48
49 ClassDef(EdbPoint,2) // virtual point
50};
51
54
55 // protocol class for 2D angle
56
57 public:
58 virtual ~EdbAngle2D() {}
59
60 virtual Float_t TX() const = 0;
61 virtual Float_t TY() const = 0;
62 virtual void SetTX( float x ) = 0;
63 virtual void SetTY( float y ) = 0;
64
65 virtual void Transform( const EdbAffine2D *a );
66
67 virtual void Substruct( const EdbAngle2D *a );
68
69 virtual void Test() const { printf("EdbAngle2D::Test \n"); }
70
71 virtual void Print( Option_t *opt="") const;
72
73 ClassDef(EdbAngle2D,2) // virtual angle
74};
76class EdbPoint2D : public EdbPoint {
77
78 public:
79 virtual ~EdbPoint2D() {}
80
81 virtual Float_t X() const = 0;
82 virtual Float_t Y() const = 0;
83 virtual Float_t Z() const { return 0; }
84 virtual void SetX( float x ) = 0;
85 virtual void SetY( float y ) = 0;
86 virtual void SetZ( float z ) {}
87
88 virtual void Transform( const EdbAffine2D *a );
89
90 virtual void Substruct( EdbPoint *p );
91
92 virtual void Print( Option_t *opt="") const;
93
94 virtual void Test() const { printf("EdbPoint2D::Test \n"); }
95 virtual void TestPoint2D() const { printf("EdbPoint2D::TestPoint2D \n"); }
96
97 ClassDef(EdbPoint2D,2) // virtual 2D point
98};
99
101class EdbPoint3D : public EdbPoint2D {
102
103 public:
104 virtual ~EdbPoint3D() {}
105
106 virtual Float_t Z() const = 0;
107 virtual void SetZ( float z ) = 0;
108
109 virtual void Transform( const EdbAffine3D *a );
110
111 virtual void Substruct( EdbPoint *p );
112
113 virtual void Print( Option_t *opt="") const;
114
115 virtual void Test() const { printf("EdbPoint3D::Test \n"); }
116 virtual void TestPoint3D() const { printf("EdbPoint3D::TestPoint3D \n"); }
117
118 ClassDef(EdbPoint3D,2) // virtual 3D point
119};
120
121
123class EdbTrack2D : public EdbPoint2D, public EdbAngle2D {
124
125 // virtual class for 2D track
126
127 public:
128 virtual ~EdbTrack2D() {}
129
130 virtual void Transform( const EdbAffine2D *a );
131
132 virtual void Substruct( EdbTrack2D *t );
133
134 virtual void Test() const { printf("EdbTrack2D::Test \n"); }
135
136 virtual void Print( Option_t *opt="") const;
137
138 ClassDef(EdbTrack2D,2) // virtual track
139};
140
142
151
154
155 public:
158 virtual ~EdbPointsBox2D();
159
160 virtual void Print( Option_t *opt="") const;
161
162 virtual Int_t N() const = 0;
163 virtual EdbPoint *At( int i ) const = 0;
164
165 virtual Float_t X() const {return 0;};
166 virtual Float_t Y() const {return 0;};
167 virtual Float_t Z() const {return 0;};
168 virtual void SetX( float x ) {};
169 virtual void SetY( float y ) {};
170 virtual void SetZ( float z ) {};
171
172 virtual void Transform( const EdbAffine2D *a );
173 virtual void Substruct( EdbPointsBox2D *b );
174 virtual void Retransform();
175
176 virtual const EdbAffine2D *GetKeep() const {return eKeep;}
177 virtual void GetKeep( EdbAffine2D &aff );
178 virtual void SetKeep(float a11,float a12,float a21,float a22,float b1,float b2);
179
180 virtual Float_t Xmin() const;
181 virtual Float_t Xmax() const;
182 virtual Float_t Ymin() const;
183 virtual Float_t Ymax() const;
184
185 virtual Float_t DeltaX() { return Xmax()-Xmin(); }
186 virtual Float_t DeltaY() { return Ymax()-Ymin(); }
187
188 virtual void ShiftX( float offset ){}
189 virtual void ShiftY( float offset ){}
190 virtual void ScaleX( float scaleFactor ){}
191 virtual void ScaleY( float scaleFactor ){}
192 virtual void Rotate( float angle );
193 virtual void SmearXY( float sigmax, float sigmay ){}
194
195
196 virtual TH1F *Xhist();
197 virtual TH1F *Yhist();
198 virtual TH2F *XYhist();
199
200 virtual void DrawPoints(int style=23, int col=4, float size=1.);
201
202 ClassDef(EdbPointsBox2D,2) // collection of 2D points
203};
204
207
208 public:
210 virtual ~EdbPointsBox3D() {}
211
212 ClassDef(EdbPointsBox3D,2) // collection of 3D points
213};
214
215#endif /* ROOT_EdbVirtual */
void a()
Definition: check_aligned.C:59
Definition: EdbAffine.h:17
Definition: EdbAffine.h:86
protocol class for 2D angle (virtual angle)
Definition: EdbVirtual.h:53
virtual void Substruct(const EdbAngle2D *a)
Definition: EdbVirtual.cxx:64
virtual void SetTY(float y)=0
virtual ~EdbAngle2D()
Definition: EdbVirtual.h:58
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:55
virtual void SetTX(float x)=0
virtual Float_t TY() const =0
tangens = deltaY/deltaZ
virtual void Print(Option_t *opt="") const
Definition: EdbVirtual.cxx:49
virtual Float_t TX() const =0
tangens = deltaX/deltaZ
virtual void Test() const
Definition: EdbVirtual.h:69
virtual 2D point
Definition: EdbVirtual.h:76
virtual void SetZ(float z)
Definition: EdbVirtual.h:86
virtual Float_t X() const =0
virtual void Substruct(EdbPoint *p)
Definition: EdbVirtual.cxx:116
virtual ~EdbPoint2D()
Definition: EdbVirtual.h:79
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:107
virtual void SetY(float y)=0
virtual Float_t Z() const
Definition: EdbVirtual.h:83
virtual void SetX(float x)=0
virtual void Test() const
Definition: EdbVirtual.h:94
virtual void TestPoint2D() const
Definition: EdbVirtual.h:95
virtual void Print(Option_t *opt="") const
Definition: EdbVirtual.cxx:101
virtual Float_t Y() const =0
virtual 3D point
Definition: EdbVirtual.h:101
virtual void Substruct(EdbPoint *p)
Definition: EdbVirtual.cxx:90
virtual void Transform(const EdbAffine3D *a)
Definition: EdbVirtual.cxx:79
virtual Float_t Z() const =0
virtual void Print(Option_t *opt="") const
Definition: EdbVirtual.cxx:73
virtual void TestPoint3D() const
Definition: EdbVirtual.h:116
virtual ~EdbPoint3D()
Definition: EdbVirtual.h:104
virtual void SetZ(float z)=0
virtual void Test() const
Definition: EdbVirtual.h:115
protocol class for point (virtual point)
Definition: EdbVirtual.h:28
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.h:42
virtual Float_t Y() const =0
virtual Float_t X() const =0
virtual void SetZ(float z)=0
virtual ~EdbPoint()
Definition: EdbVirtual.h:33
virtual void SetX(float x)=0
virtual void Test() const
Definition: EdbVirtual.h:47
virtual Float_t Z() const =0
virtual void SetY(float y)=0
virtual void Substruct(EdbPoint *p)=0
virtual void Transform(const EdbAffine3D *a)
Definition: EdbVirtual.h:43
collection of 2D points
Definition: EdbVirtual.h:150
virtual Float_t Xmax() const
Definition: EdbVirtual.cxx:196
virtual TH1F * Xhist()
Definition: EdbVirtual.cxx:226
virtual Float_t DeltaX()
Definition: EdbVirtual.h:185
virtual void SetX(float x)
Definition: EdbVirtual.h:168
virtual Float_t Ymin() const
Definition: EdbVirtual.cxx:206
virtual ~EdbPointsBox2D()
Definition: EdbVirtual.cxx:137
virtual void ScaleY(float scaleFactor)
Definition: EdbVirtual.h:191
virtual void Substruct(EdbPointsBox2D *b)
Definition: EdbVirtual.cxx:179
virtual Float_t DeltaY()
Definition: EdbVirtual.h:186
virtual Float_t X() const
Definition: EdbVirtual.h:165
virtual void ScaleX(float scaleFactor)
Definition: EdbVirtual.h:190
virtual Float_t Xmin() const
Definition: EdbVirtual.cxx:186
virtual Float_t Y() const
Definition: EdbVirtual.h:166
virtual Float_t Z() const
Definition: EdbVirtual.h:167
virtual TH1F * Yhist()
Definition: EdbVirtual.cxx:235
virtual void ShiftY(float offset)
Definition: EdbVirtual.h:189
virtual void ShiftX(float offset)
Definition: EdbVirtual.h:188
virtual Int_t N() const =0
virtual void SetZ(float z)
Definition: EdbVirtual.h:170
virtual void Rotate(float angle)
Definition: EdbVirtual.cxx:163
virtual void SmearXY(float sigmax, float sigmay)
Definition: EdbVirtual.h:193
virtual void SetKeep(float a11, float a12, float a21, float a22, float b1, float b2)
Definition: EdbVirtual.cxx:143
virtual EdbPoint * At(int i) const =0
virtual void Print(Option_t *opt="") const
Definition: EdbVirtual.cxx:273
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:155
virtual void SetY(float y)
Definition: EdbVirtual.h:169
virtual void Retransform()
Definition: EdbVirtual.cxx:171
EdbAffine2D * eKeep
Definition: EdbVirtual.h:152
virtual void DrawPoints(int style=23, int col=4, float size=1.)
Definition: EdbVirtual.cxx:255
virtual Float_t Ymax() const
Definition: EdbVirtual.cxx:216
virtual TH2F * XYhist()
Definition: EdbVirtual.cxx:244
EdbPointsBox2D()
Definition: EdbVirtual.cxx:125
virtual const EdbAffine2D * GetKeep() const
Definition: EdbVirtual.h:176
collection of 3D points
Definition: EdbVirtual.h:206
EdbPointsBox3D()
Definition: EdbVirtual.h:209
virtual ~EdbPointsBox3D()
Definition: EdbVirtual.h:210
virtual class for 2D track
Definition: EdbVirtual.h:123
virtual ~EdbTrack2D()
Definition: EdbVirtual.h:128
virtual void Substruct(EdbTrack2D *t)
Definition: EdbVirtual.cxx:42
virtual void Print(Option_t *opt="") const
virtual void Test() const
Definition: EdbVirtual.h:134
virtual void Transform(const EdbAffine2D *a)
TTree * t
Definition: check_shower.C:4
const char * opt
Definition: mc2raw.cxx:42
p
Definition: testBGReduction_AllMethods.C:8