13def fromRunArgs(runArgs):
14 from AthenaCommon.Logging import logging
15 log = logging.getLogger('TeamBeam')
16 log.info('****************** STARTING ATLASG4 Test Beam *****************')
17
18 log.info('**** Transformation run arguments')
19 log.info(str(runArgs))
20
21 log.info('**** Setting-up configuration flags')
22 from AthenaConfiguration.AllConfigFlags import initConfigFlags
23 from AthenaConfiguration.Enums import BeamType
24 from SimulationConfig.SimEnums import SimulationFlavour
25 flags = initConfigFlags()
26 commonRunArgsToFlags(runArgs, flags)
27
28 if not hasattr(runArgs, 'geometryVersion'):
29 log.info('no geometryVersion specified, so assuming tb_Tile2000_2003_5B')
30 flags.GeoModel.AtlasVersion = "ATLAS-CTB-01"
31
32
33 from AthenaConfiguration.Enums import ProductionStep
34 flags.Common.ProductionStep = ProductionStep.Simulation
35
36 flags.Beam.Type = BeamType.TestBeam
37
38 flags.IOVDb.UseCREST=False
39
40 flags.Sim.GenerationConfiguration="ParticleGun.ParticleGunConfig.ParticleGun_TestBeam_SingleParticleCfg"
41 flags.IOVDb.DatabaseInstance = "TMCP200"
42
43 flags.Sim.ISF.Simulator = SimulationFlavour.AtlasG4
44
45
46 flags.Sim.ISFRun = False
47
48
50 detectors.add('Tile')
51
52
53
54
55
56
57
58 if hasattr(runArgs, 'inputEVNTFile'):
59 flags.Input.Files = runArgs.inputEVNTFile
60 else:
61
62
63 flags.Input.Files = []
64 flags.Input.isMC = True
65 log.info('No inputEVNTFile provided. Assuming that you are running a generator on the fly.')
66 if hasattr(runArgs, 'outputHITSFile'):
67 if runArgs.outputHITSFile == 'None':
68 flags.Output.HITSFileName = ''
69 else:
70 flags.Output.HITSFileName = runArgs.outputHITSFile
71 else:
72 raise RuntimeError('No outputHITSFile defined')
73
74 if hasattr(runArgs, 'conditionsTag'):
75 flags.IOVDb.GlobalTag = runArgs.conditionsTag
76
77
78 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
79 setupDetectorFlags(flags, detectors, toggle_geometry=True)
80
81
82 from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
83 setPerfmonFlagsFromRunArgs(flags, runArgs)
84
85
86 processPreInclude(runArgs, flags)
87
88
89 specialConfigPreInclude(flags)
90
91
92 processPreExec(runArgs, flags)
93
94
95 from SimulationConfig.SimConfigFlags import simulationRunArgsToFlags
96 simulationRunArgsToFlags(runArgs, flags)
97
98
99 from SimulationConfig.TestBeamConfigFlags import testBeamRunArgsToFlags
100 testBeamRunArgsToFlags(runArgs, flags)
101
102
103 flags.fillFromArgs()
104
105
106 flags.lock()
107
108 cfg = CommonSimulationCfg(flags, log)
109
110
111 specialConfigPostInclude(flags, cfg)
112
113
114 processPostInclude(runArgs, flags, cfg)
115
116
117 processPostExec(runArgs, flags, cfg)
118
119
120 from PyUtils.AMITagHelperConfig import AMITagCfg
121 cfg.merge(AMITagCfg(flags, runArgs))
122
123 import time
124 tic = time.time()
125
126 sc = cfg.run()
127 log.info("Run G4AtlasAlg in " + str(time.time()-tic) + " seconds")
128
129 sys.exit(not sc.isSuccess())