ATLAS Offline Software
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="TruthHitDecoratorAlg", **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  acc.addEventAlgo( CompFactory.IDTPM.TruthHitDecoratorAlg( name, **kwargs ) )
28  return acc
29 
30 
31 def OfflineElectronDecoratorAlgCfg( flags, name="OfflineElectronDecoratorAlg", **kwargs ):
32  acc = ComponentAccumulator()
33  acc.addEventAlgo( CompFactory.IDTPM.OfflineElectronDecoratorAlg( name, **kwargs ) )
34  return acc
35 
36 
37 def OfflineElectronGSFDecoratorAlgCfg( flags, name="OfflineElectronGSFDecoratorAlg", **kwargs ):
38  acc = ComponentAccumulator()
39  kwargs.setdefault( "OfflineTrkParticleContainerName", "GSFTrackParticles" )
40  kwargs.setdefault( "useGSF", True )
41  acc.addEventAlgo( CompFactory.IDTPM.OfflineElectronDecoratorAlg( name, **kwargs ) )
42  return acc
43 
44 
45 def OfflineMuonDecoratorAlgCfg( flags, name="OfflineMuonDecoratorAlg", **kwargs ):
46  acc = ComponentAccumulator()
47  acc.addEventAlgo( CompFactory.IDTPM.OfflineMuonDecoratorAlg( name, **kwargs ) )
48  return acc
49 
50 
51 def OfflineMuonCombDecoratorAlgCfg( flags, name="OfflineMuonDecoratorAlg", **kwargs ):
52  acc = ComponentAccumulator()
53  kwargs.setdefault( "OfflineTrkParticleContainerName", "CombinedMuonTrackParticles" )
54  kwargs.setdefault( "useCombinedMuonTracks", True )
55  acc.addEventAlgo( CompFactory.IDTPM.OfflineMuonDecoratorAlg( name, **kwargs ) )
56  return acc
57 
58 
59 def OfflineTauBDT1prongDecoratorAlgCfg( flags, name="OfflineTauBDT1prongDecoratorAlg", **kwargs ):
60  acc = ComponentAccumulator()
61  kwargs.setdefault( "Prefix", "LinkedTauBDT1prong_" )
62  kwargs.setdefault( "TauType", "BDT" )
63  kwargs.setdefault( "TauNprongs", 1 )
64  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
65  return acc
66 
67 
68 def OfflineTauBDT3prongDecoratorAlgCfg( flags, name="OfflineTauBDT3prongDecoratorAlg", **kwargs ):
69  acc = ComponentAccumulator()
70  kwargs.setdefault( "Prefix", "LinkedTauBDT3prong_" )
71  kwargs.setdefault( "TauType", "BDT" )
72  kwargs.setdefault( "TauNprongs", 3 )
73  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
74  return acc
75 
76 
77 def OfflineTauRNN1prongDecoratorAlgCfg( flags, name="OfflineTauRNN1prongDecoratorAlg", **kwargs ):
78  acc = ComponentAccumulator()
79  kwargs.setdefault( "Prefix", "LinkedTauRNN1prong_" )
80  kwargs.setdefault( "TauType", "RNN" )
81  kwargs.setdefault( "TauNprongs", 1 )
82  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
83  return acc
84 
85 
86 def OfflineTauRNN3prongDecoratorAlgCfg( flags, name="OfflineTauRNN3prongDecoratorAlg", **kwargs ):
87  acc = ComponentAccumulator()
88  kwargs.setdefault( "Prefix", "LinkedTauRNN3prong_" )
89  kwargs.setdefault( "TauType", "RNN" )
90  kwargs.setdefault( "TauNprongs", 3 )
91  acc.addEventAlgo( CompFactory.IDTPM.OfflineTauDecoratorAlg( name, **kwargs ) )
92  return acc
93 
94 
95 def OfflineObjectDecoratorAlgCfg( flags, name="OfflineObjectDecoratorAlg", **kwargs ):
96  '''
97  create decoration algorithm(s) to decorate offline tracks with a link to
98  the offline object they correspond to in the event reconstruction
99  '''
100  acc = ComponentAccumulator()
101 
102  objStrList = []
103  tauTypeList = []
104  for trkAnaName in flags.PhysVal.IDTPM.trkAnaNames:
105  objStr = getattr( flags.PhysVal.IDTPM, trkAnaName+".SelectOfflineObject" )
106  if objStr : objStrList.append( objStr )
107  tauType = getattr( flags.PhysVal.IDTPM, trkAnaName+".TauType" )
108  if tauType : tauTypeList.append( tauType )
109 
110  if "Electron" in objStrList:
111  acc.merge( OfflineElectronDecoratorAlgCfg(flags) )
112 
113  if "ElectronGSF" in objStrList:
114  acc.merge( OfflineElectronGSFDecoratorAlgCfg(flags) )
115 
116  if "Muon" in objStrList:
117  acc.merge( OfflineMuonDecoratorAlgCfg(flags) )
118 
119  if "MuonComb" in objStrList:
120  acc.merge( OfflineMuonCombDecoratorAlgCfg(flags) )
121 
122  if "Tau" in objStrList:
123  if "BDT" in tauTypeList:
124  acc.merge( OfflineTauBDT1prongDecoratorAlgCfg(flags) )
125  acc.merge( OfflineTauBDT3prongDecoratorAlgCfg(flags) )
126  if "RNN" in tauTypeList:
127  acc.merge( OfflineTauRNN1prongDecoratorAlgCfg(flags) )
128  acc.merge( OfflineTauRNN3prongDecoratorAlgCfg(flags) )
129 
130  return acc
InDetAlgorithmConfig.OfflineMuonDecoratorAlgCfg
def OfflineMuonDecoratorAlgCfg(flags, name="OfflineMuonDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:45
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:95
InDetAlgorithmConfig.OfflineTauBDT3prongDecoratorAlgCfg
def OfflineTauBDT3prongDecoratorAlgCfg(flags, name="OfflineTauBDT3prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:68
InDetAlgorithmConfig.TruthHitDecoratorAlgCfg
def TruthHitDecoratorAlgCfg(flags, name="TruthHitDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:15
InDetAlgorithmConfig.OfflineTauRNN1prongDecoratorAlgCfg
def OfflineTauRNN1prongDecoratorAlgCfg(flags, name="OfflineTauRNN1prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:77
InDetAlgorithmConfig.OfflineTauBDT1prongDecoratorAlgCfg
def OfflineTauBDT1prongDecoratorAlgCfg(flags, name="OfflineTauBDT1prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:59
InDetAlgorithmConfig.OfflineElectronDecoratorAlgCfg
def OfflineElectronDecoratorAlgCfg(flags, name="OfflineElectronDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:31
InDetAlgorithmConfig.OfflineElectronGSFDecoratorAlgCfg
def OfflineElectronGSFDecoratorAlgCfg(flags, name="OfflineElectronGSFDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:37
InDetAlgorithmConfig.OfflineMuonCombDecoratorAlgCfg
def OfflineMuonCombDecoratorAlgCfg(flags, name="OfflineMuonDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:51
InDetAlgorithmConfig.OfflineTauRNN3prongDecoratorAlgCfg
def OfflineTauRNN3prongDecoratorAlgCfg(flags, name="OfflineTauRNN3prongDecoratorAlg", **kwargs)
Definition: InDetAlgorithmConfig.py:86