ATLAS Offline Software
Loading...
Searching...
No Matches
python.AthenaMonitoringAODRecoCfg Namespace Reference

Functions

 AthenaMonitoringAODRecoCfg (flags)

Function Documentation

◆ AthenaMonitoringAODRecoCfg()

python.AthenaMonitoringAODRecoCfg.AthenaMonitoringAODRecoCfg ( flags)

Definition at line 5 of file AthenaMonitoringAODRecoCfg.py.

5def AthenaMonitoringAODRecoCfg(flags):
6 import logging
7 local_logger = logging.getLogger('AthenaMonitoringAODRecoCfg')
8 info = local_logger.info
9 result = ComponentAccumulator()
10
11 if flags.DQ.Environment == 'AOD':
12 info('Running on AOD: Scheduling rebuild of standard jet collections if necessary')
13 from JetRecConfig.StandardSmallRJets import AntiKt4EMTopo, AntiKt4EMPFlow, AntiKt4LCTopo
14 from JetRecConfig.StandardLargeRJets import AntiKt10LCTopo_noVR, AntiKt10LCTopoTrimmed_trigger, AntiKt10UFOCSSKSoftDrop_trigger
15 from AthenaConfiguration.Enums import BeamType
16
17 # first, check small R jets, skip PFlow when running over cosmics
18 jets_to_schedule = [_ for _ in ((AntiKt4EMTopo, AntiKt4EMPFlow, AntiKt4LCTopo) if flags.Beam.Type is not BeamType.Cosmics else (AntiKt4EMTopo, AntiKt4LCTopo))
19 if _.fullname() not in flags.Input.Collections]
20 # if we reschedule small R jets, check if we need to reschedule large R as well
21 if jets_to_schedule:
22 jets_to_schedule += [_ for _ in ((AntiKt10LCTopo_noVR, AntiKt10LCTopoTrimmed_trigger, AntiKt10UFOCSSKSoftDrop_trigger) if flags.Beam.Type is not BeamType.Cosmics else (AntiKt10LCTopo_noVR, AntiKt10LCTopoTrimmed_trigger))
23 if _.fullname() not in flags.Input.Collections]
24
25 if jets_to_schedule:
26 info(f'Ensuring presence of jet collections for monitoring: {jets_to_schedule}')
27 from JetRecConfig.JetRecConfig import JetRecCfg
28 # We're in Reco-like job : this flag implies the jet config will automatically switch off component incompatible with conditions (cosmics, truth,...)
29
30 for container in jets_to_schedule:
31 result.merge(JetRecCfg(flags, container))
32
33 jet_collections = set([_.fullname().replace('Jets','') for _ in jets_to_schedule])
34 btag_jet_collections = set(['AntiKt4EMTopo', 'AntiKt4EMPFlow'])
35 met_jet_collections = set(['AntiKt4EMTopo', 'AntiKt4EMPFlow', 'AntiKt4LCTopo'])
36
37 if jet_collections & btag_jet_collections:
38 info('Scheduling b-tagging of rebuilt jets')
39 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
40 result.merge(BeamSpotCondAlgCfg(flags))
41 from BTagging.BTagConfig import BTagRecoSplitCfg
42 # would rather use removesuffix below but need to wait for Python 3.9
43 for container in jet_collections & btag_jet_collections:
44 result.merge(BTagRecoSplitCfg(flags, [container+"Jets"]))
45
46 # MET can't be rebuilt when running over cosmics or HI AOD as taus are missing
47 from .DQConfigFlags import DQDataType
48 if jet_collections & met_jet_collections and flags.DQ.DataType not in (DQDataType.HeavyIon, DQDataType.Cosmics):
49 info('Scheduling rebuild of standard MET')
50 from METReconstruction.METAssociatorCfg import METAssociatorCfg
51 from METUtilities.METMakerConfig import getMETMakerAlg
52 for container in jet_collections & met_jet_collections:
53 if container == 'AntiKt4EMPFlow':
54 # build links between FlowElements and electrons, photons, muons and taus
55 info('Scheduling FlowElement linking')
56 from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
57 result.merge(PFGlobalFlowElementLinkingCfg(flags))
58 result.merge(METAssociatorCfg(flags, container))
59 result.addEventAlgo(getMETMakerAlg(container))
60 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
61 result.merge(CaloNoiseCondAlgCfg(flags)) # Prereq for Calo MET
62 from METReconstruction.METCalo_Cfg import METCalo_Cfg
63 result.merge(METCalo_Cfg(flags))
64
65 return result
STL class.
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition hcg.cxx:310