4 import CoolConvUtilities.AtlCoolLib
as AtlCoolLib
5 from PyCool
import cool,coral
9 from MuonCalibDbOperations.MuonCalibResolveTag
import ResolveTag
10 from MuonCalibDbOperations.MuonCalibConvertTimeSlewing
import TimeSlewingApplied, NoTs2Ts, GasmonDriftTimeOffsetT0
12 sys.argv=[sys.argv[0],
'-b']
14 from ROOT
import TGraphErrors, TSpline3, gDirectory
20 if type(data)==coral.Blob:
21 blob=StringIO.StringIO()
22 for i
in range(data.size()):
23 blob.write(chr(data[i]))
24 unpacked=zlib.decompress(blob.getvalue())
28 return iov[0]*10000000 + iov[1]
33 db=AtlCoolLib.indirectOpen(db_string, readOnly=
True, debug=
True)
34 except Exception
as e:
35 print (
'Problem opening database',e)
39 cool_folder=db.getFolder(folder)
44 objs=cool_folder.browseObjects((run<<32), ((run+1)<<32), cool.ChannelSelection.all(), cool_tag)
46 objs=cool_folder.browseObjects(0, (999999<<32), cool.ChannelSelection.all(), cool_tag)
48 file_col=obj.payload()[
'file']
49 file_items=re.split(
'[A-Z,a-z]*', file_col)
52 if len(file_items)==2:
54 head_id =
int(file_items[1])
55 site = re.sub(
"[0-9]",
"", file_col)
61 ident=(obj.since()>>32, obj.until()>>32, site, head_id, ts)
62 if ident
not in counters:
65 for ident
in sorted(counters.keys(), key=iov_keygen):
66 print (
"[", ident[0],
",", ident[1],
"[", ident[2], ident[3], ident[4],
":" , counters[ident])
72 db=AtlCoolLib.indirectOpen(db_string, readOnly=
True, debug=
True)
73 except Exception
as e:
74 print (
'Problem opening database',e)
78 cool_folder=db.getFolder(folder)
86 myiov=(run_number<<32)
88 objs=cool_folder.browseObjects(myiov,myiov, cool.ChannelSelection.all(), cool_tag)
90 iov=(obj.since(), obj.until())
97 graphs[chamber]=TGraphErrors(n_points)
99 if up.stationNameString()==
'XXX':
100 print (
"Invalid station name in ", obj.payload()[
'file'])
102 nm=up.stationNameString() +
"_" +
str(up.stationPhi()) +
"_" +
str(up.stationEta())
105 for i
in range(0, n_points):
112 graphs[chamber].SetPoint(i, r, t)
113 graphs[chamber].SetPointError(i, 0, s)
114 splines[chamber]=TSpline3(
"sp_" + nm, graphs[chamber])
115 if gDirectory.IsWritable():
116 splines[chamber].Write(
"sp_" + nm)
117 graphs[chamber].Write(
"gr_" + nm)
119 return graphs, splines, iovs
125 db=AtlCoolLib.indirectOpen(db_string, readOnly=
True, debug=
True)
126 except Exception
as e:
127 print (
'Problem opening database',e)
131 cool_folder=db.getFolder(folder)
133 myiov=(run_number<<32)
137 objs=cool_folder.browseObjects(myiov,myiov, cool.ChannelSelection.all(), cool_tag)
142 ch_sp=sp1[0][2:].
split(
"_")
143 ch_id=(ch_sp[0],
int(ch_sp[1]),
int(ch_sp[2]))
146 t0_items=sp[1].
split(
",")
147 t0_values[ch_id] = []
149 for i
in range(0, ntubes):
150 t0=
float(t0_items[3*i+0])
152 t0+= GasmonDriftTimeOffsetT0
153 t0_values[ch_id].
append((t0,
int(t0_items[3*i+1]),
float(t0_items[3*i+2])))
159 dbSvc=cool.DatabaseSvcFactory.databaseService()
161 db=dbSvc.openDatabase(db_string)
162 except Exception
as e:
163 print (
'Problem opening database',e)
167 cool_folder=db.getFolder(folder)
168 for x
in cool_folder.listTags():