7 msg = msg.getChild(__name__)
11 from PyJobTransforms.trfArgs
import getExtraDPDList
17 parser.defineArgGroup(
'PhysValMerge',
'Physics Validation merge job specific options')
18 parser.add_argument(
'--inputNTUP_PHYSVALFile',
20 help=
'Input physics validation file', group=
'PhysValMerge', nargs=
'+')
21 parser.add_argument(
'--outputNTUP_PHYSVAL_MRGFile',
23 help=
'Output merged physics validation file', group=
'PhysValMerge')
24 parser.add_argument(
'--skipPostProcessing',
27 help=
'If given, skip the post-processing step and just do the merging',
32 intermediateStep =
'NTUP_PHYSVAL_MRG0'
34 if skip_post_processing:
35 msg.info(
"User requested to SKIP post-processing ('--skipPostProcessing' [%s]), so we'll just do merging and skip running post-processing.", skip_post_processing)
36 out_data = [
'NTUP_PHYSVAL_MRG']
38 msg.info(
"We'll run merging and post-processing (implemented for ID track monitoring, EGamma, and BTagging).")
39 out_data = [intermediateStep]
41 executorSet.add(NTUPMergeExecutor(name=
'NTUPLEMergePHYSVAL', exe=
'hadd', inData=[
'NTUP_PHYSVAL'], outData=out_data, exeArgs=[]))
43 if not skip_post_processing:
44 executorSet.add(NTUPMergeExecutor(name=
'NTUPLEPHYSVALIDTrackingPostProc', exe=
'postProcessIDPVMHistos', inData=[intermediateStep], outData=[
'NTUP_PHYSVAL_MRG1'], exeArgs=[]))
45 executorSet.add(NtupPhysValPostProcessingExecutor(name=
'NTUPLEPHYSVALPostProc', exe=
'physvalPostProcessing.py', inData=[
'NTUP_PHYSVAL_MRG1'], outData=[
'NTUP_PHYSVAL_MRG'],exeArgs=[]))
49 for ntup
in extraNTUPs:
50 executorSet.add(NTUPMergeExecutor(name=
'NTUPLEMerge'+ntup.name.replace(
'_',
''), exe =
'hadd', inData=[ntup.name], outData=[ntup.name+
'_MRG'], exeArgs=[]))
51 except ImportError
as e:
52 msg.warning(
"Failed to get D3PD lists - probably D3PDs are broken in this release: {0}".
format(e))
59 parser.defineArgGroup(
'Input DAOD',
'Input DAOD files to be merged')
60 parser.defineArgGroup(
'Output DAOD',
'Output merged DAOD files')
61 for DAOD
in DAODTypes:
62 parser.add_argument(
"--input" + DAOD +
"File", nargs=
"+",
64 help=
"Input DAOD file of " + DAOD +
" derivation", group=
"Input DAOD")
65 parser.add_argument(
"--output" + DAOD +
"_MRGFile",
67 help=
"Output merged DAOD file of " + DAOD +
" derivation", group=
"Output DAOD")
69 parser.defineArgGroup(
'Output DAOD',
'Output derivation DAOD files')
70 for DAOD
in DAODTypes:
71 parser.add_argument(
"--output" + DAOD +
"File",
73 help=
"Output DAOD file of " + DAOD +
" derivation", group=
"Output DAOD")
78 for DAOD
in DAODTypes:
79 executorSet.add(POOLMergeExecutor(name = DAOD.removeprefix(
"DAOD_") +
'Merge', inData = [DAOD], outData = [DAOD+
'_MRG']))
84 from DerivationFrameworkCore.DerivationFrameworkProdFlags
import listAODtoDPD
85 DAODTypes = [ name.lstrip(
"Stream")
for name
in listAODtoDPD ]
87 msg.warning(
"Could not import DAOD subtypes from DerivationFramework.DerivationFrameworkCore")