5from PyJobTransforms.TransformUtils
import processPreExec, processPreInclude, processPostExec, processPostInclude
6from SimuJobTransforms.CommonSimulationSteering
import CommonSimulationCfg, specialConfigPreInclude, specialConfigPostInclude
14 from AthenaCommon.Logging
import logging
15 log = logging.getLogger(
'Sim_tf')
16 log.info(
'****************** STARTING Simulation *****************')
18 log.info(
'**** Transformation run arguments')
19 log.info(str(runArgs))
21 log.info(
'**** Setting-up configuration flags')
22 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
23 from SimulationConfig.SimEnums
import SimulationFlavour
24 flags = initConfigFlags()
26 commonRunArgsToFlags(runArgs, flags)
29 from AthenaConfiguration.Enums
import ProductionStep
30 flags.Common.ProductionStep = ProductionStep.Simulation
33 if hasattr(runArgs,
'simulator'):
34 flags.Sim.ISF.Simulator = SimulationFlavour(runArgs.simulator)
37 flags.Sim.ISFRun =
True
38 flags.Sim.ISF.ReSimulation =
True
41 from SimuJobTransforms.SimulationHelpers
import getDetectorsFromRunArgs
42 detectors = getDetectorsFromRunArgs(flags, runArgs)
44 if hasattr(runArgs,
'inputHITSFile'):
45 flags.Input.Files = runArgs.inputHITSFile
47 log.error(
'No inputHITSFile provided. Please try using Sim_tf.py instead.')
48 raise RuntimeError(
'No intputHITSFile provided.')
50 if hasattr(runArgs,
'outputHITS_RSMFile'):
51 if runArgs.outputHITS_RSMFile ==
'None':
52 flags.Output.HITSFileName =
''
54 flags.Output.HITSFileName = runArgs.outputHITS_RSMFile
57 from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
58 setupDetectorFlags(flags, detectors, toggle_geometry=
True)
61 from PerfMonComps.PerfMonConfigHelpers
import setPerfmonFlagsFromRunArgs
62 setPerfmonFlagsFromRunArgs(flags, runArgs)
65 processPreInclude(runArgs, flags)
68 specialConfigPreInclude(flags)
71 processPreExec(runArgs, flags)
74 from SimulationConfig.SimConfigFlags
import simulationRunArgsToFlags
75 simulationRunArgsToFlags(runArgs, flags)
83 cfg = CommonSimulationCfg(flags, log)
86 from SimuJobTransforms.ReSimInputConfig
import RenameHitCollectionsOnReadCfg
87 cfg.merge(RenameHitCollectionsOnReadCfg(flags))
90 specialConfigPostInclude(flags, cfg)
93 processPostInclude(runArgs, flags, cfg)
96 processPostExec(runArgs, flags, cfg)
99 from PyUtils.AMITagHelperConfig
import AMITagCfg
100 cfg.merge(AMITagCfg(flags, runArgs))
106 log.info(
"Run resimulation in " + str(time.time()-tic) +
" seconds")
108 sys.exit(
not sc.isSuccess())