6from PyJobTransforms.TransformUtils
import processPreExec, processPreInclude, processPostExec, processPostInclude
15 from AthenaCommon.Logging
import logging
16 log = logging.getLogger(
'HITtoRDO')
17 log.info(
'****************** STARTING HITtoRDO *****************')
19 log.info(
'**** Transformation run arguments')
20 log.info(str(runArgs))
22 log.info(
'**** Setting-up configuration flags')
23 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
24 flags = initConfigFlags()
26 commonRunArgsToFlags(runArgs, flags)
28 if not hasattr(runArgs,
'inputHITSFile'):
29 raise RuntimeError(
'No input HITS file defined')
31 if not hasattr(runArgs,
'outputRDOFile'):
32 raise RuntimeError(
'No output RDO file defined')
34 flags.Input.isMC =
True
35 flags.Input.Files = runArgs.inputHITSFile
36 flags.Output.RDOFileName = runArgs.outputRDOFile
39 if hasattr(runArgs,
'runNumber'):
40 if flags.Input.MCChannelNumber != runArgs.runNumber:
41 log.warning(
'Got different MC channel number (%d) from runNumber than from metadata (%d)', runArgs.runNumber, flags.Input.MCChannelNumber)
42 flags.Input.MCChannelNumber = runArgs.runNumber
44 log.info(
'MC channel number: %d', flags.Input.MCChannelNumber)
47 if hasattr(runArgs,
'detectors'):
48 detectors = runArgs.detectors
53 from DigitizationConfig.DigitizationConfigFlags
import digitizationRunArgsToFlags
54 digitizationRunArgsToFlags(runArgs, flags)
57 from DigitizationConfig.DigitizationConfigFlags
import setupDigitizationFlags
58 setupDigitizationFlags(runArgs, flags)
59 log.info(
'Running with pile-up: %s', flags.Digitization.PileUp)
62 from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
63 setupDetectorFlags(flags, detectors, use_metadata=
True, toggle_geometry=
True)
66 from PerfMonComps.PerfMonConfigHelpers
import setPerfmonFlagsFromRunArgs
67 setPerfmonFlagsFromRunArgs(flags, runArgs)
70 specialConfigPreInclude(flags)
73 processPreInclude(runArgs, flags)
76 processPreExec(runArgs, flags)
79 from DigitizationConfig.DigitizationConfigFlags
import pileupRunArgsToFlags
80 pileupRunArgsToFlags(runArgs, flags)
83 if flags.Digitization.PileUp:
84 from RunDependentSimComps.PileUpUtils
import setupPileUpProfile
85 setupPileUpProfile(flags)
97 from DigitizationConfig.DigitizationSteering
import DigitizationMainCfg
98 cfg = DigitizationMainCfg(flags)
101 from DigitizationConfig.DigitizationSteering
import DigitizationMessageSvcCfg
102 cfg.merge(DigitizationMessageSvcCfg(flags))
105 specialConfigPostInclude(flags, cfg)
108 processPostInclude(runArgs, flags, cfg)
111 processPostExec(runArgs, flags, cfg)
113 from AthenaConfiguration.Utils
import setupLoggingLevels
114 setupLoggingLevels(flags, cfg)
117 from PyUtils.AMITagHelperConfig
import AMITagCfg
118 cfg.merge(AMITagCfg(flags, runArgs))
122 sys.exit(
not sc.isSuccess())