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