ATLAS Offline Software
RAWtoDAOD_TLA_Skeleton.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from PyJobTransforms.TransformUtils import processPreExec, processPreInclude, processPostExec, processPostInclude
4 from RecJobTransforms.RecoSteering import RecoSteering
5 
6 from AthenaCommon.Logging import logging
7 log = logging.getLogger('RAWtoDAOD_TLA')
8 
9 
10 def configureFlags(runArgs):
11  # some basic settings here...
12  from AthenaConfiguration.AllConfigFlags import initConfigFlags
13  flags = initConfigFlags()
14  from PyJobTransforms.CommonRunArgsToFlags import commonRunArgsToFlags
15  commonRunArgsToFlags(runArgs, flags)
16 
17  # Input
18  if hasattr(runArgs, 'inputBSFile'):
19  log.warning("Enters the inputBSFile if")
20  flags.Input.Files = runArgs.inputBSFile
21 
22  # Output
23  if hasattr(runArgs, 'outputDAOD_TLAFile'):
24  flags.Output.AODFileName = runArgs.outputDAOD_TLAFile
25  log.info("---------- Configured DAOD_TLA output")
26  flags.Trigger.AODEDMSet='PhysicsTLA'
27  from AthenaConfiguration.DetectorConfigFlags import allDetectors
28  disabled_detectors = allDetectors
29  elif hasattr(runArgs, 'outputDAOD_TLAFTAGPEBFile'):
30  flags.Output.AODFileName = runArgs.outputDAOD_TLAFTAGPEBFile
31  log.info("---------- Configured DAOD_TLAFTAGPEB output")
32  flags.Trigger.AODEDMSet='FTagPEBTLA'
33  disabled_detectors = [
34  'TRT',
35  'LAr', 'Tile', 'MBTS',
36  'CSC', 'MDT', 'RPC', 'TGC',
37  'sTGC', 'MM',
38  'Lucid', 'ZDC', 'ALFA', 'AFP',
39  ]
40  elif hasattr(runArgs, 'outputDAOD_TLADJETPEBFile'):
41  flags.Output.AODFileName = runArgs.outputDAOD_TLADJETPEBFile
42  log.info("---------- Configured DAOD_TLADJETPEB output")
43  flags.Trigger.AODEDMSet='DarkJetPEBTLA'
44  disabled_detectors = [
45  'MBTS',
46  'Lucid', 'ZDC', 'ALFA', 'AFP',
47  ]
48  elif hasattr(runArgs, 'outputDAOD_TLAEGAMPEBFile'):
49  flags.Output.AODFileName = runArgs.outputDAOD_TLAEGAMPEBFile
50  log.info("---------- Configured DAOD_TLAEGAMPEB output")
51  flags.Trigger.AODEDMSet='EgammaPEBTLA'
52  disabled_detectors = [
53  'MBTS',
54  'CSC', 'MDT', 'RPC', 'TGC',
55  'sTGC', 'MM',
56  'Lucid', 'ZDC', 'ALFA', 'AFP',
57  ]
58 
59  from RecJobTransforms.RecoConfigFlags import recoRunArgsToFlags
60  recoRunArgsToFlags(runArgs, flags)
61 
62  # Set non-default flags
63  flags.Trigger.doLVL1=False
64  flags.Trigger.DecisionMakerValidation.Execute = False
65  flags.Trigger.doNavigationSlimming = False
66  flags.Trigger.L1.doCalo=False
67  flags.Trigger.L1.doCTP=False
68 
69  from AthenaConfiguration.Enums import ProductionStep
70  flags.Common.ProductionStep=ProductionStep.Reconstruction
71 
72  from AthenaConfiguration.AutoConfigFlags import GetFileMD
73  from AthenaConfiguration.TestDefaults import defaultGeometryTags
74  if GetFileMD(flags.Input.Files)["GeoAtlas"] is None:
75  flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
76 
77  # Setup detector flags
78  from AthenaConfiguration.DetectorConfigFlags import disableDetectors
80  flags, toggle_geometry=True,
81  detectors=disabled_detectors,
82  )
83 
84  # Print reco domain status
85  from RecJobTransforms.RecoConfigFlags import printRecoFlags
86  printRecoFlags(flags)
87 
88  # Setup perfmon flags from runargs
89  from PerfMonComps.PerfMonConfigHelpers import setPerfmonFlagsFromRunArgs
90  setPerfmonFlagsFromRunArgs(flags, runArgs)
91 
92  # process pre-include/exec
93  processPreInclude(runArgs, flags)
94  processPreExec(runArgs, flags)
95 
96  # To respect --athenaopts
97  flags.fillFromArgs()
98 
99  # Lock flags
100  flags.lock()
101 
102  return flags
103 
104 
105 
106 def fromRunArgs(runArgs):
107 
108  log.info('****************** STARTING TLA RAW Decoding (RAWtoDAOD_TLA) *****************')
109 
110  log.info('**** Transformation run arguments')
111  log.info(str(runArgs))
112 
113  import time
114  timeStart = time.time()
115 
116  flags = configureFlags(runArgs)
117  log.info("Configuring according to flag values listed below")
118  flags.dump()
119 
120  cfg = RecoSteering(flags)
121 
122  # import the TLA decoding
123  cfg.flagPerfmonDomain('Trigger')
124 
125  # add additional objects reconstructed in RAWtoDAOD step (i.e. not in trigger EDM)
126  additional_output_items = {
127  'PhysicsTLA': [],
128  'FTagPEBTLA':
129  [
130  'xAOD::BTaggingContainer#BTagging_HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_TLA',
131  'xAOD::BTaggingAuxContainer#BTagging_HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_TLAAux.',
132  ],
133  'DarkJetPEBTLA': [],
134  'EgammaPEBTLA': [],
135  }[flags.Trigger.AODEDMSet]
136  from TLARecoConfig.DAOD_TLA_OutputConfig import DAOD_TLA_OutputCfg
137  cfg.merge( DAOD_TLA_OutputCfg(flags, additional_output_items) )
138 
139  if flags.Trigger.AODEDMSet == 'FTagPEBTLA':
140  from TLARecoConfig.FTagPEBRecoConfig import FTagPEBJetTagConfig
141  cfg.merge(FTagPEBJetTagConfig(flags))
142 
143  # setup Metadata writer
144  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
145  cfg.merge(SetupMetaDataForStreamCfg(flags,'AOD'))
146 
147  # Post-include
148  processPostInclude(runArgs, flags, cfg)
149 
150  # Post-exec
151  processPostExec(runArgs, flags, cfg)
152 
153  from AthenaCommon.Constants import INFO
154  if flags.Exec.OutputLevel <= INFO:
155  cfg.printConfig()
156 
157  # Run the final accumulator
158  sc = cfg.run()
159  timeFinal = time.time()
160  log.info("Run RAWtoDAOD_TLA_skeleton in %d seconds", timeFinal - timeStart)
161 
162  import sys
163  sys.exit(sc.isFailure())
python.AutoConfigFlags.GetFileMD
def GetFileMD(filenames, allowEmpty=True, maxLevel='peeker')
Definition: AutoConfigFlags.py:65
python.RecoSteering.RecoSteering
def RecoSteering(flags)
Definition: RecoSteering.py:6
python.RAWtoDAOD_TLA_Skeleton.configureFlags
def configureFlags(runArgs)
Definition: RAWtoDAOD_TLA_Skeleton.py:10
python.TransformUtils.processPreExec
def processPreExec(runArgs, flags)
Definition: Tools/PyJobTransforms/python/TransformUtils.py:41
python.TransformUtils.processPostExec
def processPostExec(runArgs, flags, cfg)
Definition: Tools/PyJobTransforms/python/TransformUtils.py:50
python.DAOD_TLA_OutputConfig.DAOD_TLA_OutputCfg
def DAOD_TLA_OutputCfg(flags, additional_items=[])
Definition: DAOD_TLA_OutputConfig.py:11
python.RecoConfigFlags.printRecoFlags
def printRecoFlags(flags)
Definition: RecoConfigFlags.py:155
python.TransformUtils.processPostInclude
def processPostInclude(runArgs, flags, cfg)
Definition: Tools/PyJobTransforms/python/TransformUtils.py:69
python.RecoConfigFlags.recoRunArgsToFlags
def recoRunArgsToFlags(runArgs, flags)
Definition: RecoConfigFlags.py:198
python.TransformUtils.processPreInclude
def processPreInclude(runArgs, flags)
Definition: Tools/PyJobTransforms/python/TransformUtils.py:62
python.PerfMonConfigHelpers.setPerfmonFlagsFromRunArgs
def setPerfmonFlagsFromRunArgs(flags, runArgs)
Definition: PerfMonConfigHelpers.py:3
python.DetectorConfigFlags.disableDetectors
def disableDetectors(flags, detectors, toggle_geometry=False)
Definition: DetectorConfigFlags.py:429
Constants
some useful constants -------------------------------------------------—
python.CommonRunArgsToFlags.commonRunArgsToFlags
def commonRunArgsToFlags(runArgs, configFlags)
Definition: CommonRunArgsToFlags.py:12
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.FTagPEBRecoConfig.FTagPEBJetTagConfig
def FTagPEBJetTagConfig(flags, jet_collection='HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_TLA', track_collection='InDetTrackParticles', pv_collection='PrimaryVertices')
Definition: FTagPEBRecoConfig.py:10
python.RAWtoDAOD_TLA_Skeleton.fromRunArgs
def fromRunArgs(runArgs)
Definition: RAWtoDAOD_TLA_Skeleton.py:106
str
Definition: BTagTrackIpAccessor.cxx:11
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222