ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DataQuality
GoodRunsLists
python
GoodRunsListConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2
3
4
class
GoodRunsListConfig
:
5
def
__init__
(self):
6
# -- run cmd options
7
self.
name
=
"GoodRunsListConfig"
# -- name set inside GRLB xml output file
8
self.
querytool
=
"AtlRunQuery.py"
# -- run query tool
9
self.
listname
=
"default.xml"
# -- name of GRL xml output file
10
self.
prefix
=
""
# -- prefix for GRL file name
11
self.
show
=
""
# -- show arguments for atlrunquery
12
self.
dqfolder
=
"DEFECTS"
# -- DQ folder, eg. LBSUMM, SHIFTOFL. Default by AtlRunQuery
13
14
# -- query selections in AtlRunQuery.py
15
# -- see Database/CoolRunQuery/python/AtlRunQueryParser.py for full list
16
self.
querydict
= {}
17
self.
querydict
[
'partition'
] = [
"ATLAS"
]
# -- DAQ partition
18
self.
querydict
[
'ptag'
] = [
"data09*"
]
# -- projecttag: collection filename prefix
19
#self.querydict['events'] = ["1000+"] # -- number of events per run
20
self.
querydict
[
'run'
] = [
"140541+"
]
# -- run number selection range
21
#self.querydict['duration'] = ["60s+"] # -- duration of run selection
22
self.
querydict
[
'time'
] = []
# -- time of run selection, eg.
23
self.
querydict
[
'detector'
] = []
#['all'] # -- subdetectors turned on, eg.
24
self.
querydict
[
'streams'
] = []
# -- trigger output streams, eg.
25
self.
querydict
[
'mag'
] = []
#["solenoidon","toroidon"] # -- magnetic field configuration
26
self.
querydict
[
'dq'
] = []
# -- selection of data quality flags
27
self.
querydict
[
'smk'
] = []
# -- super master key, eg.
28
self.
querydict
[
'trigger'
] = []
# -- select specific triggers available, eg.
29
self.
querydict
[
'release'
] = []
# -- release used, eg: '15.1.*'
30
#self.querydict['ctag'] = ['DetStatusLBSUMM-pass1'] # -- COOL conditions tag to use, eg: 'COMCOND-HLTC-001-00'. Default = head.
31
self.
querydict
[
'db'
] = [
'DATA'
]
# -- DATA or MC
32
self.
dqignore
= []
# DQ defects to ignore. These will be patched into the dq querydict
33
34
35
def
Summary
(self):
36
print
(
'Name : %s'
% (self.
name
))
37
print
(
'Tool : %s'
% (self.
querytool
))
38
print
(
'File : %s'
% (self.
listname
))
39
print
(
'Show : %s'
% (self.
show
))
40
print
(
'DQ folder : %s'
% (self.
dqfolder
))
41
print
(
'Query :'
)
42
print
(self.
getsearchquery
())
43
return
44
45
46
def
getsearchquery
(self):
47
cmd =
"find "
48
49
for
key
in
self.
querydict
.keys():
50
arr = self.
querydict
[key][:]
51
if
key ==
'dq'
:
52
if
len(self.
dqignore
) > 0:
53
toexclude =
'\\'
+
'\\'
.join(self.
dqignore
)
54
else
:
55
toexclude =
''
56
print
(
'to exclude'
, toexclude)
57
for
i, q
in
enumerate(arr):
58
qsplit = q.split()
59
if
len(qsplit) > 0:
60
arr[i] =
' '
.join([qsplit[0] + toexclude] + qsplit[1:])
61
for
selection
in
arr:
62
if
len(selection)>0:
63
cmd +=
"%s %s and "
% (key,selection)
64
cmd = cmd[:-4]
65
66
if
len(self.
show
)>0:
67
cmd +=
" %s"
% (self.
show
)
68
else
: cmd +=
" / show run and events / nodef"
69
70
xmlstring =
'xmlfile %s:%s'
% (self.
listname
,self.
name
)
71
cmd +=
" , %s"
% (xmlstring)
72
return
cmd
73
74
75
def
getparseddqflags
(self):
76
from
CoolRunQuery.AtlRunQueryLib
import
DQSelector,AtlRunQueryOptions
77
from
CoolRunQuery.AtlRunQueryParser
import
ArgumentParser
78
79
80
query = self.
getsearchquery
()
81
ap = ArgumentParser()
82
atlqueryarg = self.
querytool
+
" "
+ ap.ParseArgument( query )
83
(options, args) = AtlRunQueryOptions().
parse
(atlqueryarg)
84
85
86
selector = DQSelector(name =
'dataquality'
, dq = options.dqchannels)
87
dqfolder = self.
getdqfolder
()
88
89
funcArr = []
90
dqconfig = selector.selectors[dqfolder]
91
for
flag
in
dqconfig.flags:
92
fncName = dqconfig.flagInterpreter[flag][
'passFncName'
]
93
fncName = fncName.replace(
"\'"
,
""
)
94
funcArr.append(fncName)
95
#funcArr = selector.selectors[dqfolder].passFncName
96
#for i in range(len(funcArr)): funcArr[i] = funcArr[i].replace("\'","")
97
98
99
dqchannels = options.dqchannels
100
for
i
in
range(len(dqchannels)):
101
dqArr = dqchannels[i].
split
()
102
dqArr[1] = funcArr[i]
103
dqchannels[i] =
' '
.join(dqArr)
104
105
return
dqchannels
106
107
108
def
getdqfolder
(self):
109
return
self.
dqfolder
110
111
def
setdqfolder
(self,dqfolder=''):
112
if
len(dqfolder)>0: self.
dqfolder
= dqfolder
113
for
idx
in
range( len(self.
querydict
[
'dq'
]) ):
114
dqquery = self.
querydict
[
'dq'
][idx].
strip
()
115
queryArr = dqquery.split()
116
117
if
len(queryArr)==3:
118
ctagArr = queryArr[1].
split
(
'#'
)
119
if
len(ctagArr)==2:
120
queryArr[1] =
'%s#%s'
% (self.
dqfolder
,ctagArr[1])
121
else
: queryArr[1] = self.
dqfolder
122
123
elif
len(queryArr)==2:
124
queryArr.insert(1,self.
dqfolder
)
125
dqquery =
'%s %s %s'
% (queryArr[0],queryArr[1],queryArr[2])
126
self.
querydict
[
'dq'
][idx] = dqquery
127
return
128
129
def
setdqctag
(self,dqctag):
130
if
len(dqctag)==0:
return
131
for
idx
in
range( len(self.
querydict
[
'dq'
]) ):
132
dqquery = self.
querydict
[
'dq'
][idx].
strip
()
133
queryArr = dqquery.split()
134
135
if
len(queryArr)==3:
136
ctagArr = queryArr[1].
split
(
'#'
)
137
queryArr[1] =
'%s#%s'
% (ctagArr[0],dqctag)
138
139
elif
len(queryArr)==2:
140
dqfoldtag =
'%s#%s'
% (self.
dqfolder
,dqctag)
141
queryArr.insert(1,dqfoldtag)
142
dqquery =
'%s %s %s'
% (queryArr[0],queryArr[1],queryArr[2])
143
self.
querydict
[
'dq'
][idx] = dqquery
144
return
145
146
def
setctag
(self,ctag):
147
if
len(ctag)>0: self.
querydict
[
'ctag'
] = ctag
148
149
def
getctag
(self):
150
return
self.
querydict
.
get
(
'ctag'
,
''
)
151
152
def
setPrefix
(self,newprefix):
153
self.
prefix
= newprefix
154
self.
listname
= self.
prefix
+self.
listname
155
SiliconTech::strip
@ strip
Definition
FPGATrackSimTypes.h:25
python.GoodRunsListConfig.GoodRunsListConfig
Definition
GoodRunsListConfig.py:4
python.GoodRunsListConfig.GoodRunsListConfig.getdqfolder
getdqfolder(self)
Definition
GoodRunsListConfig.py:108
python.GoodRunsListConfig.GoodRunsListConfig.listname
str listname
Definition
GoodRunsListConfig.py:9
python.GoodRunsListConfig.GoodRunsListConfig.dqfolder
str dqfolder
Definition
GoodRunsListConfig.py:12
python.GoodRunsListConfig.GoodRunsListConfig.Summary
Summary(self)
Definition
GoodRunsListConfig.py:35
python.GoodRunsListConfig.GoodRunsListConfig.show
str show
show arguments
Definition
GoodRunsListConfig.py:11
python.GoodRunsListConfig.GoodRunsListConfig.dqignore
list dqignore
Definition
GoodRunsListConfig.py:32
python.GoodRunsListConfig.GoodRunsListConfig.__init__
__init__(self)
Definition
GoodRunsListConfig.py:5
python.GoodRunsListConfig.GoodRunsListConfig.getparseddqflags
getparseddqflags(self)
Definition
GoodRunsListConfig.py:75
python.GoodRunsListConfig.GoodRunsListConfig.querydict
dict querydict
Definition
GoodRunsListConfig.py:16
python.GoodRunsListConfig.GoodRunsListConfig.setPrefix
setPrefix(self, newprefix)
Definition
GoodRunsListConfig.py:152
python.GoodRunsListConfig.GoodRunsListConfig.setctag
setctag(self, ctag)
Definition
GoodRunsListConfig.py:146
python.GoodRunsListConfig.GoodRunsListConfig.setdqfolder
setdqfolder(self, dqfolder='')
Definition
GoodRunsListConfig.py:111
python.GoodRunsListConfig.GoodRunsListConfig.querytool
str querytool
Definition
GoodRunsListConfig.py:8
python.GoodRunsListConfig.GoodRunsListConfig.prefix
str prefix
Definition
GoodRunsListConfig.py:10
python.GoodRunsListConfig.GoodRunsListConfig.getctag
getctag(self)
Definition
GoodRunsListConfig.py:149
python.GoodRunsListConfig.GoodRunsListConfig.name
str name
Definition
GoodRunsListConfig.py:7
python.GoodRunsListConfig.GoodRunsListConfig.getsearchquery
getsearchquery(self)
Definition
GoodRunsListConfig.py:46
python.GoodRunsListConfig.GoodRunsListConfig.setdqctag
setdqctag(self, dqctag)
Definition
GoodRunsListConfig.py:129
parse
std::map< std::string, std::string, std::less<> > parse(const std::string &list)
Definition
egammaLayerRecalibTool.cxx:1180
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition
hcg.cxx:132
split
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition
hcg.cxx:179
Generated on
for ATLAS Offline Software by
1.17.0