ATLAS Offline Software
DerivationTransformHelpers.py
Go to the documentation of this file.
1 """Main derivation transform configuration helpers
2 
3 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4 """
5 
6 from PyJobTransforms.trfArgClasses import argFactory, argList, argNTUPFile, argPOOLFile, argSubstepBool, argString
7 from PyJobTransforms.trfExe import athenaExecutor, reductionFrameworkExecutor
8 
10  """Add common derivation command-line parser arguments."""
11  parser.defineArgGroup('Derivation', 'Derivation Options')
12  parser.add_argument('--formats', nargs='+',
13  type=argFactory(argList),
14  help='List of required D(2)AOD formats',
15  group='Derivation')
16  parser.add_argument('--augmentations', nargs='*',
17  type=argFactory(argList),
18  help='List of augmentations CHILD:PARENT',
19  group='Derivation')
20  parser.add_argument('--inputAODFile', nargs='+',
21  type=argFactory(argPOOLFile, io='input'),
22  help='Input AOD for DAOD building',
23  group='Derivation')
24  parser.add_argument('--inputDAOD_PHYSFile', nargs='+',
25  type=argFactory(argPOOLFile, io='input'),
26  help='Input DAOD_PHYS for D2AOD building',
27  group='Derivation')
28  parser.add_argument('--inputDAOD_PHYSLITEFile', nargs='+',
29  type=argFactory(argPOOLFile, io='input'),
30  help='Input DAOD_PHYSLITE for D2AOD building',
31  group='Derivation')
32  parser.add_argument('--inputEVNTFile', nargs='+',
33  type=argFactory(argPOOLFile, io='input'),
34  help='Input EVNT for DAOD_TRUTHX building',
35  group='Derivation')
36  parser.add_argument('--outputDAODFile', nargs='+',
37  type=argFactory(argPOOLFile, io='output'),
38  help='Output DAOD filename stub, DAOD_X will be prepended to it',
39  group='Derivation')
40  parser.add_argument('--outputD2AODFile', nargs='+',
41  type=argFactory(argPOOLFile, io='output'),
42  help='Output D2AOD filename stub, D2AOD_X will be prepended to it',
43  group='Derivation')
44  parser.add_argument('--passThrough',
45  type=argFactory(argSubstepBool, defaultSubstep = 'Derivation', runarg=True),
46  metavar='BOOL',
47  help='Disable all skimming and write every event',
48  group='Derivation')
49  parser.add_argument('--skimmingExpression',
50  type=argFactory(argString),
51  help='String defining skimming from command line, SKIM format only',
52  group='Derivation',
53  default='')
54  parser.add_argument('--skimmingContainers', nargs='+',
55  type=argFactory(argList),
56  help='List of containers used for skimming in the skimmingExpression, SKIM format only',
57  group='Derivation',
58  )
59 
61  """Add validation command-line parser arguments."""
62  parser.defineArgGroup('Physics Validation', 'Physics validation options')
63  parser.add_argument('--validationFlags', nargs='+',
64  type=argFactory(argList),
65  help='Physics validation histogram switches',
66  group='Physics Validation')
67  parser.add_argument('--inputDAOD_PHYSVALFile', nargs='+',
68  type=argFactory(argPOOLFile, io='input'),
69  help='Input DAOD_PHYSVAL for validation ntuples building',
70  group='Physics Validation')
71  parser.add_argument('--outputNTUP_PHYSVALFile',
72  type=argFactory(argNTUPFile, io='output'),
73  help='Output physics validation file',
74  group='Physics Validation')
75 
76 
77 def addDerivationSubstep(executor_set):
78  # We use the existing DF executor which inherits from the athenaExecutor.
79  # It handles the composite output filenames and inserts them into the transform's dataDictionary.
80  # If this isn't done the file validation will run over the wrong file name.
81  executor = reductionFrameworkExecutor(name='Derivation',
82  skeletonCA='DerivationFrameworkConfiguration.DerivationSkeleton',
83  substep='DerivationFramework',
84  tryDropAndReload=False,
85  perfMonFile='ntuple.pmon.gz',
86  inData=['EVNT', 'AOD', 'DAOD_PHYS', 'DAOD_PHYSLITE'],
87  outData=['DAOD', 'D2AOD'])
88  executor_set.add(executor)
89 
90 
91 def addPhysicsValidationSubstep(executor_set):
92  executor = athenaExecutor(name='PhysicsValidation',
93  skeletonCA='DerivationFrameworkConfiguration.PhysicsValidationSkeleton',
94  substep='PhysicsValidation',
95  tryDropAndReload=False,
96  perfMonFile='ntuple.pmon.gz',
97  inData=['DAOD_PHYSVAL'],
98  outData=['NTUP_PHYSVAL'])
99  executor_set.add(executor)
python.DerivationTransformHelpers.addPhysicsValidationArguments
def addPhysicsValidationArguments(parser)
Definition: DerivationTransformHelpers.py:60
python.DerivationTransformHelpers.addDerivationArguments
def addDerivationArguments(parser)
Definition: DerivationTransformHelpers.py:9
PyJobTransforms.trfArgClasses
Transform argument class definitions.
python.DerivationTransformHelpers.addPhysicsValidationSubstep
def addPhysicsValidationSubstep(executor_set)
Definition: DerivationTransformHelpers.py:91
PyJobTransforms.trfExe
Transform execution functions.
python.DerivationTransformHelpers.addDerivationSubstep
def addDerivationSubstep(executor_set)
Definition: DerivationTransformHelpers.py:77