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

Classes

class  SCTCalibExecutor

Functions

 getDsFileName (file, input=False)
 checkFileList (filelist)
 updateLastRun (RunNumber)
 main ()
 getTransform ()
 addSCTCalibArgs (parser)
 addOutputArgs (parser, dict)

Variables

dict dsDict = {'input': [] , 'output' : []}
int RunNumber = -1
int EventNumber = -1
str SvcClass = ''
str Stream = ''
int NumberOfEvents = 0

Detailed Description

The SCT 24h Calibration Loop.
This transformation will run the SCT 24 hours calibration loop.
Mandatory values as to be given for the input ntuples 
as well as the output HitMaps and output stream file.

Function Documentation

◆ addOutputArgs()

sct_calib_tf.addOutputArgs ( parser,
dict )

Definition at line 161 of file sct_calib_tf.py.

161def addOutputArgs(parser,dict):
162
163 if 'part' not in dict:
164 checkPart = ['doNoisyStrip']
165 else:
166 checkPart = dict['part']._value
167
168 if 'splitHitMap' not in dict:
169 checkSplit= 0
170 else:
171 checkSplit = dict['splitHitMap']._value
172
173 if 'prefix' not in dict:
174 checkPrefix=''
175 else:
176 checkPrefix=dict['prefix']._value
177
178 # # # add outputfiles
179 if checkPrefix != '':
180 checkPrefix += '.'
181
182
183 if 'doHV' not in checkPart and checkSplit != 1:
184 parser.add_argument('--outputCOOL', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
185 help = 'COOL DB',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'mycool.db'],runarg=True))
186
187 #NOISY STRIPS OUTPUT FILES
188 if 'doNoisyStrip' in checkPart and checkSplit == 1:
189
190 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
191 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
192 parser.add_argument('--outputLBFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
193 help = 'LB output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTLB.root'],runarg=True))
194
195 if 'doNoisyStrip' in checkPart and checkSplit != 1:
196
197 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
198 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
199 parser.add_argument('--outputLBFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
200 help = 'LB output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTLB.root'],runarg=True))
201 parser.add_argument('--outputBSSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
202 help = 'Bad Strips summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'BadStripsSummaryFile.xml'],runarg=True))
203 parser.add_argument('--outputBSAllFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
204 help = 'Bad Strips All file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'BadStripsAllFile.xml'],runarg=True))
205 parser.add_argument('--outputBSNewFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
206 help = 'Bad Strips New file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'BadStripsNewFile.xml'],runarg=True))
207
208 if 'doHV' in checkPart:
209 parser.add_argument('--outputBadModulesFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
210 help = 'Bad Modules file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'BadModulesFile.xml'],runarg=True))
211
212 #DEAD CHIP OUTPUT FILES
213 if 'doDeadChip' in checkPart and checkSplit == 1:
214 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
215 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
216 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
217 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
218
219 if 'doDeadChip' in checkPart and checkSplit != 1:
220 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
221 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
222 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
223 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
224 parser.add_argument('--outputDeadChipFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
225 help = 'Dead Chip file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'DeadChipsFile.xml'],runarg=True))
226 parser.add_argument('--outputDeadSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
227 help = 'Dead Chip Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'DeadSummaryFile.xml'],runarg=True))
228
229 #DEAD STRIP OUTPUT FILES
230 if 'doDeadStrip' in checkPart and checkSplit == 1:
231 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
232 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
233 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
234 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
235
236 if 'doDeadStrip' in checkPart and checkSplit != 1:
237 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
238 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
239 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
240 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
241 parser.add_argument('--outputDeadStripFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
242 help = 'Dead Strip file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'DeadStripsFile.xml'],runarg=True))
243 parser.add_argument('--outputDeadSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
244 help = 'Dead Strip Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'DeadSummaryFile.xml'],runarg=True))
245
246 #QUIET CHIP OUTPUT FILES
247 if 'doQuietChip' in checkPart and checkSplit == 1:
248 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
249 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
250 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
251 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
252
253 if 'doQuietChip' in checkPart and checkSplit != 1:
254 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
255 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
256 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
257 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
258 parser.add_argument('--outputDeadChipFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
259 help = 'Dead Chip file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'QuietChipsFile.xml'],runarg=True))
260 parser.add_argument('--outputDeadSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
261 help = 'Dead Chip Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'QuietSummaryFile.xml'],runarg=True))
262
263 #QUIET STRIP OUTPUT FILES
264 if 'doQuietStrip' in checkPart and checkSplit == 1:
265 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
266 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
267 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
268 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
269
270 if 'doQuietStrip' in checkPart and checkSplit != 1:
271 parser.add_argument('--outputHITMapFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
272 help = 'HitMap output file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTHitMaps.root'],runarg=True))
273 parser.add_argument('--outputBSErrorsFile', type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, runarg=True,io='output'),
274 help = 'BS Errors file',group='Calibration',default=trfArgClasses.argNTUPFile([checkPrefix+'SCTBSErrors.root'],runarg=True))
275 parser.add_argument('--outputDeadStripFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
276 help = 'Dead Strip file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'QuietStripsFile.xml'],runarg=True))
277 parser.add_argument('--outputDeadSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
278 help = 'Dead Strip Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'QuietSummaryFile.xml'],runarg=True))
279
280 #NOISE OCCUPANCY OUTPUT FILES
281 if 'doNoiseOccupancy' in checkPart:
282 parser.add_argument('--outputNOFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
283 help = 'Noise Occupancy file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'NoiseOccupancyFile.xml'],runarg=True))
284 parser.add_argument('--outputNOSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
285 help = 'Noise Occupancy Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'NoiseOccupancySummaryFile.xml'],runarg=True))
286
287 #LORENTZ ANGLE OUTPUT FILES
288 if 'doLorentzAngle' in checkPart:
289 parser.add_argument('--outputLAFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
290 help = 'Lorentz Angle file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'LorentzAngleFile.xml'],runarg=True))
291 parser.add_argument('--outputLASummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
292 help = 'Lorentz Angle Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'LorentzAngleSummaryFile.xml'],runarg=True))
293
294 #RAW OCCUPANCY OUTPUT FILES
295 if 'doRawOccupancy' in checkPart:
296 parser.add_argument('--outputROSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
297 help = 'Raw Occupancy Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'RawOccupancySummaryFile.xml'],runarg=True))
298
299 #EFFICIENCY OUTPUT FILES
300 if 'doEfficiency' in checkPart:
301 parser.add_argument('--outputEffModuleFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
302 help = 'Efficiency file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'EfficiencyModuleSummary.xml'],runarg=True))
303 parser.add_argument('--outputEffSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
304 help = 'Efficiency Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'EfficiencySummaryFile.xml'],runarg=True))
305
306 #BS ERRORS OUTPUT FILES
307 if 'doBSErrorDB' in checkPart:
308 parser.add_argument('--outputBSModuleFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
309 help = 'BS Errors Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'BSErrorModuleSummary.xml'],runarg=True))
310 parser.add_argument('--outputBSSummaryFile', type=trfArgClasses.argFactory(trfArgClasses.argFile, runarg=True,io='output'),
311 help = 'BS Errors Summary file',group='Calibration',default=trfArgClasses.argFile([checkPrefix+'BSErrorSummaryFile.xml'],runarg=True))
312

◆ addSCTCalibArgs()

sct_calib_tf.addSCTCalibArgs ( parser)

Definition at line 142 of file sct_calib_tf.py.

142def addSCTCalibArgs(parser):
143
144 parser.defineArgGroup('Calibration', 'Specific options related to the calibration configuration')
145
146 parser.add_argument('--input',
147 help = 'List of CSV input files',group='Calibration')
148 parser.add_argument('--prefix', type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True),
149 help = 'Prefix for output files',group='Calibration')
150 parser.add_argument('--part', type=trfArgClasses.argFactory(trfArgClasses.argList, runarg=True),
151 help = 'List of calibration algorithms to be run',group='Calibration')
152 parser.add_argument('--doRunSelector', type=trfArgClasses.argFactory(trfArgClasses.argBool, runarg=True),
153 help = 'Specifies if runSelector.py is executed',group='Calibration')
154 parser.add_argument('--doRunInfo', type=trfArgClasses.argFactory(trfArgClasses.argBool, runarg=True),
155 help = 'Specifies if runInfo.py is executed',group='Calibration')
156 parser.add_argument('--splitHitMap', type=trfArgClasses.argFactory(trfArgClasses.argInt,runarg=True),
157 help = 'Split task or not',group='Calibration')
158 parser.add_argument('--forceRefRunNumber', type=trfArgClasses.argFactory(trfArgClasses.argBool, runarg=True),
159 help = 'Force reference run to current run number when checking information uploaded to COOL for previous runs',group='Calibration')
160

◆ checkFileList()

sct_calib_tf.checkFileList ( filelist)
Converts list of files of type ds#filename into a list of filenames, meanwhile
setting ds value. If check is true it also checks the existence of the files.

Definition at line 78 of file sct_calib_tf.py.

78def checkFileList(filelist):
79 """Converts list of files of type ds#filename into a list of filenames, meanwhile
80 setting ds value. If check is true it also checks the existence of the files."""
81 # First check if type is list
82
83 if not isinstance(filelist,list):
84 filelist=[filelist]
85
86 for i,ifile in enumerate(filelist):
87 # extract ds,runnumber and svcclass
88 filename=getDsFileName(ifile)
89 # pass file check if file is on castor
90 if filename.find('/castor',0,8) != -1:
91 pass
92 elif not fileutil.exists(filename):
93 found = fileutil.exists_suffix_number(filename + '.')
94 if not found:
95
96 errMsg = filename+' not found'
97 raise trfExceptions.TransformValidationException(trfExit.nameToCode('TRF_INPUT_FILE_VALIDATION_FAIL'), errMsg)
98
99 if found != filename:
100
101 filename = found
102 # correct filename in list
103 filelist[i]=filename
104 return filelist
105

◆ getDsFileName()

sct_calib_tf.getDsFileName ( file,
input = False )
Returns dataset and logical file name for files of type ds##file or ds#dsfile.

Definition at line 35 of file sct_calib_tf.py.

35def getDsFileName(file,input=False):
36 """Returns dataset and logical file name for files of type ds##file or ds#dsfile."""
37 global RunNumber
38 global SvcClass
39 global Stream
40 global NumberOfEvents
41 if isinstance(file,dict):
42# name=file['pfn']
43 name=file['lfn']
44 ds=file['dsn']
45# SvcClass=file['svcclass']
46 SvcClass=file.get('svcclass','')
47 if 'events' in file:
48 NumberOfEvents+=file['events']
49 else:
50 if file.find('##')!=-1:
51 ds=file.split('##')[0]
52 name=file.replace('##','')
53 elif file.find('#')!=-1:
54 ds=file.split('#')[0]
55 name=file.split('#')[1]
56 else:
57 if file.find('/')!=-1:
58 fileparts=file.split('/')
59 ds=fileparts[len(fileparts)-1]
60 else:
61 ds=file
62 name=file
63
64 if '/eos/atlas/' in name:
65 name='root://eosatlas.cern.ch/'+name
66
67 dsDict['input'].append({'file' : name, 'dataset' : ds})
68 if RunNumber == -1:
69 nb = ds.count('.')
70 if nb >= 4:
71 RunNumber=int(ds.split('.')[1])
72 longStream=ds.split('.')[0]
73 #Stream is either cos or xxxeV energy
74 Stream=longStream.split('_')[1]
75
76 return name
77

◆ getTransform()

sct_calib_tf.getTransform ( )

Definition at line 130 of file sct_calib_tf.py.

130def getTransform():
131
132 exeSet = set()
133 exeSet.add(SCTCalibExecutor('SCT_CalibAlgs.SCTCalib_Skeleton'))
134
135 trf = transform(executor=exeSet)
136
137 addAthenaArguments(trf.parser)
138 addSCTCalibArgs(trf.parser)
139
140 return trf
141
STL class.

◆ main()

sct_calib_tf.main ( )

Definition at line 115 of file sct_calib_tf.py.

115def main():
116
117 msg.info("This is %s", sys.argv[0])
118 trf = getTransform()
119 trf.parseCmdLineArgs(sys.argv[1:])
120
121 addOutputArgs(trf.parser, trf._argdict)
122 trf.parseCmdLineArgs(sys.argv[1:])
123
124 trf.execute()
125 trf.generateReport()
126
127 msg.info("%s stopped at %s, trf exit code %d", sys.argv[0], time.asctime(), trf.exitCode)
128 sys.exit(trf.exitCode)
129
int main()
Definition hello.cxx:18

◆ updateLastRun()

sct_calib_tf.updateLastRun ( RunNumber)

Definition at line 106 of file sct_calib_tf.py.

106def updateLastRun(RunNumber):
107
108 if os.path.exists('/afs/cern.ch/work/s/sctcalib/lastRun'):
109 f = open('/afs/cern.ch/work/s/sctcalib/lastRun','w')
110 f.write(str(RunNumber)+' ')
111 f.close()
112
113@stdTrfExceptionHandler
114@sigUsrStackTrace

Variable Documentation

◆ dsDict

dict sct_calib_tf.dsDict = {'input': [] , 'output' : []}

Definition at line 27 of file sct_calib_tf.py.

◆ EventNumber

int sct_calib_tf.EventNumber = -1

Definition at line 29 of file sct_calib_tf.py.

◆ NumberOfEvents

int sct_calib_tf.NumberOfEvents = 0

Definition at line 32 of file sct_calib_tf.py.

◆ RunNumber

int sct_calib_tf.RunNumber = -1

Definition at line 28 of file sct_calib_tf.py.

◆ Stream

str sct_calib_tf.Stream = ''

Definition at line 31 of file sct_calib_tf.py.

◆ SvcClass

str sct_calib_tf.SvcClass = ''

Definition at line 30 of file sct_calib_tf.py.