8import xml.etree.ElementTree
as ET
31 if grlfile
is not None:
37 self.
tree = ET.parse(filename)
45 print(
'LumiGRLParser.parseFile(%s) - Error selecting valid range!' % filename)
49 for lbc
in self.
lumiRange.findall(
'LumiBlockCollection'):
50 runnum = int(lbc.findtext(
'Run',
'-1'))
52 print(
"LumiGRLParser.parseFile(%s) - Couldn't find Run in valid LumiBlockCollection!" % filename)
58 for lbr
in lbc.findall(
'LBRange'):
59 lbstart = int(lbr.get(
'Start',
'-1'))
60 lbend = int(lbr.get(
'End',
'-1'))
62 if lbstart < 0
or lbend < 0:
63 print(
"LumiGRLParser.parseFile(%s) - Couldn't find LBRange attributes for run %d!" % (filename, runnum))
68 self.
iovDict[runnum].append((lbstart, lbend))
70 iovstart = (runnum<<32)+lbstart
71 iovend = (runnum<<32)+lbend
72 self.
iovList.append((iovstart, iovend))
83 print(
'LumiGRLParser.selectRange() - no tree found!')
86 lumiRangeList = self.
tree.findall(
'NamedLumiRange')
87 if len(lumiRangeList) == 1:
90 name = lumiRangeList[0].findtext(
'Name',
'')
93 print(
"LumiGRLParser.selectRange() - Can't find %s in GRL, only %s!" % (self.
lumiRangeName, name))
99 elif len(lumiRangeList) == 0:
101 print(
'LumiGRLParser.selectRange() - No NamedLumiRange object found!')
106 print(
'LumiGRLParser.selectRange() - %d NamedLumiRange objects found, but no lumiRangeName specified!' % len(lumiRangeList))
112 for lbr
in lumiRangeList:
113 name = lbr.findtext(
'Name',
'')
121 print(
"LumiGRLParser.selectRange() - Couldn't find %s in available NamedLumiRange objects!" % self.
lumiRangeName)
131 lbList.extend(range(iov[0], iov[1]))
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)
parseFile(self, filename)
__init__(self, grlfile=None)
lumiBlockList(self, runnum)
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)