10from MuonCalibDbOperations.MuonCalibConvertTimeSlewing
import TimeSlewingApplied, NoTs2Ts, GasmonDriftTimeOffsetT0
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)
40 cool_tag=ResolveTag(cool_folder, tag)
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)
59 if TimeSlewingApplied(obj):
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)
79 cool_tag=ResolveTag(cool_folder, tag)
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())
104 ts_applied=TimeSlewingApplied(obj)
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)
132 cool_tag=ResolveTag(cool_folder, tag)
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] = []
148 ts_applied=TimeSlewingApplied(obj)
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])))