ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetCalibAlgs
SCT_CalibAlgs
share
CheckDb.py
Go to the documentation of this file.
1
2
8
9
import
os,sys,time,glob,fnmatch, string, datetime
10
from
time
import
gmtime, strftime
11
import
urllib,urllib2
12
from
Ft.Xml.Domlette
import
NonvalidatingReader
13
14
17
def
StartDate
(period):
18
19
start_date = (datetime.date.today() - datetime.timedelta(period)).isoformat()
20
return
start_date
21
22
23
def
ConvertedRunNumber
(rNumber):
24
RNumber = long(rNumber)
25
return
RNumber << 32
26
27
28
def
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
63
64
def
channelValueQuery
(server, schema, dbname, folder, iov0, iov1, tag, channels):
65
timespan= str(iov0) +
'-'
+ str(iov1)
66
prefix=
'http://coolcherrypy.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
77
78
def
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
print
(
"..checking for runs..."
)
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
99
100
def
GetNumberOfNoisyModulesInDB
(array, server, schema, dbname, folder, tag, channels):
101
Array_numNoisyModules=[]
102
if
(len(array)==0
or
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
119
120
def
GetNumberOfNoisyStripsInDB
(array, server, schema, dbname, folder, tag, channels):
121
Array_numNoisyStrips = []
122
if
(len(array)==0
or
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
156
157
def
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
167
168
def
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
175
print
void print(char *figname, TCanvas *c1)
Definition
TRTCalib_StrawStatusPlots.cxx:26
CheckDb.GetNumberOfNoisyModulesInDB
GetNumberOfNoisyModulesInDB(array, server, schema, dbname, folder, tag, channels)
Definition
CheckDb.py:100
CheckDb.RunListInDBTotal
RunListInDBTotal(start_date, end_date, file_name, string_pattern)
Definition
CheckDb.py:28
CheckDb.GetNoisyModulesAverageInDB
GetNoisyModulesAverageInDB(array)
Definition
CheckDb.py:157
CheckDb.StartDate
StartDate(period)
--> Definitions:
Definition
CheckDb.py:17
CheckDb.ConvertedRunNumber
ConvertedRunNumber(rNumber)
Definition
CheckDb.py:23
CheckDb.DisplayInfoForRunsInDB
DisplayInfoForRunsInDB(runs, noisy_mods, noisy_strips)
Definition
CheckDb.py:168
CheckDb.channelValueQuery
channelValueQuery(server, schema, dbname, folder, iov0, iov1, tag, channels)
Definition
CheckDb.py:64
CheckDb.RunListInDB
RunListInDB(array, server, schema, dbname, folder, tag, channels)
Definition
CheckDb.py:78
CheckDb.GetNumberOfNoisyStripsInDB
GetNumberOfNoisyStripsInDB(array, server, schema, dbname, folder, tag, channels)
Definition
CheckDb.py:120
Generated on
for ATLAS Offline Software by
1.17.0