35 def parseFile(self, filename):
36
37 self.tree = ET.parse(filename)
38
39 self.runList = []
40 self.iovList = []
41 self.iovDict = dict()
42
43
44 if not self.selectRange():
45 print(
'LumiGRLParser.parseFile(%s) - Error selecting valid range!' % filename)
46 return
47
48
49 for lbc in self.lumiRange.findall('LumiBlockCollection'):
50 runnum = int(lbc.findtext('Run', '-1'))
51 if runnum < 0:
52 print(
"LumiGRLParser.parseFile(%s) - Couldn't find Run in valid LumiBlockCollection!" % filename)
53 continue
54
55 self.runList.append(runnum)
56 self.iovDict[runnum] = []
57
58 for lbr in lbc.findall('LBRange'):
59 lbstart = int(lbr.get('Start', '-1'))
60 lbend = int(lbr.get('End', '-1'))
61
62 if lbstart < 0 or lbend < 0:
63 print(
"LumiGRLParser.parseFile(%s) - Couldn't find LBRange attributes for run %d!" % (filename, runnum))
64 continue
65
66
67 lbend += 1
68 self.iovDict[runnum].append((lbstart, lbend))
69
70 iovstart = (runnum<<32)+lbstart
71 iovend = (runnum<<32)+lbend
72 self.iovList.append((iovstart, iovend))
73
74
77
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
void print(char *figname, TCanvas *c1)