1 |
RunInfo |
2 |
|
3 |
|
4 |
class RunInfo : public TObject |
5 |
|
6 |
|
7 |
Inheritance Chart: |
8 |
|
9 |
TObject <- RunInfo |
10 |
|
11 |
|
12 |
Methods: |
13 |
|
14 |
private: |
15 |
|
16 |
public: |
17 |
|
18 |
|
19 |
Data Members: |
20 |
|
21 |
private: |
22 |
|
23 |
public: |
24 |
ULong64_t ID; |
25 |
ULong64_t ID_REG_RUN; |
26 |
ULong64_t ID_REG_RUN_L2; |
27 |
ULong64_t RUNHEADER_TIME; |
28 |
ULong64_t RUNTRAILER_TIME; |
29 |
Int_t EV_REG_PHYS_FROM; |
30 |
Int_t EV_REG_PHYS_TO; |
31 |
Int_t EV_REG_RUNHEADER; |
32 |
Int_t EV_REG_RUNTRAILER; |
33 |
Int_t TRK_CALIB_USED; |
34 |
Int_t EFFECTIVE_WORKING_SCHEDULE; |
35 |
Int_t PRH_VAR_TRIGGER_MODE_A; |
36 |
Int_t PRH_VAR_TRIGGER_MODE_B; |
37 |
Int_t ACQ_BUILD_INFO; |
38 |
Int_t ACQ_VAR_INFO; |
39 |
TString TRIG_ver; |
40 |
TString TOF_ver; |
41 |
TString AC_ver; |
42 |
TString TRK_ver; |
43 |
TString CAL_ver; |
44 |
TString S4_ver; |
45 |
TString ND_ver; |
46 |
|
47 |
|
48 |
Class Description: |
49 |
|
50 |
Class needed to copy into the Level2 rootple the information stored in the DB table GL_RUN. |
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 |
ItoRunInfo |
57 |
|
58 |
|
59 |
class ItoRunInfo : public TObject |
60 |
|
61 |
|
62 |
Inheritance Chart: |
63 |
|
64 |
TObject <- ItoRunInfo |
65 |
|
66 |
|
67 |
Methods: |
68 |
|
69 |
private: |
70 |
|
71 |
public: |
72 |
ItoRunInfo(); |
73 |
ItoRunInfo(TSQLServer *dbc, TFile *processFile, TString processFolder, ULong64_t idRun, TString Detector, TString Dec_version); |
74 |
ItoRunInfo(TFile *processFile); |
75 |
Int_t Update(); |
76 |
Int_t Read(); |
77 |
Int_t GetRunInfo(ULong64_t run); |
78 |
UInt_t GetRunForEntry(UInt_t entry); |
79 |
Long64_t GetRunEntries(){return(totnorun);}; |
80 |
Bool_t IsReprocessing(); |
81 |
UInt_t GetFirstFileEntry(); |
82 |
UInt_t GetLastFileEntry(); |
83 |
ULong64_t GetFileEntries(); |
84 |
UInt_t GetNoRun(); |
85 |
TArrayL *GetRunList(); |
86 |
void Close(); |
87 |
|
88 |
|
89 |
Data Members: |
90 |
|
91 |
private: |
92 |
ULong64_t file_entries; |
93 |
Long64_t totnorun; |
94 |
Int_t first_file_entry; |
95 |
Int_t last_file_entry; |
96 |
UInt_t norun; |
97 |
Bool_t reprocessing; |
98 |
Bool_t updating; |
99 |
TFile *file; |
100 |
TTree *newtree; |
101 |
TArrayL *runlist; |
102 |
ULong64_t idRun; |
103 |
TSQLServer *dbc; |
104 |
TString processFolder; |
105 |
TString Detector; |
106 |
TString Dec_version; |
107 |
|
108 |
public: |
109 |
ULong64_t ID; |
110 |
ULong64_t ID_REG_RUN; |
111 |
ULong64_t ID_REG_RUN_L2; |
112 |
ULong64_t RUNHEADER_TIME; |
113 |
ULong64_t RUNTRAILER_TIME; |
114 |
Int_t EV_REG_PHYS_FROM; |
115 |
Int_t EV_REG_PHYS_TO; |
116 |
Int_t EV_REG_RUNHEADER; |
117 |
Int_t EV_REG_RUNTRAILER; |
118 |
Int_t TRK_CALIB_USED; |
119 |
Int_t EFFECTIVE_WORKING_SCHEDULE; |
120 |
Int_t PRH_VAR_TRIGGER_MODE_A; |
121 |
Int_t PRH_VAR_TRIGGER_MODE_B; |
122 |
Int_t ACQ_BUILD_INFO; |
123 |
Int_t ACQ_VAR_INFO; |
124 |
TString TRIG_ver; |
125 |
TString TOF_ver; |
126 |
TString AC_ver; |
127 |
TString TRK_ver; |
128 |
TString CAL_ver; |
129 |
TString S4_ver; |
130 |
TString ND_ver; |
131 |
|
132 |
|
133 |
Class Description: |
134 |
|
135 |
Interface to the RunInfo class: provides methods which can be used to reprocess RUNs inside a Level2 file. |
136 |
|
137 |
|
138 |
ItoRunInfo(): |
139 |
|
140 |
Default constructor for RunInfo. |
141 |
|
142 |
|
143 |
ItoRunInfo(TSQLServer *dbc, TFile *processFile, ULong64_t idRun, TString Detector, TString Dec_version, Int_t &signal): |
144 |
|
145 |
Constructor to be used with a file opened in "UPDATE" mode, needed to update informations in the file. |
146 |
Given a opened sql connection, an opened TFile and the idRun it updates the versioning information for |
147 |
the given detector or creates inside the TFile the TTree run copying data from the GL_RUN table where ID=idRun. |
148 |
Signal is returned in "signal" variable: if less than 0 an error occurred. |
149 |
Detector can be: |
150 |
"TOF", "TRIG", "AC", "TRK", "CALO", "S4", "ND" |
151 |
|
152 |
Example: |
153 |
|
154 |
... |
155 |
#include <RunInfo.h> |
156 |
|
157 |
... |
158 |
|
159 |
TSQLServer *dbc = 0; |
160 |
dbc = TSQLServer::Connect("mysql://localhost/pamelaprod","anonymous",""); |
161 |
TFile *file = new TFile(processFile.Data(),"UPDATE"); |
162 |
const char *caloversion = CaloInfo(false); |
163 |
Int_t sgnl = 0; |
164 |
ItoRunInfo *runinfo = new ItoRunInfo(dbc,file,"calorimeterFolder",idRun,"CALO",caloversion); |
165 |
sgnl = runinfo->Update() |
166 |
if ( sgnl < 0 ) return(sgnl); |
167 |
|
168 |
|
169 |
ItoRunInfo(TFile *processFile): |
170 |
|
171 |
Constructor to be used with a file opened in "READ-ONLY" mode, needed only to perform analysis. |
172 |
|
173 |
|
174 |
|
175 |
Bool_t IsReprocessing(): |
176 |
|
177 |
Returns "true" if the TFile already contained a Run TTree and the "Detector" versioning information was already |
178 |
filled; return "false" otherwise. |
179 |
|
180 |
|
181 |
UInt_t GetFirstFileEntry(); |
182 |
|
183 |
Returns the entry of the TFile which contains the first event of the processed run. |
184 |
|
185 |
|
186 |
UInt_t GetFirstFileEntry(); |
187 |
|
188 |
Returns the entry of the TFile which contains the last event of the processed run. |
189 |
|
190 |
|
191 |
ULong64_t GetFileEntries(); |
192 |
|
193 |
Returns the number of entries of the TFile. |
194 |
|
195 |
|
196 |
UInt_t GetNoRun(): |
197 |
|
198 |
Returns the number of runs to be processed. |
199 |
|
200 |
|
201 |
TArrayL *GetRunList(): |
202 |
|
203 |
Returns an array of lenght equal to the number of run to be processed in which each elements is the idRun to be |
204 |
processed. |
205 |
Example (follows the one above): |
206 |
|
207 |
UInt_t numbofrun = runinfo->GetNoRun(); |
208 |
TArrayL *runlist = runinfo->GetRunList(); |
209 |
// |
210 |
// Loop over the run to be processed |
211 |
// |
212 |
for (UInt_t irun=0; irun < numbofrun; irun++){ |
213 |
// |
214 |
// get idRun to process |
215 |
// |
216 |
idRun = runlist->At(irun); |
217 |
// |
218 |
// store run information from GL_RUN in memory |
219 |
// |
220 |
sgnl = runinfo->GetRunInfo(idRun); |
221 |
if ( sgnl < 0 ) return(sgnl); |
222 |
// |
223 |
// process data |
224 |
// |
225 |
printf(" ID_REG_RUN for run %i is %i \n",(int)idRun,(int)runinfo->ID_REG_RUN); |
226 |
printf(" RUNHEADER_TIME for run %i is %i \n",(int)idRun,(int)runinfo->RUNHEADER_TIME); |
227 |
|
228 |
|
229 |
Int_t GetRunInfo(ULong64_t idRun): |
230 |
|
231 |
Fill data members with variables of the run "idRun" reading from the file and not from the DB. |
232 |
Returns a signal less than zero in case of any error, zero otherwise. |
233 |
As example look at the one above. |
234 |
|
235 |
|
236 |
UInt_t GetRunForEntry(UInt_t entry); |
237 |
|
238 |
Given the entry number it returns the ID of the run which contains that event. |
239 |
|
240 |
|
241 |
Long64_t GetRunEntries(){return(totnorun);}; |
242 |
|
243 |
Returns the number of runs contained in the file. |
244 |
|
245 |
|
246 |
void Close(): |
247 |
|
248 |
Clear private data memebers. |