12def fromRunArgs(runArgs):
13 from AthenaCommon.Logging import logging
14 log = logging.getLogger('HITSMerge_tf')
15 log.info('****************** STARTING HIT MERGING *****************')
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, 'inputHITSFile'):
27 flags.Input.Files = runArgs.inputHITSFile
28 else:
29 raise RuntimeError('No input HITS file defined')
30
31 if hasattr(runArgs, 'outputHITS_MRGFile'):
32 if runArgs.outputHITS_MRGFile == 'None':
33 flags.Output.HITSFileName = ''
34
35 else:
36 flags.Output.HITSFileName = runArgs.outputHITS_MRGFile
37 else:
38 raise RuntimeError('No outputHITS_MRGFile defined')
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
65 from DetDescrCnvSvc.DetDescrCnvSvcConfig import DetDescrCnvSvcCfg
66 cfg.merge(DetDescrCnvSvcCfg(flags))
67
68 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
69 cfg.merge(OutputStreamCfg(flags, 'HITS', disableEventTag=("xAOD::EventInfo#EventInfo" not in flags.Input.TypedCollections),
70 takeItemsFromInput = True, extendProvenanceRecord = False))
71
72
73 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
74 from AthenaConfiguration.Enums import MetadataCategory
75
76 cfg.merge(
77 SetupMetaDataForStreamCfg(
78 flags,
79 "HITS",
80 createMetadata=[
81 MetadataCategory.IOVMetaData,
82 ],
83 )
84 )
85
86
87 processPostInclude(runArgs, flags, cfg)
88
89
90 processPostExec(runArgs, flags, cfg)
91
92
93 from PyUtils.AMITagHelperConfig import AMITagCfg
94 cfg.merge(AMITagCfg(flags, runArgs))
95
96 import time
97 tic = time.time()
98
99 sc = cfg.run()
100 log.info("Ran HITSMerge_tf in " + str(time.time()-tic) + " seconds")
101
102 sys.exit(not sc.isSuccess())