Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
InDetAlgorithmConfig.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 '''@file InDetAlgorithmConfig.py
6 @author M. Aparo
7 @date 02-10-2023
8 @brief CA-based python configurations for the event algorithms in this package
9 '''
10 
11 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12 from AthenaConfiguration.ComponentFactory import CompFactory
13 
14 
15 def TruthHitDecoratorAlgCfg( flags, name="InDetPhysValTruthDecoratorAlg", **kwargs ):
16  '''
17  create decoration algorithm which decorates
18  truth particles with track parameters at the perigee.
19  '''
20  acc = ComponentAccumulator()
21 
22  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
23  extrapolator = acc.popToolsAndMerge( AtlasExtrapolatorCfg( flags ) )
24  acc.addPublicTool( extrapolator )
25  kwargs.setdefault( "Extrapolator", extrapolator )
26 
27  if flags.Detector.GeometryITk :
28  kwargs.setdefault( "PixelClusterContainerName", "ITkPixelMeasurements" )
29  kwargs.setdefault( "SCTClusterContainerName", "ITkStripMeasurements" )
30 
31  doTechEff = False
32  for trkAnaName in flags.PhysVal.IDTPM.trkAnaNames:
33  if getattr( flags.PhysVal.IDTPM, trkAnaName+".plotTechnicalEfficiencies" ):
34  doTechEff = True
35  break
36  kwargs.setdefault( 'TruthParticleIndexDecoration', 'origTruthIndex' if doTechEff else '' )
37 
38 
39  acc.addEventAlgo( CompFactory.InDetPhysValTruthDecoratorAlg( name, **kwargs ) )
40  return acc
41 
42 
43 def OfflineElectronDecoratorAlgCfg( flags, name="OfflineElectronDecoratorAlg", **kwargs ):
44  acc = ComponentAccumulator()
45  acc.addEventAlgo( CompFactory.IDTPM.OfflineElectronDecoratorAlg( name, **kwargs ) )
46  return acc
47 
48 
49 def OfflineElectronGSFDecoratorAlgCfg( flags, name="OfflineElectronGSFDecoratorAlg", **kwargs ):
50  acc = ComponentAccumulator()
51  kwargs.setdefault( "OfflineTrkParticleContainerName", "GSFTrackParticles" )
52  kwargs.setdefault( "useGSF", True )
53  acc.addEventAlgo( CompFactory.IDTPM.OfflineElectronDecoratorAlg( name, **kwargs ) )
54  return acc
55 
56 
57 def OfflineMuonDecoratorAlgCfg( flags, name="OfflineMuonDecoratorAlg", **kwargs ):
58  acc = ComponentAccumulator()
59  acc.addEventAlgo( CompFactory.IDTPM.OfflineMuonDecoratorAlg( name, **kwargs ) )
60  return acc
61 
62 
63 def OfflineMuonCombDecoratorAlgCfg( flags, name="OfflineMuonDecoratorAlg", **kwargs ):
64  acc = ComponentAccumulator()
65  kwargs.setdefault( "OfflineTrkParticleContainerName", "CombinedMuonTrackParticles" )
66  kwargs.setdefault( "useCombinedMuonTracks", True )
67  acc.addEventAlgo( CompFactory.IDTPM.OfflineMuonDecoratorAlg( name, **kwargs ) )
68  return acc
69 
70 
71 def OfflineTauBDT1prongDecoratorAlgCfg( flags, name="OfflineTauBDT1prongDecoratorAlg", **kwargs ):
72  acc = ComponentAccumulator()
73  kwargs.setdefault( "Prefix", "LinkedTauBDT1prong_" )
74  kwargs.setdefault( "TauType", "BDT" )
75  kwargs.setdefault( "TauNprongs", 1 )
76  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
77  return acc
78 
79 
80 def OfflineTauBDT3prongDecoratorAlgCfg( flags, name="OfflineTauBDT3prongDecoratorAlg", **kwargs ):
81  acc = ComponentAccumulator()
82  kwargs.setdefault( "Prefix", "LinkedTauBDT3prong_" )
83  kwargs.setdefault( "TauType", "BDT" )
84  kwargs.setdefault( "TauNprongs", 3 )
85  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
86  return acc
87 
88 
89 def OfflineTauRNN1prongDecoratorAlgCfg( flags, name="OfflineTauRNN1prongDecoratorAlg", **kwargs ):
90  acc = ComponentAccumulator()
91  kwargs.setdefault( "Prefix", "LinkedTauRNN1prong_" )
92  kwargs.setdefault( "TauType", "RNN" )
93  kwargs.setdefault( "TauNprongs", 1 )
94  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
95  return acc
96 
97 
98 def OfflineTauRNN3prongDecoratorAlgCfg( flags, name="OfflineTauRNN3prongDecoratorAlg", **kwargs ):
99  acc = ComponentAccumulator()
100  kwargs.setdefault( "Prefix", "LinkedTauRNN3prong_" )
101  kwargs.setdefault( "TauType", "RNN" )
102  kwargs.setdefault( "TauNprongs", 3 )
103  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
104  return acc
105 
106 
107 def OfflineObjectDecoratorAlgCfg( flags, name="OfflineObjectDecoratorAlg", **kwargs ):
108  '''
109  create decoration algorithm(s) to decorate offline tracks with a link to
110  the offline object they correspond to in the event reconstruction
111  '''
112  acc = ComponentAccumulator()
113 
114  objStrList = []
115  tauTypeList = []
116  for trkAnaName in flags.PhysVal.IDTPM.trkAnaNames:
117  objStr = getattr( flags.PhysVal.IDTPM, trkAnaName+".SelectOfflineObject" )
118  if objStr : objStrList.append( objStr )
119  tauType = getattr( flags.PhysVal.IDTPM, trkAnaName+".TauType" )
120  if tauType : tauTypeList.append( tauType )
121 
122  if "Electron" in objStrList:
123  acc.merge( OfflineElectronDecoratorAlgCfg(flags) )
124 
125  if "ElectronGSF" in objStrList:
126  acc.merge( OfflineElectronGSFDecoratorAlgCfg(flags) )
127 
128  if "Muon" in objStrList:
129  acc.merge( OfflineMuonDecoratorAlgCfg(flags) )
130 
131  if "MuonComb" in objStrList:
132  acc.merge( OfflineMuonCombDecoratorAlgCfg(flags) )
133 
134  if "Tau" in objStrList:
135  if "BDT" in tauTypeList:
136  acc.merge( OfflineTauBDT1prongDecoratorAlgCfg(flags) )
137  acc.merge( OfflineTauBDT3prongDecoratorAlgCfg(flags) )
138  if "RNN" in tauTypeList:
139  acc.merge( OfflineTauRNN1prongDecoratorAlgCfg(flags) )
140  acc.merge( OfflineTauRNN3prongDecoratorAlgCfg(flags) )
141 
142  return acc
143 
144 
145 def TruthDecoratorAlgCfg( flags, name="TruthDecoratorAlg", **kwargs ):
146  acc = ComponentAccumulator()
147  acc.addEventAlgo( CompFactory.IDTPM.TruthDecoratorAlg( name, **kwargs ) )
148  return acc
InDetAlgorithmConfig.OfflineMuonDecoratorAlgCfg
def OfflineMuonDecoratorAlgCfg(flags, name="OfflineMuonDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:57
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
InDetAlgorithmConfig.OfflineObjectDecoratorAlgCfg
def OfflineObjectDecoratorAlgCfg(flags, name="OfflineObjectDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:107
InDetAlgorithmConfig.OfflineTauBDT3prongDecoratorAlgCfg
def OfflineTauBDT3prongDecoratorAlgCfg(flags, name="OfflineTauBDT3prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:80
InDetAlgorithmConfig.OfflineTauRNN1prongDecoratorAlgCfg
def OfflineTauRNN1prongDecoratorAlgCfg(flags, name="OfflineTauRNN1prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:89
InDetAlgorithmConfig.OfflineTauBDT1prongDecoratorAlgCfg
def OfflineTauBDT1prongDecoratorAlgCfg(flags, name="OfflineTauBDT1prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:71
InDetAlgorithmConfig.OfflineElectronDecoratorAlgCfg
def OfflineElectronDecoratorAlgCfg(flags, name="OfflineElectronDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:43
InDetAlgorithmConfig.TruthHitDecoratorAlgCfg
def TruthHitDecoratorAlgCfg(flags, name="InDetPhysValTruthDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:15
InDetAlgorithmConfig.OfflineElectronGSFDecoratorAlgCfg
def OfflineElectronGSFDecoratorAlgCfg(flags, name="OfflineElectronGSFDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:49
InDetAlgorithmConfig.OfflineMuonCombDecoratorAlgCfg
def OfflineMuonCombDecoratorAlgCfg(flags, name="OfflineMuonDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:63
InDetAlgorithmConfig.OfflineTauRNN3prongDecoratorAlgCfg
def OfflineTauRNN3prongDecoratorAlgCfg(flags, name="OfflineTauRNN3prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:98
InDetAlgorithmConfig.TruthDecoratorAlgCfg
def TruthDecoratorAlgCfg(flags, name="TruthDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:145