FEDRA emulsion software from the OPERA Collaboration
EdbRunHeader.h
Go to the documentation of this file.
1#ifndef ROOT_EdbRunHeader
2#define ROOT_EdbRunHeader
5
11
12#include "TObjString.h"
13#include "TDatime.h"
14#include "TNamed.h"
15#include "TStopwatch.h"
16
17#ifndef ROOT_EdbStage
18#include "EdbStage.h"
19#endif
20
21#ifndef ROOT_EdbFiducial
22#include "EdbFiducial.h"
23#endif
24
25//______________________________________________________________________________
26class EdbPlate : public TNamed {
27
28private:
29
30 Int_t eID;
31
32 Float_t eUp;
33 Float_t eBase;
34 Float_t eDown;
35
36 Float_t eShrinkageU;
37 Float_t eShrinkageD;
38
39public:
40 EdbPlate( int id=0, float u=0, float b=0, float d=0, float su=0, float sd=0 ):
41 eID(id), eUp(u), eBase(b), eDown(d), eShrinkageU(su), eShrinkageD(sd) {}
42 virtual ~EdbPlate() {}
43
44 void Print() const;
45 void Set(int id, float u, float b, float d, float su, float sd);
46
47 Int_t GetID() const { return eID; }
48 Float_t GetBase() const { return eBase; }
49 Float_t GetUp() const { return eUp; }
50 Float_t GetDown() const { return eDown; }
51 Float_t GetShrinkageU() const { return eShrinkageU; }
52 Float_t GetShrinkageD() const { return eShrinkageD; }
53
54 Float_t GetEmulsion() const;
55
56 void SetEmulsion( float thickness );
57 void SetID( int id) { eID = id; }
58 void SetBase( float base) { eBase = base; }
59 void SetUp( float up ) { eUp = up; }
60 void SetDown( float down ) { eDown = down; }
61 void SetSrinkageU( float su) { eShrinkageU = su; }
62 void SetSrinkageD( float sd) { eShrinkageD = sd; }
63
64 int ReadParameters( const char *str );
65
66 ClassDef(EdbPlate,2) // emulsion plate specification
67};
68
69//______________________________________________________________________________
70class EdbCamera : public TNamed {
71
72private:
73 Float_t eWidth;
74 Float_t eHeight;
75 Int_t eRows;
76 Int_t eColumns;
77
78public:
79 EdbCamera( float w=0, float h=0, int r=0, int c=0 ):
80 eWidth(w), eHeight(h), eRows(r), eColumns(c) {}
81 virtual ~EdbCamera() { }
82
83 void Print() const;
84 void SetCamera(float w=0, float h=0, int r=0, int c=0);
85
86 Float_t GetWidth() const { return eWidth; }
87 Float_t GetHeight() const { return eHeight; }
88 Int_t GetRows() const { return eRows; }
89 Int_t GetColumns() const { return eColumns; }
90
91 ClassDef(EdbCamera,2) // CCD camera specification (obsolete)
92};
93
94//______________________________________________________________________________
95class EdbRunHeader : public TNamed {
96
97private:
98
99 Int_t eRunID;
100
101 Int_t eFlag[10];
108
109 TDatime eStartTime;
110 TDatime eFinishTime;
112 Double_t eCPU;
113
114 TString eComment;
115
117
119
121
122 Float_t eXmin, eXmax;
123 Float_t eYmin, eYmax;
124 Int_t eNareas;
125
126public:
127 EdbRunHeader( int n=0 );
128 virtual ~EdbRunHeader() { }
129
130 void SetRunID( int id ) { eRunID = id; }
131 void SetFlag(int i, int value) { if(i>=0&&i<10) eFlag[i]=value; }
132 void SetLimits(float xmin, float xmax, float ymin, float ymax)
133 { eXmin=xmin; eXmax=xmax; eYmin=ymin; eYmax=ymax; }
134 void SetNareas(int n) {eNareas=n;}
135 void SetComment(const char *com) { eComment=com; }
136 void SetCPU(Double_t cpu) { eCPU = cpu; }
137
138 Int_t GetFlag(int i) const { if(i>=0&&i<10) return eFlag[i]; return -999; }
139 EdbArea *GetArea() const { return eArea; }
140 EdbStage *GetStage() const { return eStage; }
141 EdbPlate *GetPlate() const { return ePlate; }
142 Int_t GetRunID() const { return eRunID; }
143 TString GetComment() const { return eComment; }
144 TDatime *GetStartTime() { return &eStartTime; }
145 TDatime *GetFinishTime() { return &eFinishTime; }
146 Long_t GetSystemStartTime() const { return eSystemStartTime; }
147 Double_t GetCPU() const { return eCPU; }
148 Int_t GetNareas() const { return eNareas; }
149
150 Float_t GetXmin() const { return eXmin; }
151 Float_t GetXmax() const { return eXmax; }
152 Float_t GetYmin() const { return eYmin; }
153 Float_t GetYmax() const { return eYmax; }
154
156
157 Float_t EmulsionUp() const { return ePlate->GetUp(); }
158 Float_t EmulsionBase() const { return ePlate->GetBase(); }
159 Float_t EmulsionDown() const { return ePlate->GetDown(); }
160 Float_t ShrinkageUp() const { return ePlate->GetShrinkageU(); }
161 Float_t ShrinkageDown() const { return ePlate->GetShrinkageD(); }
162
164
165 Int_t NpixelsX() const { return eStage->GetCCD()->GetNx(); }
166 Int_t NpixelsY() const { return eStage->GetCCD()->GetNy(); }
167
168 Float_t PixelX() const { return eStage->PixelX(); }
169 Float_t PixelY() const { return eStage->PixelX(); }
170
171 Float_t CameraWidth() const { return PixelX()*NpixelsX(); }
172 Float_t CameraHeight() const { return PixelY()*NpixelsY(); }
173
174 EdbAffine2D *CCD2Stage() const { return eStage->CCD2Stage(); }
175
176
178
179 void SetCCD( int nx=0,
180 int ny=0,
181 float px=0,
182 float py=0,
183 char *name="",
184 char *title="")
185 {
186 eStage->GetCCD()->Set( nx, ny, px, py );
187 eStage->GetCCD()->SetName( name );
188 eStage->GetCCD()->SetTitle( title );
189 }
190
191 void SetObjective( float mag,
192 float a, float b, float c, float d, float p, float q,
193 char *name="",
194 char *title="")
195 { eStage->GetObjective()->Set( mag, a,b,c,d,p,q );
196 eStage->GetObjective()->SetName( name );
197 eStage->GetObjective()->SetTitle( title );
198 }
199
200 void SetPlate( int id,
201 float up, float base, float down, float shru, float shrd,
202 char *name="",
203 char *title="")
204 { ePlate->Set( id, up, base, down, shru, shrd );
205 ePlate->SetName(name);
206 ePlate->SetTitle(title);
207 }
208
209 void SetArea( int N,
210 float stepx, float stepy,
211 int ft, int fb , int path )
212 { eArea->Set(N, stepx, stepy, ft, fb, path); }
213
215
216 void Print();
217
218 ClassDef(EdbRunHeader,2) // Run specific information
219};
220
221#endif /* ROOT_EdbRunHeader */
T mag(const SVector< T, D > &rhs)
Definition: Functions.hh:216
void d()
Definition: RecDispEX.C:381
void a()
Definition: check_aligned.C:59
Definition: EdbAffine.h:17
Definition: EdbFiducial.h:134
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
Int_t GetNx() const
Definition: EdbStage.h:37
void Set(int nx=0, int ny=0, float px=0, float py=0)
Definition: EdbStage.h:34
Int_t GetNy() const
Definition: EdbStage.h:38
Definition: EdbRunHeader.h:70
Int_t GetColumns() const
Definition: EdbRunHeader.h:89
void Print() const
Definition: EdbRunHeader.cxx:127
Float_t eWidth
dimension of the image along rows
Definition: EdbRunHeader.h:73
Int_t eRows
number of rows in the matrix
Definition: EdbRunHeader.h:75
virtual ~EdbCamera()
Definition: EdbRunHeader.h:81
Float_t eHeight
dimension of the image along columns
Definition: EdbRunHeader.h:74
Float_t GetWidth() const
Definition: EdbRunHeader.h:86
Int_t GetRows() const
Definition: EdbRunHeader.h:88
Int_t eColumns
number of columns in the matrix
Definition: EdbRunHeader.h:76
void SetCamera(float w=0, float h=0, int r=0, int c=0)
Definition: EdbRunHeader.cxx:118
Float_t GetHeight() const
Definition: EdbRunHeader.h:87
EdbCamera(float w=0, float h=0, int r=0, int c=0)
Definition: EdbRunHeader.h:79
void Set(float mag, float a, float b, float c, float d, float p, float q)
Definition: EdbStage.h:61
Definition: EdbRunHeader.h:26
Int_t eID
plate ID
Definition: EdbRunHeader.h:30
void SetUp(float up)
Definition: EdbRunHeader.h:59
void SetSrinkageU(float su)
Definition: EdbRunHeader.h:61
Float_t eDown
Down side | (normally should be the same)
Definition: EdbRunHeader.h:34
Float_t GetDown() const
Definition: EdbRunHeader.h:50
Float_t eShrinkageU
srinkage of the Up side (measured in the test run)
Definition: EdbRunHeader.h:36
Float_t eUp
Up side | nominal emulsion thickness before shrinkage (on the beam)
Definition: EdbRunHeader.h:32
Float_t GetUp() const
Definition: EdbRunHeader.h:49
Float_t GetShrinkageU() const
Definition: EdbRunHeader.h:51
Int_t GetID() const
Definition: EdbRunHeader.h:47
void SetEmulsion(float thickness)
Definition: EdbRunHeader.cxx:162
int ReadParameters(const char *str)
Definition: EdbRunHeader.cxx:188
void Print() const
Definition: EdbRunHeader.cxx:207
void SetBase(float base)
Definition: EdbRunHeader.h:58
void SetDown(float down)
Definition: EdbRunHeader.h:60
void Set(int id, float u, float b, float d, float su, float sd)
Definition: EdbRunHeader.cxx:215
Float_t GetEmulsion() const
Definition: EdbRunHeader.cxx:172
void SetID(int id)
Definition: EdbRunHeader.h:57
Float_t eBase
base thickness
Definition: EdbRunHeader.h:33
Float_t GetBase() const
Definition: EdbRunHeader.h:48
virtual ~EdbPlate()
Definition: EdbRunHeader.h:42
EdbPlate(int id=0, float u=0, float b=0, float d=0, float su=0, float sd=0)
Definition: EdbRunHeader.h:40
Float_t GetShrinkageD() const
Definition: EdbRunHeader.h:52
Float_t eShrinkageD
srinkage of the Down side (measured in the test run)
Definition: EdbRunHeader.h:37
void SetSrinkageD(float sd)
Definition: EdbRunHeader.h:62
Definition: EdbRunHeader.h:95
void SetLimits(float xmin, float xmax, float ymin, float ymax)
Definition: EdbRunHeader.h:132
void Print()
other routines
Definition: EdbRunHeader.cxx:73
TString GetComment() const
Definition: EdbRunHeader.h:143
EdbPlate * GetPlate() const
Definition: EdbRunHeader.h:141
void SetArea(int N, float stepx, float stepy, int ft, int fb, int path)
Definition: EdbRunHeader.h:209
TDatime eStartTime
Date and Time of run starting.
Definition: EdbRunHeader.h:109
Float_t EmulsionDown() const
Definition: EdbRunHeader.h:159
TDatime * GetStartTime()
Definition: EdbRunHeader.h:144
Float_t GetXmax() const
Definition: EdbRunHeader.h:151
void SetCCD(int nx=0, int ny=0, float px=0, float py=0, char *name="", char *title="")
stage setting functions
Definition: EdbRunHeader.h:179
EdbPlate * ePlate
Emulsion plate specification.
Definition: EdbRunHeader.h:118
Long_t GetSystemStartTime() const
Definition: EdbRunHeader.h:146
void SetPlate(int id, float up, float base, float down, float shru, float shrd, char *name="", char *title="")
Definition: EdbRunHeader.h:200
void SetComment(const char *com)
Definition: EdbRunHeader.h:135
Float_t GetXmin() const
Definition: EdbRunHeader.h:150
Float_t eYmin
Definition: EdbRunHeader.h:123
Int_t GetRunID() const
Definition: EdbRunHeader.h:142
EdbArea * eArea
definition of scanning area (views path)
Definition: EdbRunHeader.h:116
Float_t CameraHeight() const
Definition: EdbRunHeader.h:172
void SetNareas(int n)
Definition: EdbRunHeader.h:134
Float_t PixelY() const
Definition: EdbRunHeader.h:169
TString eComment
Comment to define this scanning session.
Definition: EdbRunHeader.h:114
TDatime * GetFinishTime()
Definition: EdbRunHeader.h:145
Int_t eNareas
total number of areas (fragments) in the run
Definition: EdbRunHeader.h:124
void SetCPU(Double_t cpu)
Definition: EdbRunHeader.h:136
EdbArea * GetArea() const
Definition: EdbRunHeader.h:139
Int_t eFlag[10]
Definition: EdbRunHeader.h:101
Float_t EmulsionUp() const
plate access functions usefull for analysis
Definition: EdbRunHeader.h:157
Float_t CameraWidth() const
Definition: EdbRunHeader.h:171
Double_t GetCPU() const
Definition: EdbRunHeader.h:147
Double_t eCPU
CPU time of run production.
Definition: EdbRunHeader.h:112
Int_t GetFlag(int i) const
Definition: EdbRunHeader.h:138
void SetRunID(int id)
Definition: EdbRunHeader.h:130
Float_t ShrinkageDown() const
Definition: EdbRunHeader.h:161
void SetFlag(int i, int value)
Definition: EdbRunHeader.h:131
EdbStage * GetStage() const
Definition: EdbRunHeader.h:140
void SetObjective(float mag, float a, float b, float c, float d, float p, float q, char *name="", char *title="")
Definition: EdbRunHeader.h:191
Float_t GetYmax() const
Definition: EdbRunHeader.h:153
Float_t eXmin
Definition: EdbRunHeader.h:122
EdbStage * eStage
stage specification
Definition: EdbRunHeader.h:120
Int_t GetNareas() const
Definition: EdbRunHeader.h:148
EdbAffine2D * CCD2Stage() const
Definition: EdbRunHeader.h:174
EdbRunHeader(int n=0)
Int_t eRunID
Run identifier.
Definition: EdbRunHeader.h:99
Float_t PixelX() const
Definition: EdbRunHeader.h:168
Float_t EmulsionBase() const
Definition: EdbRunHeader.h:158
Float_t eYmax
Run scanning limits.
Definition: EdbRunHeader.h:123
TDatime eFinishTime
Date and Time of run finishing.
Definition: EdbRunHeader.h:110
virtual ~EdbRunHeader()
Definition: EdbRunHeader.h:128
Float_t ShrinkageUp() const
Definition: EdbRunHeader.h:160
Int_t NpixelsX() const
stage access functions usefull for analysis
Definition: EdbRunHeader.h:165
Long_t eSystemStartTime
System time of run start in msec.
Definition: EdbRunHeader.h:111
Float_t GetYmin() const
Definition: EdbRunHeader.h:152
Int_t NpixelsY() const
Definition: EdbRunHeader.h:166
Float_t eXmax
Run scanning limits.
Definition: EdbRunHeader.h:122
stage parameters
Definition: EdbStage.h:85
EdbObjective * GetObjective() const
Definition: EdbStage.h:105
Float_t PixelX() const
Definition: EdbStage.h:101
EdbAffine2D * CCD2Stage() const
create new object with copied affine parameters
Definition: EdbStage.cxx:180
EdbCCD * GetCCD() const
Definition: EdbStage.h:104
void sd()
Definition: check_vertex.C:185
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
UInt_t id
Definition: tlg2couples.C:117
q
Definition: testBGReduction_AllMethods.C:55
p
Definition: testBGReduction_AllMethods.C:8
void w(int rid=2, int nviews=2)
Definition: test.C:27
void r(int rid=2)
Definition: test.C:201