ATLAS Offline Software
Loading...
Searching...
No Matches
ReadCool Namespace Reference

Functions

 StartDate (period)
 --> Definitions:
 ConvertedRunNumber (rNumber)
 RunListInDBTotal (start_date, end_date, file_name, string_pattern)
 channelValueQuery (server, schema, dbname, folder, iov0, iov1, tag, channels)
 RunListInDB (array, server, schema, dbname, folder, tag, channels)
 GetNumberOfNoisyModulesInDB (array, server, schema, dbname, folder, tag, channels)
 GetNumberOfNoisyStripsInDB (array, server, schema, dbname, folder, tag, channels)
 GetNoisyModulesAverageInDB (array)
 DisplayInfoForRunsInDB (runs, noisy_mods, noisy_strips)
 UnpackData (data)
 iov_keygen (iov)
 DumpFolderSummary (db_string, folder, tag, run=None)
 ReadRtCool (db_string, folder, tag, run_number)
 ReadT0Cool (db_string, folder, tag, run_number)
 GetFolderTag (db_string, folder)

Variables

 argv

Function Documentation

◆ channelValueQuery()

ReadCool.channelValueQuery ( server,
schema,
dbname,
folder,
iov0,
iov1,
tag,
channels )

Definition at line 64 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

64def channelValueQuery(server, schema, dbname, folder, iov0, iov1, tag, channels):
65 timespan= str(iov0) + '-' + str(iov1)
66 prefix='http://voatlas11.cern.ch:8080/cooldb/'
67 d = '/'
68 url = prefix+server+d+schema+d+dbname+folder+'/timespan/'+timespan+'/tag/'+tag+'/channels/'+channels
69 httpHeaders={'Accept':'text/xml'}
70 textData=None
71 # print(url)
72 request=urllib2.Request(url,textData, httpHeaders)
73 u=urllib2.urlopen(request)
74 xmlDocString = u.read()
75 return xmlDocString
76

◆ ConvertedRunNumber()

ReadCool.ConvertedRunNumber ( rNumber)

Definition at line 23 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

23def ConvertedRunNumber(rNumber):
24 RNumber = long(rNumber)
25 return RNumber << 32
26

◆ DisplayInfoForRunsInDB()

ReadCool.DisplayInfoForRunsInDB ( runs,
noisy_mods,
noisy_strips )

Definition at line 168 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

168def DisplayInfoForRunsInDB(runs, noisy_mods, noisy_strips):
169 if (len(runs) != 0):
170 for i in range(len(runs)):
171 print("Run: ",runs[i], " --> Num. noisy modules: ", noisy_mods[i], " --> Num. noisy channels: ", noisy_strips[i])
172 else:
173 print("--> No information found.")
174
void print(char *figname, TCanvas *c1)

◆ DumpFolderSummary()

ReadCool.DumpFolderSummary ( db_string,
folder,
tag,
run = None )

Definition at line 30 of file MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py.

30def DumpFolderSummary(db_string, folder, tag, run=None):
31
32 try:
33 db=AtlCoolLib.indirectOpen(db_string, readOnly=True, debug=True)
34 except Exception as e:
35 print ('Problem opening database',e)
36 sys.exit(-1)
37
38#get folder and tag
39 cool_folder=db.getFolder(folder)
40 cool_tag=ResolveTag(cool_folder, tag)
41
42 counters={}
43 if run:
44 objs=cool_folder.browseObjects((run<<32), ((run+1)<<32), cool.ChannelSelection.all(), cool_tag)
45 else:
46 objs=cool_folder.browseObjects(0, (999999<<32), cool.ChannelSelection.all(), cool_tag)
47 for obj in objs:
48 file_col=obj.payload()['file']
49 file_items=re.split('[A-Z,a-z]*', file_col)
50 site="default"
51 head_id=-1
52 if len(file_items)==2:
53 try:
54 head_id = int(file_items[1])
55 site = re.sub("[0-9]", "", file_col)
56 except ValueError:
57 site=file_col
58 ts="NOTS"
59 if TimeSlewingApplied(obj):
60 ts="TS"
61 ident=(obj.since()>>32, obj.until()>>32, site, head_id, ts)
62 if ident not in counters:
63 counters[ident] = 0
64 counters[ident] +=1
65 for ident in sorted(counters.keys(), key=iov_keygen):
66 print ("[", ident[0], ",", ident[1], "[", ident[2], ident[3], ident[4], ":" , counters[ident])
67
68

◆ GetFolderTag()

ReadCool.GetFolderTag ( db_string,
folder )

Definition at line 158 of file MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py.

158def GetFolderTag(db_string, folder):
159 dbSvc=cool.DatabaseSvcFactory.databaseService()
160 try:
161 db=dbSvc.openDatabase(db_string)
162 except Exception as e:
163 print ('Problem opening database',e)
164 sys.exit(-1)
165
166#get folder and tag
167 cool_folder=db.getFolder(folder)
168 for x in cool_folder.listTags():
169 return x
170

◆ GetNoisyModulesAverageInDB()

ReadCool.GetNoisyModulesAverageInDB ( array)

Definition at line 157 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

157def GetNoisyModulesAverageInDB(array):
158 sum=0
159 if (len(array) != 0):
160 for j in range(len(array)):
161 sum=sum+array[j]
162 NoisyModulesAverage = sum/len(array)
163 else:
164 NoisyModulesAverage = -999
165 return NoisyModulesAverage
166

◆ GetNumberOfNoisyModulesInDB()

ReadCool.GetNumberOfNoisyModulesInDB ( array,
server,
schema,
dbname,
folder,
tag,
channels )

Definition at line 100 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

100def GetNumberOfNoisyModulesInDB(array, server, schema, dbname, folder, tag, channels):
101 Array_numNoisyModules=[]
102 if (array[0] != -999):
103 for i in range(len(array)):
104 runNumber=array[i]
105 iovSince=ConvertedRunNumber(runNumber)
106 iovUntil=ConvertedRunNumber(runNumber+1)-1
107
108 derived_string=channelValueQuery(server, schema, dbname, folder, iovSince, iovUntil, tag, channels)
109
110 derived=NonvalidatingReader.parseString(derived_string,uri="dummy")
111 numNoisyModules=derived.xpath(u'count(//channel)')
112 if numNoisyModules !=0.0:
113 Array_numNoisyModules.append(numNoisyModules)
114 else:
115 Array_numNoisyModules.append(-999)
116
117 return Array_numNoisyModules
118

◆ GetNumberOfNoisyStripsInDB()

ReadCool.GetNumberOfNoisyStripsInDB ( array,
server,
schema,
dbname,
folder,
tag,
channels )

Definition at line 120 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

120def GetNumberOfNoisyStripsInDB(array, server, schema, dbname, folder, tag, channels):
121 Array_numNoisyStrips = []
122 if (array[0] != -999):
123 for i in range(len(array)):
124 runNumber=array[i]
125 iovSince=ConvertedRunNumber(runNumber)
126 iovUntil=ConvertedRunNumber(runNumber+1)-1
127
128 derived_string=channelValueQuery(server, schema, dbname, folder, iovSince, iovUntil, tag, channels)
129
130 derived=NonvalidatingReader.parseString(derived_string,uri="dummy")
131 numNoisyModules=derived.xpath(u'count(//channel)')
132 if numNoisyModules !=0.0:
133
134 allDefectStripsList=(derived.xpath(u"//channel/value[@name='DefectList']"))
135 numNoisyStrips=0
136 numNoisyStripsAdds=0
137
138 for strips in allDefectStripsList:
139 words=strips.firstChild.data.split()
140 for j in range(len(words)):
141 jk=words[j]
142 if jk.find("-")>=0:
143 sep=jk.replace ( '-', ' ' )
144 sep1=sep.split()
145 numNoisyStripsAdds=numNoisyStripsAdds+int(sep1[1])-int(sep1[0])
146
147 numNoisyStrips=numNoisyStrips+len(strips.firstChild.data.split())
148
149 Array_numNoisyStrips.append(numNoisyStrips + numNoisyStripsAdds)
150
151 else:
152 Array_numNoisyStrips.append(-999)
153
154 return Array_numNoisyStrips
155

◆ iov_keygen()

ReadCool.iov_keygen ( iov)

Definition at line 27 of file MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py.

27def iov_keygen(iov):
28 return iov[0]*10000000 + iov[1]
29

◆ ReadRtCool()

ReadCool.ReadRtCool ( db_string,
folder,
tag,
run_number )

Definition at line 69 of file MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py.

69def ReadRtCool(db_string, folder, tag, run_number):
70
71 try:
72 db=AtlCoolLib.indirectOpen(db_string, readOnly=True, debug=True)
73 except Exception as e:
74 print ('Problem opening database',e)
75 sys.exit(-1)
76
77#get folder and tag
78 cool_folder=db.getFolder(folder)
79 cool_tag=ResolveTag(cool_folder, tag)
80
81#data to be filled
82 graphs={}
83 splines={}
84 iovs=set([])
85
86 myiov=(run_number<<32)
87
88 objs=cool_folder.browseObjects(myiov,myiov, cool.ChannelSelection.all(), cool_tag)
89 for obj in objs:
90 iov=(obj.since(), obj.until())
91 iovs.add(iov)
92 sp=UnpackData(obj.payload()['data']).split('\n')
93 sp1=sp[0].split(',')
94 chamber=int(sp1[0])
95 n_points=int(sp1[1])
96 sp2=sp[1].split(',')
97 graphs[chamber]=TGraphErrors(n_points)
98 up=MuonFixedIdUnpack(chamber)
99 if up.stationNameString()=='XXX':
100 print ("Invalid station name in ", obj.payload()['file'])
101 sys.exit(1)
102 nm=up.stationNameString() + "_" + str(up.stationPhi()) + "_" + str(up.stationEta())
103# print (nm)
104 ts_applied=TimeSlewingApplied(obj)
105 for i in range(0, n_points):
106 r=float(sp2[3*i])
107 t=float(sp2[3*i+1])
108 s=float(sp2[3*i+2])
109 if not ts_applied:
110 t_new=NoTs2Ts(r, t)
111 t=t_new
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)
118
119 return graphs, splines, iovs
120
121
STL class.
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

◆ ReadT0Cool()

ReadCool.ReadT0Cool ( db_string,
folder,
tag,
run_number )

Definition at line 122 of file MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py.

122def ReadT0Cool(db_string, folder, tag, run_number):
123
124 try:
125 db=AtlCoolLib.indirectOpen(db_string, readOnly=True, debug=True)
126 except Exception as e:
127 print ('Problem opening database',e)
128 sys.exit(-1)
129
130#get folder and tag
131 cool_folder=db.getFolder(folder)
132 cool_tag=ResolveTag(cool_folder, tag)
133 myiov=(run_number<<32)
134#data
135 t0_values={}
136
137 objs=cool_folder.browseObjects(myiov,myiov, cool.ChannelSelection.all(), cool_tag)
138
139 for obj in objs:
140 sp=UnpackData(obj.payload()['data']).split('\n')
141 sp1=sp[0].split(',')
142 ch_sp=sp1[0][2:].split("_")
143 ch_id=(ch_sp[0], int(ch_sp[1]), int(ch_sp[2]))
144 ntubes=int(sp1[-1])
145
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])
151 if not ts_applied:
152 t0+= GasmonDriftTimeOffsetT0
153 t0_values[ch_id].append((t0, int(t0_items[3*i+1]), float(t0_items[3*i+2])))
154
155 return t0_values
156
157

◆ RunListInDB()

ReadCool.RunListInDB ( array,
server,
schema,
dbname,
folder,
tag,
channels )

Definition at line 78 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

78def RunListInDB(array, server, schema, dbname, folder, tag, channels):
79 Array_runsInDB=[]
80 if (len(array) != 0):
81 for i in range(len(array)):
82 runNumber=array[i]
83 iovSince=ConvertedRunNumber(runNumber)
84 iovUntil=ConvertedRunNumber(runNumber+1)-1
85
86 derived_string=channelValueQuery(server, schema, dbname, folder, iovSince, iovUntil, tag, channels)
87
88 derived=NonvalidatingReader.parseString(derived_string,uri="dummy")
89 numNoisyModules=derived.xpath(u'count(//channel)')
90
91 if numNoisyModules !=0.0:
92 Array_runsInDB.append(runNumber)
93 else:
94 Array_runsInDB.append(-999)
95
96 return Array_runsInDB
97
98

◆ RunListInDBTotal()

ReadCool.RunListInDBTotal ( start_date,
end_date,
file_name,
string_pattern )

Definition at line 28 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

28def RunListInDBTotal(start_date, end_date, file_name, string_pattern):
29 prefix="http://atlas-service-runinformation.web.cern.ch/atlas-service-runinformation/cgi-bin/runnumbers.py?"
30 url=prefix+"start.date="+start_date+"%2012:06:00&end.date="+end_date+"%2012:06:00&format=html"
31 # print(url)
32 request=urllib2.Request(url)
33 u=urllib2.urlopen(request)
34 DocString = u.read()
35
36 DocString_1 = DocString.replace ( '<td>', ' ' )
37 DocString_2 = DocString_1.replace ( '</td>', ' ' )
38 DocString_3 = DocString_2.replace ( '<tr>', ' ' )
39 DocString_4 = DocString_3.replace ( '</tr>', ' ' )
40 DocString_5 = DocString_4.replace ( '<th>Name</th><th>Number</th><th>Start At (UTC)</th><th>Duration</th><th>Partition</th>', ' ' )
41
42
43 f=open(file_name, 'w')
44 f.write(DocString_5)
45 f.close()
46
47 Runs = []
48 if os.path.exists(file_name):
49 f = open(file_name,'r')
50 for line in f.readlines():
51 if line.find(string_pattern)>= 0:
52 ar=string.split(line)
53 Runs.append(int(ar[1]))
54 f.close()
55 else:
56 print("-->ERROR: athena_checkUpload: Can't find input file !")
57
58
59 os.remove(file_name)
60
61 return Runs
62

◆ StartDate()

ReadCool.StartDate ( period)

--> Definitions:

Definition at line 17 of file InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/share/ReadCool.py.

17def StartDate(period):
18
19 start_date = (datetime.date.today() - datetime.timedelta(period)).isoformat()
20 return start_date
21

◆ UnpackData()

ReadCool.UnpackData ( data)

Definition at line 17 of file MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py.

17def UnpackData(data):
18 if type(data)==str:
19 return data
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())
25 return unpacked
26

Variable Documentation

◆ argv