12def fromRunArgs(runArgs):
13 from AthenaCommon.Logging import logging
14 log = logging.getLogger('SimValid_tf')
15 log.info('****************** STARTING VALIDATION *****************')
16
17 log.info('**** Transformation run arguments')
18 log.info(str(runArgs))
19
20 log.info('**** Setting-up configuration flags')
21 from AthenaConfiguration.AllConfigFlags import initConfigFlags
22 flags = initConfigFlags()
23
24 commonRunArgsToFlags(runArgs, flags)
25
26 if hasattr(runArgs, 'localgeo'):
27 flags.ITk.Geometry.AllLocal = runArgs.localgeo
28
29 if hasattr(runArgs, 'inputHITSFile'):
30 flags.Input.Files = runArgs.inputHITSFile
31 else:
32 raise RuntimeError('No input HITS file defined')
33
34 if hasattr(runArgs, 'outputHIST_SIMFile'):
35 flags.Output.HISTFileName = runArgs.outputHIST_SIMFile
36 else:
37 log.warning('No output file set')
38 flags.Output.HISTFileName = 'output.HIST_SIM.root'
39
40
41 from SimuJobTransforms.SimulationHelpers import getDetectorsFromRunArgs
42 detectors = getDetectorsFromRunArgs(flags, runArgs)
43 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
44 setupDetectorFlags(flags, detectors, use_metadata=True, toggle_geometry=True, keep_beampipe=True)
45
46
47 processPreInclude(runArgs, flags)
48
49
50 processPreExec(runArgs, flags)
51
52
53 flags.fillFromArgs()
54
55
56 flags.lock()
57
58 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
59 cfg = MainServicesCfg(flags)
60
61 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
62 cfg.merge(PoolReadCfg(flags))
63
64 from HitAnalysis.HitAnalysisConfig import HGTD_HitAnalysisCfg, ALFAHitAnalysisCfg, AFPHitAnalysisCfg, LucidHitAnalysisCfg, ZDCHitAnalysisCfg
65
66 from HitAnalysis.PostIncludes import SimHitAnalysis
67 cfg.merge(SimHitAnalysis(flags))
68
69 if flags.Detector.EnableHGTD:
70 cfg.merge(HGTD_HitAnalysisCfg(flags))
71
72 if flags.Detector.EnableALFA:
73 cfg.merge(ALFAHitAnalysisCfg(flags))
74
75 if flags.Detector.EnableAFP:
76 cfg.merge(AFPHitAnalysisCfg(flags))
77
78 if flags.Detector.EnableLucid:
79 cfg.merge(LucidHitAnalysisCfg(flags))
80
81 if flags.Detector.EnableZDC:
82 cfg.merge(ZDCHitAnalysisCfg(flags))
83
84
85 processPostInclude(runArgs, flags, cfg)
86
87
88 processPostExec(runArgs, flags, cfg)
89
90 import time
91 tic = time.time()
92
93 sc = cfg.run()
94 log.info("Ran HITSMerge_tf in " + str(time.time()-tic) + " seconds")
95
96 sys.exit(not sc.isSuccess())