5from PyJobTransforms.TransformUtils
import processPreExec, processPreInclude, processPostExec, processPostInclude
13 from AthenaCommon.Logging
import logging
14 log = logging.getLogger(
"EVNTMerge")
15 log.info(
"****************** STARTING EVNT MERGING *****************")
17 log.info(
"**** Transformation run arguments")
18 log.info(str(runArgs))
20 log.info(
"**** Setting-up configuration flags")
21 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
22 flags = initConfigFlags()
24 from AthenaConfiguration.Enums
import ProductionStep, MetadataCategory
25 flags.Common.ProductionStep = ProductionStep.Generation
27 commonRunArgsToFlags(runArgs, flags)
29 if hasattr(runArgs,
"inputEVNTFile"):
30 flags.Input.Files = runArgs.inputEVNTFile
32 raise RuntimeError(
"No input EVNT file defined")
34 if hasattr(runArgs,
"outputEVNT_MRGFile"):
35 if runArgs.outputEVNT_MRGFile ==
"None":
36 flags.Output.EVNTFileName =
""
39 flags.Output.EVNTFileName = runArgs.outputEVNT_MRGFile
41 raise RuntimeError(
"No outputEVNT_MRGFile defined")
44 flags.IOVDb.UseCREST =
False
47 processPreInclude(runArgs, flags)
50 processPreExec(runArgs, flags)
58 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
59 cfg = MainServicesCfg(flags)
61 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
62 cfg.merge(PoolReadCfg(flags))
66 if (
'EventInfo' not in flags.Input.Collections
and
67 'McEventInfo' in flags.Input.Collections):
68 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
69 cfg.merge(EventInfoCnvAlgCfg(flags, disableBeamSpot =
True))
71 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
72 cfg.merge(OutputStreamCfg(flags,
"EVNT", disableEventTag =
True, takeItemsFromInput =
True, extendProvenanceRecord =
False))
75 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
78 SetupMetaDataForStreamCfg(
82 createMetadata=[MetadataCategory.IOVMetaData],
87 processPostInclude(runArgs, flags, cfg)
90 processPostExec(runArgs, flags, cfg)
93 from PyUtils.AMITagHelperConfig
import AMITagCfg
94 cfg.merge(AMITagCfg(flags, runArgs))
97 from AthenaConfiguration.AutoConfigFlags
import GetFileMD
98 hepmc_version = GetFileMD(flags.Input.Files).
get(
"hepmc_version",
None)
99 if hepmc_version
is not None:
100 if hepmc_version ==
"2":
101 hepmc_version =
"HepMC2"
102 elif hepmc_version ==
"3":
103 hepmc_version =
"HepMC3"
104 log.info(
"Input file was produced with %s", hepmc_version)
105 from EventInfoMgt.TagInfoMgrConfig
import TagInfoMgrCfg
106 cfg.merge(TagInfoMgrCfg(flags, tagValuePairs={
"hepmc_version": hepmc_version}))
112 log.info(
"Ran EVNTMerge_tf in " + str(time.time()-tic) +
" seconds")
114 sys.exit(
not sc.isSuccess())