FEDRA emulsion software from the OPERA Collaboration
EdbFiducial.h
Go to the documentation of this file.
1#ifndef ROOT_EdbFiducial
2#define ROOT_EdbFiducial
5
11
12#include "TClonesArray.h"
13
14#ifndef ROOT_EdbVirtual
15#include "EdbVirtual.h"
16#endif
17
18class EdbAffine2D;
19
20//______________________________________________________________________________
21class EdbMark : public TObject, public EdbPoint2D {
22
23 private:
24 Int_t eID;
25 Float_t eX, eY;
26 Int_t eFlag;
27
28 public:
30 EdbMark(int id, float x, float y, int flag=0): eID(id), eX(x), eY(y), eFlag(flag) {}
31 virtual ~EdbMark(){}
32
33 //members access functions
34 Int_t GetID() const { return eID; }
35 Float_t GetX() const { return eX; }
36 Float_t GetY() const { return eY; }
37 void Set(int id, float x, float y) { eID=id; eX=x; eY=y; }
38 void SetFlag(int flag) { eFlag=flag; }
39 Int_t Flag() const { return eFlag; }
40
41 // mandatory virtual functions:
42 Float_t X() const { return GetX(); }
43 Float_t Y() const { return GetY(); }
44 void SetX( float x ) { eX=x; }
45 void SetY( float y ) { eY=y; }
46
47 //other functions
48
49 void Print( Option_t *opt="") const;
50
51 ClassDef(EdbMark,2) // fiducial mark
52};
53
54//______________________________________________________________________________
55class EdbMarksBox : public TObject, public EdbPointsBox2D {
56
57 private:
58
59 TClonesArray *eMarks;
60
61 public:
63 EdbMarksBox( const EdbMarksBox &mb );
64 EdbMarksBox( int n );
65 virtual ~EdbMarksBox();
66
67
69 void AddMark(int id, float x, float y, int flag=0);
70 Int_t GetN() const;
71 EdbMark *GetMark(int i) const;
72 TClonesArray *GetMarks() const { return eMarks; }
73
75 Int_t N() const { return GetN(); }
76 EdbPoint *At(int i) const { return (EdbPoint*)GetMark(i); }
77
78 void Draw(int style=23, int col=4, float size=1., float tsiz=.03 );
79
81 void Print( Option_t *opt="") const;
82
83 ClassDef(EdbMarksBox,2) // collection of fiducial marks
84};
85
86
87//______________________________________________________________________________
88class EdbMarksSet : public TObject {
89
90 private:
91
94
95 public:
96 Float_t eXmin, eXmax;
97 Float_t eYmin, eYmax;
98 Long_t eBrick;
99
100 public:
101 EdbMarksSet();
102 EdbMarksSet( const EdbMarksSet &ms );
103 virtual ~EdbMarksSet();
104
105 Int_t GetN() const;
106 Int_t GetNa() const;
107 Int_t GetNs() const;
108
109 EdbMarksBox *GetAbsolute() const { return eAbsolute; }
110 EdbMarksBox *GetStage() const { return eStage; }
111
112 EdbAffine2D *Abs2Stage() const;
113 EdbAffine2D *Stage2Abs() const;
114
115 Int_t ReadDA( char *file );
116 Int_t ReadDB( char *file );
117 Int_t ReadDollar( char *file, EdbMarksBox *mbox );
118
119 Int_t ChangeMapStringSpacer( TString &str, char oldspacer, char newspacer);
120 Int_t ReadMap( char *file, char spacer='_', char shape='S');
121 Int_t WriteMap( char *file, char spacer='_', char shape='S', int plate=1);
122 Int_t ReadMap2( char *file, char spacer='_', char shape='S');
123 Int_t WriteMap2( char *file, char spacer='_', char shape='S', int plate=1);
124
125 void DrawA( Option_t *opt="") const;
126 void DrawS( Option_t *opt="") const;
127
128 void Print( Option_t *opt="") const;
129
130 ClassDef(EdbMarksSet,2) // $b and $a
131};
132
133//______________________________________________________________________________
134class EdbArea : public EdbMarksBox {
135
136 private:
137
138 Int_t eN;
139
140 Float_t eStepX;
141 Float_t eStepY;
142
145
146 Int_t ePath;
147
148 public:
149 EdbArea( int n=1, float stepx=1, float stepy=1, int ft=0, int fb=0, int path=0 );
150 virtual ~EdbArea(){}
151
152 void Set( int n, float stepx, float stepy, int ft, int fb, int path=1, int nx=0, int ny=0 );
153
154 int MakeSpiralPath( int n , int *x, int *y );
155 int MakeSerpentina( int n , int *x, int *y, int nx, int ny );
156
157 void SetCentre( float x, float y );
158 void Scale( float dx, float dy );
159
160 Int_t GetN() const { return eN; }
161 Float_t GetStepX() const { return eStepX; }
162 Float_t GetStepY() const { return eStepY; }
163 Int_t GetNframesTop() const { return eFramesTop; }
164 Int_t GetNframesBot() const { return eFramesBot; }
165 Int_t GetPath() const { return ePath; }
166
167 Int_t Nviews() { return N(); }
168
169 Float_t Xview( int iv ) { return At(iv)->X(); }
170 Float_t Yview( int iv ) { return At(iv)->Y(); }
171
172 int ReadParameters( const char *str );
173 void Print(Option_t opt=0) const;
174
175 ClassDef(EdbArea,3) // Area structure definition
176};
177
178#endif /* ROOT_EdbFiducial */
Definition: EdbAffine.h:17
Definition: EdbFiducial.h:134
Int_t Nviews()
Definition: EdbFiducial.h:167
Int_t ePath
path to be used (0-nopath, 1-spiral, 2-serpentine, ...)
Definition: EdbFiducial.h:146
Int_t eFramesBot
Definition: EdbFiducial.h:144
Int_t GetN() const
Definition: EdbFiducial.h:160
Float_t Yview(int iv)
Definition: EdbFiducial.h:170
Float_t GetStepY() const
Definition: EdbFiducial.h:162
int MakeSerpentina(int n, int *x, int *y, int nx, int ny)
Definition: EdbFiducial.cxx:144
Int_t eN
number of views in the area
Definition: EdbFiducial.h:138
Int_t eFramesTop
number of frames to scan
Definition: EdbFiducial.h:143
Float_t GetStepX() const
Definition: EdbFiducial.h:161
int ReadParameters(const char *str)
Definition: EdbFiducial.cxx:99
Float_t Xview(int iv)
Definition: EdbFiducial.h:169
void Print(Option_t opt=0) const
Definition: EdbFiducial.cxx:92
Int_t GetPath() const
Definition: EdbFiducial.h:165
Float_t eStepX
distance between zones
Definition: EdbFiducial.h:140
int MakeSpiralPath(int n, int *x, int *y)
Definition: EdbFiducial.cxx:170
void SetCentre(float x, float y)
Definition: EdbFiducial.cxx:196
void Scale(float dx, float dy)
Definition: EdbFiducial.cxx:205
Int_t GetNframesBot() const
Definition: EdbFiducial.h:164
virtual ~EdbArea()
Definition: EdbFiducial.h:150
Int_t GetNframesTop() const
Definition: EdbFiducial.h:163
void Set(int n, float stepx, float stepy, int ft, int fb, int path=1, int nx=0, int ny=0)
Definition: EdbFiducial.cxx:115
EdbArea(int n=1, float stepx=1, float stepy=1, int ft=0, int fb=0, int path=0)
Definition: EdbFiducial.cxx:59
Float_t eStepY
Definition: EdbFiducial.h:141
Definition: EdbFiducial.h:21
Float_t GetY() const
Definition: EdbFiducial.h:36
EdbMark()
Definition: EdbFiducial.h:29
void Print(Option_t *opt="") const
Int_t eID
fiducial mark id
Definition: EdbFiducial.h:24
void Set(int id, float x, float y)
Definition: EdbFiducial.h:37
Float_t GetX() const
Definition: EdbFiducial.h:35
Float_t Y() const
Definition: EdbFiducial.h:43
Int_t Flag() const
Definition: EdbFiducial.h:39
void SetY(float y)
Definition: EdbFiducial.h:45
Int_t eFlag
reserved for information top/bottom/lateral/damaged/etc
Definition: EdbFiducial.h:26
void SetFlag(int flag)
Definition: EdbFiducial.h:38
Int_t GetID() const
Definition: EdbFiducial.h:34
void SetX(float x)
Definition: EdbFiducial.h:44
Float_t eX
Definition: EdbFiducial.h:25
EdbMark(int id, float x, float y, int flag=0)
Definition: EdbFiducial.h:30
Float_t eY
coordinates
Definition: EdbFiducial.h:25
virtual ~EdbMark()
Definition: EdbFiducial.h:31
Float_t X() const
Definition: EdbFiducial.h:42
Definition: EdbFiducial.h:55
Int_t GetN() const
Definition: EdbFiducial.cxx:703
Int_t N() const
mandatory virtual functions:
Definition: EdbFiducial.h:75
EdbMark * GetMark(int i) const
Definition: EdbFiducial.cxx:709
void Print(Option_t *opt="") const
other functions
Definition: EdbFiducial.cxx:695
void Draw(int style=23, int col=4, float size=1., float tsiz=.03)
Definition: EdbFiducial.cxx:675
void AddMark(int id, float x, float y, int flag=0)
members access functions
Definition: EdbFiducial.cxx:716
TClonesArray * GetMarks() const
Definition: EdbFiducial.h:72
EdbPoint * At(int i) const
Definition: EdbFiducial.h:76
EdbMarksBox()
Definition: EdbFiducial.cxx:627
virtual ~EdbMarksBox()
Definition: EdbFiducial.cxx:646
TClonesArray * eMarks
collection of fiducial marks
Definition: EdbFiducial.h:59
Definition: EdbFiducial.h:88
Int_t GetNa() const
Definition: EdbFiducial.cxx:259
Long_t eBrick
Definition: EdbFiducial.h:98
Float_t eXmin
Definition: EdbFiducial.h:96
Int_t WriteMap(char *file, char spacer='_', char shape='S', int plate=1)
Definition: EdbFiducial.cxx:495
Float_t eYmin
Definition: EdbFiducial.h:97
Int_t WriteMap2(char *file, char spacer='_', char shape='S', int plate=1)
Definition: EdbFiducial.cxx:540
EdbMarksBox * GetAbsolute() const
Definition: EdbFiducial.h:109
Int_t GetN() const
Definition: EdbFiducial.cxx:253
Int_t ReadMap(char *file, char spacer='_', char shape='S')
Definition: EdbFiducial.cxx:395
virtual ~EdbMarksSet()
Definition: EdbFiducial.cxx:234
EdbAffine2D * Stage2Abs() const
Definition: EdbFiducial.cxx:279
Int_t GetNs() const
Definition: EdbFiducial.cxx:265
Float_t eYmax
Definition: EdbFiducial.h:97
EdbMarksBox * eAbsolute
fiducial marks in absolute coord ($b)
Definition: EdbFiducial.h:92
Int_t ReadDA(char *file)
Definition: EdbFiducial.cxx:293
void DrawA(Option_t *opt="") const
Definition: EdbFiducial.cxx:241
EdbMarksBox * GetStage() const
Definition: EdbFiducial.h:110
Int_t ReadDB(char *file)
Definition: EdbFiducial.cxx:287
Int_t ReadDollar(char *file, EdbMarksBox *mbox)
Definition: EdbFiducial.cxx:333
void DrawS(Option_t *opt="") const
Definition: EdbFiducial.cxx:247
EdbMarksSet()
Definition: EdbFiducial.cxx:212
EdbMarksBox * eStage
fiducial marks in stage coord ($a)
Definition: EdbFiducial.h:93
Int_t ChangeMapStringSpacer(TString &str, char oldspacer, char newspacer)
Definition: EdbFiducial.cxx:385
EdbAffine2D * Abs2Stage() const
Definition: EdbFiducial.cxx:271
Int_t ReadMap2(char *file, char spacer='_', char shape='S')
Definition: EdbFiducial.cxx:444
void Print(Option_t *opt="") const
Definition: EdbFiducial.cxx:593
Float_t eXmax
Definition: EdbFiducial.h:96
virtual 2D point
Definition: EdbVirtual.h:76
protocol class for point (virtual point)
Definition: EdbVirtual.h:28
virtual Float_t Y() const =0
virtual Float_t X() const =0
collection of 2D points
Definition: EdbVirtual.h:150
TFile * file
Definition: write_pvr.C:3
const char * opt
Definition: mc2raw.cxx:42
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
UInt_t id
Definition: tlg2couples.C:117