239 def parseOutput(self):
240
241 matchrun = re.compile(r'Run ([0-9]+) LB \[([0-9]+)-([0-9]+)\]')
242 matchlumidel = re.compile(r': IntL delivered \(ub\^-1\) : ([0-9\.e+]+)')
243 matchlumipre = re.compile(r': IntL after livefraction \(ub\^-1\): ([0-9\.\e\+\-]+)')
244 matchlumilar = re.compile(r': IntL after LAr fraction \(ub\^-1\): ([0-9\.\e\+\-]+)')
245 matchlumirec = re.compile(r': IntL recorded after prescale \(ub\^-1\) : ([0-9\.\e\+\-]+)')
246 matchgoodlb = re.compile(r': Good LBs : ([0-9]+)')
247 matchbadlb = re.compile(r': Bad LBs : ([0-9]+)')
248
249 matchtotlumidel = re.compile(r': Total IntL delivered \(ub\^-1\) : ([0-9\.\e\+\-]+)')
250 matchtotlumipre = re.compile(r': Total IntL after livefraction \(ub\^-1\): ([0-9\.\e\+\-]+)')
251 matchtotlumilar = re.compile(r': Total IntL after LAr fraction \(ub\^-1\): ([0-9\.\e\+\-]+)')
252 matchtotlumirec = re.compile(r': Total IntL recorded \(ub\^-1\) : ([0-9\.\e\+\-]+)')
253 matchtotgoodlb = re.compile(r': Total Good LBs : ([0-9]+)')
254 matchtotbadlb = re.compile(r': Total Bad LBs : ([0-9]+)')
255
256 matchrealtime = re.compile(r': Real time: ([0-9\.\e\+\-]+)')
257 matchcputime = re.compile(r': CPU time: ([0-9\.\e\+\-]+)')
258
260 self.lumidel = dict()
261 self.lumirec = dict()
262 self.lumipre = dict()
263 self.lumilar = dict()
264 self.goodlb = dict()
265 self.badlb = dict()
266
267 self.realtime = 0
268 self.cputime = 0
269
270 currentrun = '000000'
271
272 for line in open(self.workdir+'/output.txt').readlines():
273 m=matchrun.search(line)
274 if m:
275 if self.verbose:
276 print ('Found run/lbstart/lbend:', m.group(1), m.group(2), m.group(3))
277 currentrun = m.group(1)
278 self.runset.
add(currentrun)
279
280 m=matchlumidel.search(line)
281 if m:
282 if self.verbose:
283 print ('Found lumiDel:', m.group(1), 'in run', currentrun)
284 self.lumidel[currentrun] = float(m.group(1)) + self.lumidel.
get(currentrun, 0.)
285
286 m=matchlumirec.search(line)
287 if m:
288 if self.verbose:
289 print ('Found lumiRec:', m.group(1), 'in run', currentrun)
290 self.lumirec[currentrun] = float(m.group(1)) + self.lumirec.
get(currentrun, 0.)
291
292 m=matchlumipre.search(line)
293 if m:
294 if self.verbose:
295 print ('Found lumiPre:', m.group(1), 'in run', currentrun)
296 self.lumipre[currentrun] = float(m.group(1)) + self.lumipre.
get(currentrun, 0.)
297
298 m=matchlumilar.search(line)
299 if m:
300 if self.verbose:
301 print ('Found lumiLar:', m.group(1), 'in run', currentrun)
302 self.lumilar[currentrun] = float(m.group(1)) + self.lumilar.
get(currentrun, 0.)
303
304 m = matchgoodlb.search(line)
305 if m:
306 if self.verbose:
307 print ('Found goodLB:', m.group(1), 'in run', currentrun)
308 self.goodlb[currentrun] = int(m.group(1)) + self.goodlb.
get(currentrun, 0)
309
310 m = matchbadlb.search(line)
311 if m:
312 if self.verbose:
313 print ('Found badLB:', m.group(1), 'in run', currentrun)
314 self.badlb[currentrun] = int(m.group(1)) + self.badlb.
get(currentrun, 0)
315
316
317 m=matchtotlumidel.search(line)
318 if m:
319 if self.verbose:
320 print ('Found Total lumiDel:', m.group(1))
321 self.lumidel[
'Total'] = float(m.group(1)) + self.lumidel.
get(
'Total', 0.)
322
323 m=matchtotlumirec.search(line)
324 if m:
325 if self.verbose:
326 print ('Found Total lumiRec:', m.group(1))
327 self.lumirec[
'Total'] = float(m.group(1)) + self.lumirec.
get(
'Total', 0.)
328
329 m=matchtotlumipre.search(line)
330 if m:
331 if self.verbose:
332 print ('Found Total lumiPre:', m.group(1))
333 self.lumipre[
'Total'] = float(m.group(1)) + self.lumipre.
get(
'Total', 0.)
334
335 m=matchtotlumilar.search(line)
336 if m:
337 if self.verbose:
338 print ('Found Total lumiLar:', m.group(1))
339 self.lumilar[
'Total'] = float(m.group(1)) + self.lumilar.
get(
'Total', 0.)
340
341 m = matchtotgoodlb.search(line)
342 if m:
343 if self.verbose:
344 print ('Found Total goodLB:', m.group(1), 'in run', currentrun)
345 self.goodlb[
'Total'] = int(m.group(1)) + self.goodlb.
get(
'Total', 0)
346
347 m = matchtotbadlb.search(line)
348 if m:
349 if self.verbose:
350 print ('Found Total badLB:', m.group(1), 'in run', currentrun)
351 self.badlb[
'Total'] = int(m.group(1)) + self.badlb.
get(
'Total', 0)
352
353 m = matchrealtime.search(line)
354 if m:
355 self.realtime = float(m.group(1))
356
357 m = matchcputime.search(line)
358 if m:
359 self.cputime = float(m.group(1))
360
bool add(const std::string &hname, TKey *tobj)
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)