137def hancool_histo(inputFilePath="", input_run=-1, dbConnectionHisto="", dqmfOflHisto="", dbTagName=""):
138
139 if (input_run == -1):
140 input_run = 52280
141
142 if (len(inputFilePath) < 1):
143 inputFilePath = "/afs/cern.ch/user/a/atlasdqm/dqmdisk1/han_results/tier0/FDR2b/1/physics_Express/"
144 if (inputFilePath.rfind("/") != (len(inputFilePath)-1)):
145 inputFilePath += "/"
146 if (len(dbConnectionHisto) < 1):
147 dbConnectionHisto = "sqlite://;schema=/afs/cern.ch/user/a/atlasdqm/w0/users/onofrio/DQMF_08112008/14.2.10/WorkArea/python/MyCOOL_histo_FDR2c.db;dbname=OFLP200"
148
149 if (len(dqmfOflHisto) < 1):
150 dqmfOflHisto = "/GLOBAL/DETSTATUS/DQMFOFLH"
151 if (len(dbTagName) < 1):
152 dbTagName = "DetStatusDQMFOFLH-FDR2-02"
153
154
156 dbConnectionHisto, dqmfOflHisto, 0, 0, 0, 0)
157 path = inputFilePath
158 run = int(input_run)
159 filename = "run_"+str(run)+"_han.root"
160
161
162 for pair in folderMapHisto.items():
163 i = 0
164 number = 0
165 print(pair[0], pair[1])
166
167 histo_string = NameHisto_Splitting(pair[0])
168 path_string = NamePath_Splitting(pair[0])
169
170 while ((os.path.isfile(path+filename)) and (i < 2)):
171 while os.path.isfile(path+filename):
172 if (getLimits(filename)["until"] == 4294967295):
173 modH.setIOV(run, getLimits(filename)["since"],
174 run, getLimits(filename)["until"])
175 MakeHistoAssessmentsFile(path+filename)
176 xml = 'Allhisto.list'
177 the_result_histo = ListHistoAssessments(xml, pair[0])
178 print(the_result_histo)
179
180 if (the_result_histo == "Undefined"):
181
182 print(
" This histogram DOES NOT have a corresponding channel in the DB! ")
183 print(
" Info cannot be inserted ")
184
185 else:
186 histo_nameonly = the_result_histo.split(
187 '/')[int(len(the_result_histo.split('/')))-1]
188 print(histo_nameonly)
189 resultH = stringGetResult(
190 path+filename, pair[0]+"_/Results/Status")
192 algo = stringGetResult(
193 path+filename, pair[0]+"_/Config/name")
195 entries = ExtractNEntries(
196 path+filename, path_string, histo_string)
198 mean_rms = stringGetInfo(
199 path+filename, pair[0]+"_/Results")
201
202 par1 = '0'
203 par2 = '0'
204 par3 = '0'
205 par4 = '0'
206 par5 = '0'
207
208 if (algo.find('Bins_Diff_FromAvg') > -1 and mean_rms.find('null') < 0):
209 par1 = ExtractAverage(mean_rms)
210 par2 = ExtractNBins(mean_rms)
211 elif (algo.find('GatherData') > -1 and mean_rms.find('null') < 0):
212 if (mean_rms.find('Error') > -1):
213 par1 = ExtractMean(mean_rms)
214 par2 = ExtractEMean(mean_rms)
215 par3 = ExtractRMS(mean_rms)
216 par4 = ExtractERMS(mean_rms)
217 else:
218 par1 = ExtractMean(mean_rms)
219 par2 = ExtractRMS(mean_rms)
220 elif (algo.find('Simple_pol1_Fit') > -1 and mean_rms.find('null') < 0):
221 par1 = ExtractPol0(mean_rms)
222 par2 = ExtractPol1(mean_rms)
223 elif (algo.find('Simple_gaus_Fit') > -1 and mean_rms.find('null') < 0):
224 par1 = ExtractMeanG(mean_rms)
225 par2 = ExtractRMSG(mean_rms)
226 par3 = ExtractConstG(mean_rms)
227 elif (algo.find('SideBand') > -1 and mean_rms.find('null') < 0):
228 par1 = ExtractSideBands(mean_rms)
229 par2 = ExtractTotInt(mean_rms)
230 elif (algo.find('CheckHisto_Mean') > -1 and mean_rms.find('null') < 0):
231 par1 = ExtractXMean(mean_rms)
232 par2 = ExtractYMean(mean_rms)
233 elif (algo.find('CheckHisto_RMS') > -1 and mean_rms.find('null') < 0):
234 par1 = ExtractXRMS(mean_rms)
235 par2 = ExtractYRMS(mean_rms)
236 elif (algo.find('Bin') > -1) and mean_rms.find('null') < 0 and ((algo.find('Threshold') > -1) or (algo.find('ContentComp') > -1)):
237 output = ExtractOnlyNBins(histo_nameonly, mean_rms)
238 par1 = output[0]
239 if (len(output) > 1):
240 par2 = output[1]
241 par3 = output[2]
242 par4 = output[3]
243 par5 = output[4]
244 else:
245 par2 = '0'
246 else:
247 par1 = '0'
248 par2 = '0'
249
250
251 if (algo.find('CheckHisto_Mean') > -1 and algo.find('GatherData') > -1 and mean_rms.find('null') < 0):
252 comb_mean_rms = mean_rms.split('XMean: ')
253 if (comb_mean_rms[0].
find(
'Error') > -1):
254 par1 = ExtractMean(comb_mean_rms[0])
255 par2 = ExtractEMean(comb_mean_rms[0])
256 par3 = ExtractRMS(comb_mean_rms[0])
257 par4 = ExtractERMS(comb_mean_rms[0])
258 par5 = ExtractXMean(comb_mean_rms[1])
259 else:
260 par1 = ExtractMean(comb_mean_rms[0])
261 par2 = ExtractRMS(comb_mean_rms[0])
262 par3 = ExtractXMean(comb_mean_rms[1])
263 par4 = ExtractYMean(comb_mean_rms[1])
264
265 if (algo.find('BinContentComp') > -1 and algo.find('GatherData') > -1 and mean_rms.find('null') < 0):
266 if (mean_rms.find('Error') > -1):
267 par1 = ExtractMean(mean_rms)
268 par2 = ExtractEMean(mean_rms)
269 par3 = ExtractOnlyNBins(
270 histo_nameonly, mean_rms)
271 par4 = ExtractRMS(mean_rms)
272 par5 = ExtractERMS(mean_rms)
273 else:
274 par1 = ExtractMean(mean_rms)
275 par2 = ExtractRMS(mean_rms)
276 par3 = ExtractOnlyNBins(
277 histo_nameonly, mean_rms)
278
279 codeH = codeMap[resultH]
280
281 try:
282 float(par1)
283 float(par2)
284 float(par3)
285 float(par4)
286 float(par5)
287 modH.insertH(pair[1], codeH, str(algo), int(entries), float(
288 par1), float(par2), float(par3), float(par4), float(par5), dbTagName)
289 print(
"----------- global: Insertion successfull! --------------------")
291 except Exception:
292 modH.insertH(pair[1], codeH, str(algo), int(
293 entries), 0, 0, 0, 0, 0, dbTagName)
294 print(
'Could not upload parameters in DB, they are not numbers! Check the algorithm!')
295
296 number = number+1
297 filename = "run_" + \
298 str(run)+intervalType[i]+str(number)+"_han.root"
299 number = 1
300 i = i+1
301 filename = "run_" + \
302 str(run)+intervalType[i]+str(number)+"_han.root"
303 filename = "run_"+str(run)+"_han.root"
304 print(
"--------------------------------------")
void print(char *figname, TCanvas *c1)
std::string find(const std::string &s)
return a remapped string