ATLAS Offline Software
Loading...
Searching...
No Matches
python.RAWtoALL_Skeleton Namespace Reference

Functions

 fromRunArgs (runArgs)

Variables

 jobPropertiesDisallowed

Function Documentation

◆ fromRunArgs()

python.RAWtoALL_Skeleton.fromRunArgs ( runArgs)

Definition at line 14 of file RAWtoALL_Skeleton.py.

14def fromRunArgs(runArgs):
15 from AthenaCommon.Logging import logging
16 log = logging.getLogger('RAWtoALL')
17 log.info('****************** STARTING Reconstruction (RAWtoALL) *****************')
18
19 log.info('**** Transformation run arguments')
20 log.info(str(runArgs))
21
22 import time
23 timeStart = time.time()
24
25 log.info('**** Setting-up configuration flags')
26 from AthenaConfiguration.AllConfigFlags import initConfigFlags
27 flags = initConfigFlags()
28 # set per-event timeout (in ns)
29 flags.Exec.EventTimeOut = 3600*Units.second
30
31 commonRunArgsToFlags(runArgs, flags)
32
33 # Autoconfigure enabled subdetectors
34 if hasattr(runArgs, 'detectors'):
35 detectors = runArgs.detectors
36 else:
37 detectors = None
38
39 # TODO: event service?
40
41
43 inputsDRAW = [prop for prop in dir(runArgs) if prop.startswith('inputDRAW') and prop.endswith('File')]
44 if hasattr(runArgs, 'inputBSFile'):
45 if inputsDRAW:
46 raise RuntimeError('Impossible to run RAWtoALL with input BS and DRAW files (one input type only!)')
47 flags.Input.Files = runArgs.inputBSFile
48 if len(inputsDRAW) == 1:
49 flags.Input.Files = getattr(runArgs, inputsDRAW[0])
50 elif len(inputsDRAW) > 1:
51 raise RuntimeError('Impossible to run RAWtoALL with multiple input DRAW files (viz.: {0})'.format(inputsDRAW))
52
53 # RDO
54 if hasattr(runArgs, 'inputRDOFile'):
55 flags.Input.Files = runArgs.inputRDOFile
56 if hasattr(runArgs, 'inputRDO_TRIGFile'):
57 flags.Input.Files = runArgs.inputRDO_TRIGFile
58 # TODO: trigger setup
59
60 # TODO: EVNT?
61
62
63 if hasattr(runArgs, 'outputESDFile'):
64 flags.Output.ESDFileName = runArgs.outputESDFile
65 log.info("---------- Configured ESD output")
66
67 if hasattr(runArgs, 'outputAODFile'):
68 flags.Output.AODFileName = runArgs.outputAODFile
69 log.info("---------- Configured AOD output")
70
71 if hasattr(runArgs, 'outputHISTFile'):
72 flags.Output.HISTFileName = runArgs.outputHISTFile
73 flags.DQ.doMonitoring = True
74 log.info("---------- Configured HIST output")
75
76 if hasattr(runArgs, 'outputHIST_R2AFile'):
77 flags.Output.HISTFileName = runArgs.outputHIST_R2AFile
78 flags.DQ.doMonitoring = True
79 log.info("---------- Configured HIST_R2A output")
80
81 if hasattr(runArgs, 'outputDAOD_IDTIDEFile'):
82 flagString = 'Output.DAOD_IDTIDEFileName'
83 flags.addFlag(flagString, runArgs.outputDAOD_IDTIDEFile)
84 flags.Output.doWriteDAOD = True
85 flags.addFlag('Output.doWriteDAOD_IDTIDE', True)
86 log.info("---------- Configured DAOD_IDTIDE output")
87
88 if hasattr(runArgs, 'outputDAOD_PIXELVALIDFile'):
89 flagString = 'Output.DAOD_PIXELVALIDFileName'
90 flags.addFlag(flagString, runArgs.outputDAOD_PIXELVALIDFile)
91 flags.Output.doWriteDAOD = True
92 flags.addFlag('Output.doWriteDAOD_PIXELVALID', True)
93 log.info("---------- Configured DAOD_PIXELVALID output")
94
95 if hasattr(runArgs, 'outputDAOD_IDTRKVALIDFile'):
96 flagString = 'Output.DAOD_IDTRKVALIDFileName'
97 flags.addFlag(flagString, runArgs.outputDAOD_IDTRKVALIDFile)
98 flags.Output.doWriteDAOD = True
99 flags.addFlag('Output.doWriteDAOD_IDTRKVALID', True)
100 log.info("---------- Configured DAOD_IDTRKVALID output")
101
102 if hasattr(runArgs, 'outputDAOD_SCTVALIDFile'):
103 flagString = 'Output.DAOD_SCTVALIDFileName'
104 flags.addFlag(flagString, runArgs.outputDAOD_SCTVALIDFile)
105 flags.Output.doWriteDAOD = True
106 flags.addFlag('Output.doWriteDAOD_SCTVALID', True)
107 log.info("---------- Configured DAOD_SCTVALID output")
108
109 if hasattr(runArgs, 'outputDESDM_MCPFile'):
110 flagString = 'Output.DESDM_MCPFileName'
111 flags.addFlag(flagString, runArgs.outputDESDM_MCPFile)
112 flags.Output.doWriteDAOD = True
113 flags.addFlag('Output.doWriteDESDM_MCP', True)
114 log.info("---------- Configured DESDM_MCP output")
115
116 if hasattr(runArgs, 'outputDESDM_EXOTHIPFile'):
117 flagString = 'Output.DESDM_EXOTHIPFileName'
118 flags.addFlag(flagString, runArgs.outputDESDM_EXOTHIPFile)
119 flags.Output.doWriteDAOD = True
120 flags.addFlag('Output.doWriteDESDM_EXOTHIP', True)
121 log.info("---------- Configured DESDM_EXOTHIP output")
122
123 if hasattr(runArgs, 'outputDRAW_ZMUMUFile'):
124 flagString = 'Output.DRAW_ZmumuFileName'
125 flags.addFlag(flagString, runArgs.outputDRAW_ZMUMUFile)
126 flags.Output.doWriteBS = True
127 log.info("---------- Configured DRAW ZMUMU output")
128
129 if hasattr(runArgs, 'outputDRAW_EGZFile'):
130 flagString = 'Output.DRAW_EGZFileName'
131 flags.addFlag(flagString, runArgs.outputDRAW_EGZFile)
132 flags.Output.doWriteBS = True
133 log.info("---------- Configured DRAW_EGZ output")
134
135 if hasattr(runArgs, 'outputDRAW_TAULHFile'):
136 flagString = 'Output.DRAW_TAULHFileName'
137 flags.addFlag(flagString, runArgs.outputDRAW_TAULHFile)
138 flags.Output.doWriteBS = True
139 log.info("---------- Configured DRAW_TAULH output")
140
141 if hasattr(runArgs, 'outputDRAW_JETFile'):
142 flagString = 'Output.DRAW_JETFileName'
143 flags.addFlag(flagString, runArgs.outputDRAW_JETFile)
144 flags.Output.doWriteBS = True
145 log.info("---------- Configured DRAW_JET output")
146
147 if hasattr(runArgs, 'outputDAOD_L1CALO1File'):
148 flagString = 'Output.DAOD_L1CALO1FileName'
149 flags.addFlag(flagString, runArgs.outputDAOD_L1CALO1File)
150 flags.Output.doWriteDAOD = True
151 flags.addFlag('Output.doWriteDAOD_L1CALO1', True)
152 log.info("---------- Configured DAOD_L1CALO1 output")
153
154 if hasattr(runArgs, 'outputDAOD_L1CALO2File'):
155 flagString = 'Output.DAOD_L1CALO2FileName'
156 flags.addFlag(flagString, runArgs.outputDAOD_L1CALO2File)
157 flags.Output.doWriteDAOD = True
158 flags.addFlag('Output.doWriteDAOD_L1CALO2', True)
159 log.info("---------- Configured DAOD_L1CALO2 output")
160
161 if hasattr(runArgs, 'outputDESDM_PHOJETFile'):
162 flagString = 'Output.DESDM_PHOJETFileName'
163 flags.addFlag(flagString, runArgs.outputDESDM_PHOJETFile)
164 flags.Output.doWriteDAOD = True
165 flags.addFlag('Output.doWriteDESDM_PHOJET', True)
166 log.info("---------- Configured DESDM_PHOJET output")
167
168 if hasattr(runArgs, 'outputDESDM_ALLCELLSFile'):
169 streamName = 'DESDM_ALLCELLS'
170 flags.addFlag(f'Output.{streamName}FileName', runArgs.outputDESDM_ALLCELLSFile)
171 flags.addFlag(f'Output.doWrite{streamName}', True)
172 log.info("---------- Configured "+streamName+" output")
173
174 # Reconstruction flags should be parsed after inputs are set
175 from RecJobTransforms.RecoConfigFlags import recoRunArgsToFlags
176 recoRunArgsToFlags(runArgs, flags)
177
178 from AthenaConfiguration.Enums import ProductionStep
179 flags.Common.ProductionStep=ProductionStep.Reconstruction
180
181 # Setup detector flags
182 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
183 setupDetectorFlags(flags, detectors, use_metadata=True, toggle_geometry=True, keep_beampipe=True)
184 # Print reco domain status
185 from RecJobTransforms.RecoConfigFlags import printRecoFlags
186 printRecoFlags(flags)
187
188 # TODO: DESD, DAOD and DRAW
189
190 # outputHIST_R2AFile
191 # outputTAG_COMMFile
192 # outputTXT_FTKIPFile
193 # outputNTUP_MUONCALIBFile
194 # outputTXT_JIVEXMLTGZFile
195
196 # Setup perfmon flags from runargs
197 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
198 setPerfmonFlagsFromRunArgs(flags, runArgs)
199
200 # Pre-include
201 processPreInclude(runArgs, flags)
202
203 # Pre-exec
204 processPreExec(runArgs, flags)
205
206 # To respect --athenaopts
207 flags.fillFromArgs()
208
209 # Disable event timeout if debugging has been requested.
210 if flags.Exec.DebugStage != '':
211 flags.Exec.EventTimeOut = 0
212
213 # Lock flags
214 flags.lock()
215
216 # Main reconstruction steering
217 from RecJobTransforms.RecoSteering import RecoSteering
218 cfg = RecoSteering(flags)
219
220 # Performance DPDs
221 cfg.flagPerfmonDomain('PerfDPD')
222 # IDTIDE
223 for flag in [key for key in flags._flagdict.keys() if ("Output.DAOD_IDTIDEFileName" in key)]:
224 from DerivationFrameworkInDet.IDTIDE import IDTIDECfg
225 cfg.merge(IDTIDECfg(flags))
226 log.info("---------- Configured IDTIDE perfDPD")
227
228 # PixelVALID
229 for flag in [key for key in flags._flagdict.keys() if ("Output.DAOD_PIXELVALIDFileName" in key)]:
230 from DerivationFrameworkInDet.PIXELVALID import PixelVALIDCfg
231 cfg.merge(PixelVALIDCfg(flags))
232 log.info("---------- Configured PixelVALID perfDPD")
233
234 # SCTVALID
235 for flag in [key for key in flags._flagdict.keys() if ("Output.DAOD_SCTVALIDFileName" in key)]:
236 from InDetPrepRawDataToxAOD.SCTVALID import SCTVALIDCfg
237 cfg.merge(SCTVALIDCfg(flags))
238 log.info("---------- Configured SCTVALID perfDPD")
239
240 # IDTRKVALID
241 for flag in [key for key in flags._flagdict.keys() if ("Output.DAOD_IDTRKVALIDFileName" in key)]:
242 from DerivationFrameworkInDet.IDTRKVALID import IDTRKVALIDCfg
243 cfg.merge(IDTRKVALIDCfg(flags))
244 log.info("---------- Configured IDTRKVALID perfDPD")
245
246 # DESDM_MCP
247 for flag in [key for key in flags._flagdict.keys() if ("Output.DESDM_MCPFileName" in key)]:
248 from PrimaryDPDMaker.DESDM_MCP import DESDM_MCPCfg
249 cfg.merge(DESDM_MCPCfg(flags))
250 log.info("---------- Configured DESDM_MCP perfDPD")
251
252 # DESDM_EXOTHIP
253 for flag in [key for key in flags._flagdict.keys() if ("Output.DESDM_EXOTHIPFileName" in key)]:
254 from PrimaryDPDMaker.DESDM_EXOTHIP import DESDM_EXOTHIPCfg
255 cfg.merge(DESDM_EXOTHIPCfg(flags))
256 log.info("---------- Configured DESDM_EXOTHIP perfDPD")
257
258 # DRAW ZMUMU
259 for flag in [key for key in flags._flagdict.keys() if ("Output.DRAW_ZmumuFileName" in key)]:
260 from PrimaryDPDMaker.DRAW_ZMUMU import DRAW_ZmumuCfg
261 cfg.merge(DRAW_ZmumuCfg(flags))
262 log.info("---------- Configured DRAW_ZMUMU perfDPD")
263
264 #DRAW_EGZ
265 for flag in [key for key in flags._flagdict.keys() if ("Output.DRAW_EGZFileName" in key)]:
266 from PrimaryDPDMaker.DRAW_EGZ import DRAW_EGZCfg
267 cfg.merge(DRAW_EGZCfg(flags))
268 log.info("---------- Configured DRAW_EGZ perfDPD")
269
270 #DRAW_TAULH
271 for flag in [key for key in flags._flagdict.keys() if ("Output.DRAW_TAULHFileName" in key)]:
272 from PrimaryDPDMaker.DRAW_TAULH import DRAW_TAULHCfg
273 cfg.merge(DRAW_TAULHCfg(flags))
274 log.info("---------- Configured DRAW_TAULH perfDPD")
275
276 #DRAW_JET
277 for flag in [key for key in flags._flagdict.keys() if ("Output.DRAW_JETFileName" in key)]:
278 from PrimaryDPDMaker.DRAW_JET import DRAW_JETCfg
279 cfg.merge(DRAW_JETCfg(flags))
280 log.info("---------- Configured DRAW_JET perfDPD")
281
282 # L1CALO1/2
283 for flag in [key for key in flags._flagdict.keys() if ("Output.DAOD_L1CALO1FileName" in key)]:
284 from DerivationFrameworkL1Calo.L1CALO1 import L1CALO1Cfg
285 cfg.merge(L1CALO1Cfg(flags))
286 log.info("---------- Configured L1CALO1 perfDPD")
287
288 for flag in [key for key in flags._flagdict.keys() if ("Output.DAOD_L1CALO2FileName" in key)]:
289 from DerivationFrameworkL1Calo.L1CALO2 import L1CALO2Cfg
290 cfg.merge(L1CALO2Cfg(flags))
291 log.info("---------- Configured L1CALO2 perfDPD")
292
293 # DESDM PHOJET
294 for flag in [key for key in flags._flagdict.keys() if ("Output.DESDM_PHOJETFileName" in key)]:
295 from PrimaryDPDMaker.DESDM_PHOJET import DESDM_PHOJETCfg
296 cfg.merge(DESDM_PHOJETCfg(flags))
297 log.info("---------- Configured PHOJET perfDPD")
298
299 # DESDM ALLCELLS
300 for flag in [key for key in flags._flagdict.keys() if ("Output.DESDM_ALLCELLSFileName" in key)]:
301 from PrimaryDPDMaker.DESDM_ALLCELLS import DESDM_ALLCELLSCfg
302 cfg.merge(DESDM_ALLCELLSCfg(flags))
303 log.info("---------- Configured ALLCELLS perfDPD")
304
305 # Special message service configuration
306 from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
307 cfg.merge(DigitizationMessageSvcCfg(flags))
308
309 # Post-include
310 processPostInclude(runArgs, flags, cfg)
311
312 # Post-exec
313 processPostExec(runArgs, flags, cfg)
314
315 from AthenaConfiguration.Utils import setupLoggingLevels
316 setupLoggingLevels(flags, cfg)
317
318 # Write some metadata into TagInfo
319 from EventInfoMgt.TagInfoMgrConfig import TagInfoMgrCfg
320 cfg.merge(
321 TagInfoMgrCfg(
322 flags,
323 tagValuePairs={
324 "beam_type": flags.Beam.Type.value,
325 "beam_energy": str(int(flags.Beam.Energy)),
326 "triggerStreamOfFile": ""
327 if flags.Input.isMC
328 else flags.Input.TriggerStream,
329 "project_name": "IS_SIMULATION"
330 if flags.Input.isMC
331 else flags.Input.ProjectName,
332 f"AtlasRelease_{runArgs.trfSubstepName}": flags.Input.Release or "n/a",
333 },
334 )
335 )
336 if not flags.Input.isMC and flags.Input.DataYear > 0:
337 cfg.merge(TagInfoMgrCfg(flags, tagValuePairs={
338 "data_year": str(flags.Input.DataYear)
339 }))
340
341 # Write AMI tag into in-file metadata
342 from PyUtils.AMITagHelperConfig import AMITagCfg
343 cfg.merge(AMITagCfg(flags, runArgs))
344
345 # Print PerfMon domain information when running detailed monitoring
346 if flags.PerfMon.doFullMonMT:
347 cfg.printPerfmonDomains()
348
349 timeConfig = time.time()
350 log.info("configured in %d seconds", timeConfig - timeStart)
351
352 log.info("Configured according to flag values listed below")
353 flags.dump()
354
355 # Print sum information about AccumulatorCache performance
356 from AthenaConfiguration.AccumulatorCache import AccumulatorDecorator
357 AccumulatorDecorator.printStats()
358
359 # Run the final accumulator
360 sc = cfg.run()
361 timeFinal = time.time()
362 log.info("Run RAWtoALL_skeleton in %d seconds (running %d seconds)", timeFinal - timeStart, timeFinal - timeConfig)
363
364 import sys
365 sys.exit(not sc.isSuccess())

Variable Documentation

◆ jobPropertiesDisallowed

python.RAWtoALL_Skeleton.jobPropertiesDisallowed

Definition at line 10 of file RAWtoALL_Skeleton.py.