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

Functions

 AddTauAugmentationCfg (flags, **kwargs)
 AddTauIDDecorationCfg (flags, **kwargs)
 AddMuonRemovalTauAODReRecoAlgCfg (flags, **kwargs)
 TauThinningCfg (flags, name, **kwargs)

Function Documentation

◆ AddMuonRemovalTauAODReRecoAlgCfg()

python.TauCommonConfig.AddMuonRemovalTauAODReRecoAlgCfg ( flags,
** kwargs )
Configure the MuonRM AOD tau building

Definition at line 223 of file TauCommonConfig.py.

223def AddMuonRemovalTauAODReRecoAlgCfg(flags, **kwargs):
224 """Configure the MuonRM AOD tau building"""
225
226 acc = ComponentAccumulator()
227
228 # get tools from holder
229 import tauRec.TauToolHolder as tauTools
230 tools_mod = []
231 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
232 tools_after = []
233 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
234 tools_after.append( acc.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
235 tools_after.append( acc.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
236 tools_after.append( acc.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
237 tools_after.append( acc.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
238 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
239 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
240 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
241 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
242 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
243 import PanTauAlgs.JobOptions_Main_PanTau as pantau
244 tools_after.append( acc.popToolsAndMerge(pantau.PanTauCfg(flags)) )
245 tools_after.append( acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
246 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
247 tools_after[-1].EventShapeKey = ''
248 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
249 tools_after.append( acc.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
250 tools_after.append( acc.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags,applyLooseTrackSel=True)) )
251 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
252 tools_after.append( acc.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags,applyLooseTrackSel=True )) )
253 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
254 tools_after.append( acc.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
255 TauAODRunnerAlg=CompFactory.getComp("TauAODRunnerAlg")
256 for tool in tools_mod:
257 tool.inAOD = True
258 for tool in tools_after:
259 tool.inAOD = True
260 myTauAODRunnerAlg = TauAODRunnerAlg(
261 name = "MuonRemovalTauAODReRecoAlg",
262 Key_tauOutputContainer = "TauJets_MuonRM",
263 Key_pi0OutputContainer = "TauFinalPi0s_MuonRM",
264 Key_neutralPFOOutputContainer = "TauNeutralParticleFlowObjects_MuonRM",
265 Key_chargedPFOOutputContainer = "TauChargedParticleFlowObjects_MuonRM",
266 Key_hadronicPFOOutputContainer = "TauHadronicParticleFlowObjects_MuonRM",
267 Key_tauTrackOutputContainer = "TauTracks_MuonRM",
268 Key_vertexOutputContainer = "TauSecondaryVertices_MuonRM",
269 modificationTools = tools_mod,
270 officialTools = tools_after
271 )
272 acc.addEventAlgo(myTauAODRunnerAlg)
273 return acc
274
275
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.

◆ AddTauAugmentationCfg()

python.TauCommonConfig.AddTauAugmentationCfg ( flags,
** kwargs )

Definition at line 6 of file TauCommonConfig.py.

6def AddTauAugmentationCfg(flags, **kwargs):
7
8 prefix = kwargs["prefix"]
9 kwargs.setdefault("TauContainerName", "TauJets")
10 kwargs.setdefault("doRNNVeryLoose", False)
11 kwargs.setdefault("doRNNLoose", False)
12 kwargs.setdefault("doRNNMedium", False)
13 kwargs.setdefault("doRNNTight", False)
14 kwargs.setdefault("doGNTauVeryLoose", False)
15 kwargs.setdefault("doGNTauLoose", False)
16 kwargs.setdefault("doGNTauMedium", False)
17 kwargs.setdefault("doGNTauTight", False)
18
19 acc = ComponentAccumulator()
20
21 # tau selection relies on RNN electron veto, we must decorate the fixed eveto WPs before applying tau selection
22 acc.merge(AddTauIDDecorationCfg(flags, TauContainerName=kwargs["TauContainerName"]))
23
24 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import AsgSelectionToolWrapperCfg
25 from TauAnalysisTools.TauAnalysisToolsConfig import TauSelectionToolCfg
26
27 TauAugmentationTools = []
28
29 # RNN TauID WPs
30 if kwargs["doRNNVeryLoose"]:
31 TauSelectorRNNVeryLoose = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
32 name = 'TauSelectorRNNVeryLoose',
33 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_veryloose_noeleid.conf'))
34 acc.addPublicTool(TauSelectorRNNVeryLoose)
35
36 TauRNNVeryLooseWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
37 name = "TauRNNVeryLooseWrapper",
38 AsgSelectionTool = TauSelectorRNNVeryLoose,
39 StoreGateEntryName = "DFTauRNNVeryLoose",
40 ContainerName = kwargs["TauContainerName"]))
41 TauAugmentationTools.append(TauRNNVeryLooseWrapper)
42
43 if kwargs["doRNNLoose"]:
44 TauSelectorRNNLoose = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
45 name = 'TauSelectorRNNLoose',
46 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_loose_noeleid.conf'))
47 acc.addPublicTool(TauSelectorRNNLoose)
48
49 TauRNNLooseWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
50 name = "TauRNNLooseWrapper",
51 AsgSelectionTool = TauSelectorRNNLoose,
52 StoreGateEntryName = "DFTauRNNLoose",
53 ContainerName = kwargs["TauContainerName"]))
54 TauAugmentationTools.append(TauRNNLooseWrapper)
55
56 if kwargs["doRNNMedium"]:
57 TauSelectorRNNMedium = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
58 name = 'TauSelectorRNNMedium',
59 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_medium_noeleid.conf'))
60 acc.addPublicTool(TauSelectorRNNMedium)
61
62 TauRNNMediumWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
63 name = "TauRNNMediumWrapper",
64 AsgSelectionTool = TauSelectorRNNMedium,
65 StoreGateEntryName = "DFTauRNNMedium",
66 ContainerName = kwargs["TauContainerName"]))
67 TauAugmentationTools.append(TauRNNMediumWrapper)
68
69 if kwargs["doRNNTight"]:
70 TauSelectorRNNTight = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
71 name = 'TauSelectorRNNTight',
72 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_tight_noeleid.conf'))
73 acc.addPublicTool(TauSelectorRNNTight)
74
75 TauRNNTightWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
76 name = "TauRNNTightWrapper",
77 AsgSelectionTool = TauSelectorRNNTight,
78 StoreGateEntryName = "DFTauRNNTight",
79 ContainerName = kwargs["TauContainerName"]))
80 TauAugmentationTools.append(TauRNNTightWrapper)
81
82 # GNTau TauID WPs
83 if kwargs["doGNTauVeryLoose"]:
84 TauSelectorGNTauVeryLoose = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
85 name = 'TauSelectorGNTauVeryLoose',
86 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_gntau_veryloose_noeleid.conf'))
87 acc.addPublicTool(TauSelectorGNTauVeryLoose)
88
89 TauGNTauVeryLooseWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
90 name = "TauGNTauVeryLooseWrapper",
91 AsgSelectionTool = TauSelectorGNTauVeryLoose,
92 StoreGateEntryName = "DFTauGNTauVeryLoose",
93 ContainerName = kwargs["TauContainerName"]))
94 TauAugmentationTools.append(TauGNTauVeryLooseWrapper)
95
96
97 if kwargs["doGNTauLoose"]:
98 TauSelectorGNTauLoose = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
99 name = 'TauSelectorGNTauLoose',
100 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_gntau_loose_noeleid.conf'))
101 acc.addPublicTool(TauSelectorGNTauLoose)
102
103 TauGNTauLooseWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
104 name = "TauGNTauLooseWrapper",
105 AsgSelectionTool = TauSelectorGNTauLoose,
106 StoreGateEntryName = "DFTauGNTauLoose",
107 ContainerName = kwargs["TauContainerName"]))
108 TauAugmentationTools.append(TauGNTauLooseWrapper)
109
110 if kwargs["doGNTauMedium"]:
111 TauSelectorGNTauMedium = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
112 name = 'TauSelectorGNTauMedium',
113 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_gntau_medium_noeleid.conf'))
114 acc.addPublicTool(TauSelectorGNTauMedium)
115
116 TauGNTauMediumWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
117 name = "TauGNTauMediumWrapper",
118 AsgSelectionTool = TauSelectorGNTauMedium,
119 StoreGateEntryName = "DFTauGNTauMedium",
120 ContainerName = kwargs["TauContainerName"]))
121 TauAugmentationTools.append(TauGNTauMediumWrapper)
122
123 if kwargs["doGNTauTight"]:
124 TauSelectorGNTauTight = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
125 name = 'TauSelectorGNTauTight',
126 ConfigPath = 'TauAnalysisAlgorithms/tau_selection_gntau_tight_noeleid.conf'))
127 acc.addPublicTool(TauSelectorGNTauTight)
128
129 TauGNTauTightWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
130 name = "TauGNTauTightWrapper",
131 AsgSelectionTool = TauSelectorGNTauTight,
132 StoreGateEntryName = "DFTauGNTauTight",
133 ContainerName = kwargs["TauContainerName"]))
134 TauAugmentationTools.append(TauGNTauTightWrapper)
135
136
137 if TauAugmentationTools:
138 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
139 acc.addEventAlgo(CommonAugmentation(f"{prefix}_TauAugmentationKernel", AugmentationTools = TauAugmentationTools))
140
141 return acc
142

◆ AddTauIDDecorationCfg()

python.TauCommonConfig.AddTauIDDecorationCfg ( flags,
** kwargs )
Decorate tau ID scores and working points

Definition at line 143 of file TauCommonConfig.py.

143def AddTauIDDecorationCfg(flags, **kwargs):
144 """Decorate tau ID scores and working points"""
145
146 #kwargs.setdefault("evetoFix", True)
147 #kwargs.setdefault("GNNTauID", True)
148 tauContainerKey = kwargs.setdefault("TauContainerName", "TauJets")
149 #kwargs.setdefault("prefix", kwargs['TauContainerName'])
150
151 acc = ComponentAccumulator()
152
153 import tauRec.TauToolHolder as tauTools
154 tools = []
155 doEvetoWP = False
156 scoreNames = []
157 WPNames = []
158
159 #def cacheToolProperties(tool):
160 # doEvetoWP = tool.UseAbsEta
161 # scoreName = [tool.ScoreName] if tools[-1].ScoreName != "RNNEleScore" else []
162 # wpName = tool.DecorWPNames
163
164 if kwargs.pop('evetoFix', True):
165 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
166 # Cache tool properties
167 doEvetoWP |= tools[-1].UseAbsEta
168 # The original RNNEleScore should not be overriden
169 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
170 scoreNames.append(tools[-1].NewScoreName)
171 WPNames += tools[-1].DecorWPNames
172
173 if kwargs.pop('GNNTauID', True):
174 # vertex-corrected clusters must be rebuilt for tau ID
175 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
176 # Add in GNTau!
177 # evaluate GNTau score for v0prune model
178 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=True)) )
179 # evaluate GNTau score for v1trunc model
180 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,1,applyLooseTrackSel=True)) )
181 # set WPs decision for v0prune model
182 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,0)) )
183 # Cache tool properties
184 doEvetoWP |= tools[-1].UseAbsEta
185 # The original RNNEleScore should not be overriden
186 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
187 scoreNames.append(tools[-1].NewScoreName)
188 WPNames += tools[-1].DecorWPNames
189
190 # set WPs decision for v1trunc model
191 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,1)) )
192 # Cache tool properties
193 doEvetoWP |= tools[-1].UseAbsEta
194 # The original RNNEleScore should not be overriden
195 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
196 scoreNames.append(tools[-1].NewScoreName)
197 WPNames += tools[-1].DecorWPNames
198
199 if tools:
200 kwargs.setdefault("DoEvetoWP", doEvetoWP)
201 kwargs.setdefault("ScoreDecorationKeys", [tauContainerKey + "." + score for score in scoreNames])
202 kwargs.setdefault("WPDecorationKeys", [tauContainerKey + "." + WP for WP in WPNames])
203 # FIXME The above syntax can be simplified once WriteDecorHandleKeyArray is updated
204
205 for tool in tools:
206 acc.addPublicTool(tool)
207 kwargs.setdefault("TauIDTools", tools)
208
209 TauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper
210 TauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
211
212 prefix = kwargs.pop('prefix', tauContainerKey)
213 tauIDDecoratorWrapper = TauIDDecoratorWrapper(name = f"{prefix}_TauIDDecoratorWrapper",
214 **kwargs)
215 print("PXQW TauIDDecoratorsWrapper: " + str(tauIDDecoratorWrapper))
216 acc.addPublicTool(tauIDDecoratorWrapper)
217 acc.addEventAlgo(TauIDDecoratorKernel(name = f"{prefix}_TauIDDecorKernel",
218 AugmentationTools = [tauIDDecoratorWrapper]))
219
220 return acc
221
222# TauJets_MuonRM steering
void print(char *figname, TCanvas *c1)

◆ TauThinningCfg()

python.TauCommonConfig.TauThinningCfg ( flags,
name,
** kwargs )
configure tau thinning

Definition at line 276 of file TauCommonConfig.py.

276def TauThinningCfg(flags, name, **kwargs):
277 """configure tau thinning"""
278
279 acc = ComponentAccumulator()
280 TauThinningTool = CompFactory.DerivationFramework.TauThinningTool
281 acc.addPublicTool(TauThinningTool(name, **kwargs), primary=True)
282 return acc