20 from AthenaCommon.Logging
import logging
21 log = logging.getLogger(
'POOLtoHEPMC')
22 log.info(
'*** Starting POOLtoHEPMC translation ***')
25 log.info(
'*** Transformation run arguments ***')
26 log.info(
str(runArgs))
29 log.info(
'*** Setting-up configuration flags ***')
30 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
35 from AthenaConfiguration.Enums
import ProductionStep
36 flags.Common.ProductionStep = ProductionStep.Derivation
39 if hasattr(runArgs,
'inputEVNTFile'):
40 flags.Input.Files = runArgs.inputEVNTFile
41 McEventKey =
'GEN_EVENT'
42 elif hasattr(runArgs,
'inputHITSFile'):
43 flags.Input.Files = runArgs.inputHITSFile
44 McEventKey =
'TruthEvent'
45 elif hasattr(runArgs,
'inputRDOFile'):
46 flags.Input.Files = runArgs.inputRDOFile
47 McEventKey =
'TruthEvent'
49 log.error(
'Input EVNT, HITS, or RDO file required for POOLtoHEPMC')
51 if hasattr(runArgs,
'outputHEPMCFile'):
52 if (
'.tar' in runArgs.outputHEPMCFile):
53 index = re.search(
".tar",runArgs.outputHEPMCFile).
span()[0]
54 my_output_HepMCFile = runArgs.outputHEPMCFile[:index]+
'.hepmc'
56 log.error(
'Output should be a tar.gz file but it is '+runArgs.outputHEPMCFile)
58 log.error(
'OutputHEPMCFile required for POOLtoHEPMC')
61 from PerfMonComps.PerfMonConfigHelpers
import setPerfmonFlagsFromRunArgs
77 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
81 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
85 from AthenaConfiguration.ComponentFactory
import CompFactory
86 cfg.addEventAlgo( CompFactory.WriteHepMC(
'WriteHepMC',
87 OutputFile = my_output_HepMCFile,
88 McEventKey = McEventKey ) )
103 log.info(
'Compressing HEPMC output (may take a moment)')
105 with tarfile.open(runArgs.outputHEPMCFile,
'w:gz')
as out_tar:
106 out_tar.add( my_output_HepMCFile )
109 log.debug(
'Deleting original (uncompressed) file')
111 os.remove( my_output_HepMCFile )
114 log.info(
"Ran POOLtoHEPMC in " +
str(time.time()-tic) +
" seconds")
116 sys.exit(
not sc.isSuccess())