Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
NTUPMerge_tf.py
Go to the documentation of this file.
1 #! /usr/bin/env python
2 
3 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4 
5 
6 
7 import sys
8 import time
9 
10 # Setup core logging here
11 from PyJobTransforms.trfLogger import msg
12 msg.info('logging set in %s' % sys.argv[0])
13 
14 from PyJobTransforms.transform import transform
15 from PyJobTransforms.trfArgs import addExtraDPDTypes
16 from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace
17 from PATJobTransforms.PATTransformUtils import addNTUPMergeSubsteps, addPhysValidationMergeFiles
18 
19 @stdTrfExceptionHandler
20 @sigUsrStackTrace
21 def main():
22 
23  msg.info('This is %s' % sys.argv[0])
24  if sys.argv[1:] == []:
25  msg.info("%s stopped at %s, no input parameters given" % (sys.argv[0], time.asctime()))
26 
27  trf = getTransform()
28  trf.parseCmdLineArgs(sys.argv[1:])
29  trf.execute()
30  trf.generateReport()
31 
32  msg.info("%s stopped at %s, tf exit code %d" % (sys.argv[0], time.asctime(), trf.exitCode))
33  sys.exit(trf.exitCode)
34 
36  msg.debug("in getTransform...")
37 
38  # get the default executor list
39  executorSet = set()
40  # instantiate a transform with no steps
41  trf = transform(executor = executorSet, description = 'ATLAS NTUPLE merge and post-processing transform')
42 
43  # add custom merge and post-processing
44  # steering parameters and get the 'args'
45  addPhysValidationMergeFiles(trf.parser)
46  args = trf.parser.parse_args(args=['--skipPostProcessing'])
47 
48  # get the modified executor
49  mergeStepSet = set()
50 
51  # check if the user used custom parameters
52  # add to the transform the merge and
53  # post-processing steps conditionally
54  # based on user's input
55  addNTUPMergeSubsteps(mergeStepSet, skip_post_processing = args.skipPostProcessing)
56  trf.appendToExecutorSet(list(mergeStepSet))
57 
58  # additional setup
59  addExtraDPDTypes(trf.parser, transform=trf, NTUPMergerArgs = True)
60  return trf
61 
62 if __name__ == '__main__':
63  main()
64 
python.trfArgs.addExtraDPDTypes
def addExtraDPDTypes(parser, pick=None, transform=None, multipleOK=False, NTUPMergerArgs=False)
Add additional DPD arguments.
Definition: trfArgs.py:440
NTUPMerge_tf.getTransform
def getTransform()
Definition: NTUPMerge_tf.py:35
python.PATTransformUtils.addNTUPMergeSubsteps
def addNTUPMergeSubsteps(executorSet, skip_post_processing=False)
Definition: PATTransformUtils.py:40
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
python.PATTransformUtils.addPhysValidationMergeFiles
def addPhysValidationMergeFiles(parser)
Definition: PATTransformUtils.py:25
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
NTUPMerge_tf.main
def main()
Definition: NTUPMerge_tf.py:21
PyJobTransforms.trfLogger
Logging configuration for ATLAS job transforms.
PyJobTransforms.transform
Main package for new style ATLAS job transforms.