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

Functions

 AddTauAugmentationCfg (flags, wp="GNTauVeryLoose", **kwargs)
 AddTauIDDecorationCfg (flags, **kwargs)
 AddTauTESCompatibilityDecorationCfg (flags, **kwargs)
 AddTauIDDisplacedDecorationCfg (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 188 of file TauCommonConfig.py.

188def AddMuonRemovalTauAODReRecoAlgCfg(flags, **kwargs):
189 """Configure the MuonRM AOD tau building"""
190
191 acc = ComponentAccumulator()
192 inputTauJets = kwargs.setdefault("Key_tauContainer", "TauJets")
193 kwargs.setdefault("Key_tauOutputContainer", "TauJets_MuonRM")
194 kwargs.setdefault("Key_pi0OutputContainer", "TauFinalPi0s_MuonRM")
195 kwargs.setdefault("Key_neutralPFOOutputContainer", "TauNeutralParticleFlowObjects_MuonRM")
196 kwargs.setdefault("Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects_MuonRM")
197 kwargs.setdefault("Key_hadronicPFOOutputContainer", "TauHadronicParticleFlowObjects_MuonRM")
198 kwargs.setdefault("Key_tauTrackOutputContainer", "TauTracks_MuonRM")
199 kwargs.setdefault("Key_vertexOutputContainer", "TauSecondaryVertices_MuonRM")
200
201 # get tools from holder
202 import tauRec.TauToolHolder as tauTools
203 if "modificationTools" not in kwargs:
204 tools_mod = []
205 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
206 for tool in tools_mod:
207 tool.inAOD = True
208 kwargs.setdefault("modificationTools", tools_mod)
209
210 if "officialTools" not in kwargs:
211 tools_after = []
212 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
213 tools_after.append( acc.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
214 tools_after.append( acc.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
215 tools_after.append( acc.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
216 tools_after.append( acc.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
217 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
218 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
219 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
220 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
221 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
222 import PanTauAlgs.JobOptions_Main_PanTau as pantau
223 tools_after.append( acc.popToolsAndMerge(pantau.PanTauCfg(flags)) )
224 tools_after.append( acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
225 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
226 tools_after[-1].EventShapeKey = ''
227 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
228 tools_after.append( acc.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
229 tools_after.append( acc.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags,applyLooseTrackSel=True)) )
230 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
231 tools_after.append( acc.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags,applyLooseTrackSel=True )) )
232 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
233 tools_after.append( acc.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
234 for tool in tools_after:
235 tool.inAOD = True
236 kwargs.setdefault("officialTools", tools_after)
237
238 kwargs.setdefault("ExtraInputs",
239 [ ( 'xAOD::TauJetContainer' , "StoreGateSvc+{baseName}.truthJetLink".format(baseName = inputTauJets)),
240 ( 'xAOD::TauJetContainer' , "StoreGateSvc+{baseName}.truthParticleLink".format(baseName = inputTauJets)) ] )
241 TauAODRunnerAlg=CompFactory.getComp("TauAODRunnerAlg")
242 myTauAODRunnerAlg = TauAODRunnerAlg(
243 name = "MuonRemovalTauAODReRecoAlg",
244 **kwargs
245 )
246 acc.addEventAlgo(myTauAODRunnerAlg)
247 return acc
248
249
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.

◆ AddTauAugmentationCfg()

python.TauCommonConfig.AddTauAugmentationCfg ( flags,
wp = "GNTauVeryLoose",
** kwargs )

Definition at line 6 of file TauCommonConfig.py.

6def AddTauAugmentationCfg(flags, wp="GNTauVeryLoose", **kwargs):
7 kwargs.setdefault("TauContainerName", "TauJets")
8
9 acc = ComponentAccumulator()
10
11 # tau selection relies on RNN electron veto, we must decorate the fixed eveto WPs before applying tau selection
12 acc.merge(AddTauIDDecorationCfg(flags, TauContainerName=kwargs["TauContainerName"]))
13
14 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import AsgSelectionToolWrapperCfg
15 from TauAnalysisTools.TauAnalysisToolsConfig import TauSelectionToolCfg
16
17 TauAugmentationTools = []
18
19 config = {
20 "GNTauVeryLoose" : "TauAnalysisAlgorithms/tau_selection_gntau_veryloose_noeleid.conf",
21 "GNTauLoose" : "TauAnalysisAlgorithms/tau_selection_gntau_loose_noeleid.conf",
22 "GNTauMedium" : "TauAnalysisAlgorithms/tau_selection_gntau_medium_noeleid.conf",
23 "GNTauTight" : "TauAnalysisAlgorithms/tau_selection_gntau_tight_noeleid.conf",
24 }
25
26 TauSelector = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
27 name = f'TauSelector{wp}',
28 ConfigPath = config[wp]))
29 acc.addPublicTool(TauSelector)
30
31 TauWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
32 name = f"Tau{wp}Wrapper",
33 AsgSelectionTool = TauSelector,
34 StoreGateEntryName = f"DFTau{wp}",
35 ContainerName = kwargs["TauContainerName"]))
36 TauAugmentationTools.append(TauWrapper)
37
38 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
39 acc.addEventAlgo(CommonAugmentation(f"Tau{wp}AugmentationKernel", AugmentationTools = TauAugmentationTools))
40 return acc
41

◆ AddTauIDDecorationCfg()

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

Definition at line 42 of file TauCommonConfig.py.

42def AddTauIDDecorationCfg(flags, **kwargs):
43 """Decorate tau ID scores and working points"""
44
45 #kwargs.setdefault("evetoFix", True)
46 #kwargs.setdefault("GNNTauID", True)
47 tauContainerKey = kwargs.setdefault("TauContainerName", "TauJets")
48 #kwargs.setdefault("prefix", kwargs['TauContainerName'])
49
50 acc = ComponentAccumulator()
51
52 import tauRec.TauToolHolder as tauTools
53 tools = []
54 doEvetoWP = False
55 scoreNames = []
56 WPNames = []
57
58 #def cacheToolProperties(tool):
59 # doEvetoWP = tool.UseAbsEta
60 # scoreName = [tool.ScoreName] if tools[-1].ScoreName != "RNNEleScore" else []
61 # wpName = tool.DecorWPNames
62
63 if kwargs.pop('evetoFix', True):
64 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
65 # Cache tool properties
66 doEvetoWP |= tools[-1].UseAbsEta
67 # The original RNNEleScore should not be overriden
68 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
69 scoreNames.append(tools[-1].NewScoreName)
70 WPNames += tools[-1].DecorWPNames
71
72 if kwargs.pop('GNNTauID', True):
73 # vertex-corrected clusters must be rebuilt for tau ID
74 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
75 # Add in GNTau!
76 # evaluate GNTau score for v0prune model
77 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=True)) )
78 # evaluate GNTau score for v1trunc model
79 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,1,applyLooseTrackSel=True)) )
80 # set WPs decision for v0prune model
81 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,0)) )
82 # Cache tool properties
83 doEvetoWP |= tools[-1].UseAbsEta
84 # The original RNNEleScore should not be overriden
85 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
86 scoreNames.append(tools[-1].NewScoreName)
87 WPNames += tools[-1].DecorWPNames
88
89 # set WPs decision for v1trunc model
90 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,1)) )
91 # Cache tool properties
92 doEvetoWP |= tools[-1].UseAbsEta
93 # The original RNNEleScore should not be overriden
94 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
95 scoreNames.append(tools[-1].NewScoreName)
96 WPNames += tools[-1].DecorWPNames
97
98 if tools:
99 kwargs.setdefault("DoEvetoWP", doEvetoWP)
100 kwargs.setdefault("ScoreDecorationKeys", scoreNames)
101 kwargs.setdefault("WPDecorationKeys", WPNames)
102
103 for tool in tools:
104 acc.addPublicTool(tool)
105 kwargs.setdefault("TauIDTools", tools)
106
107 TauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper
108 TauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
109
110 prefix = kwargs.pop('prefix', tauContainerKey)
111 tauIDDecoratorWrapper = TauIDDecoratorWrapper(name = f"{prefix}_TauIDDecoratorWrapper",
112 **kwargs)
113 print("PXQW TauIDDecoratorsWrapper: " + str(tauIDDecoratorWrapper))
114 acc.addPublicTool(tauIDDecoratorWrapper)
115 acc.addEventAlgo(TauIDDecoratorKernel(name = f"{prefix}_TauIDDecorKernel",
116 AugmentationTools = [tauIDDecoratorWrapper]))
117
118 return acc
119
120
void print(char *figname, TCanvas *c1)

◆ AddTauIDDisplacedDecorationCfg()

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

Definition at line 148 of file TauCommonConfig.py.

148def AddTauIDDisplacedDecorationCfg(flags, **kwargs):
149 """Decorate displaced tau ID scores and working points. Follows AddTauIDDisplacedDecorationCfg()"""
150 tauContainerKey = kwargs.setdefault("TauContainerName", "TauJetsLRT")
151
152 flags_TauLRT = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauLRT")
153
154 acc = ComponentAccumulator()
155
156 scoreNames = []
157
158 import tauRec.TauToolHolder as tauTools
159 tool_prompt = acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=True))
160 scoreNames += ["GNTauScore_v0prune"]
161
162 tool_displaced = acc.popToolsAndMerge(tauTools.TauGNNDisplacedEvaluatorCfg(flags_TauLRT, tauContainerName=tauContainerKey))
163 scoreNames += ["GNdTauScore", "GNdTauProbTau", "GNdTauProbJet"]
164
165 kwargs.setdefault("ScoreDecorationKeys", scoreNames)
166 kwargs.setdefault("WPDecorationKeys", [])
167
168 acc.addPublicTool(tool_prompt)
169 acc.addPublicTool(tool_displaced)
170 kwargs.setdefault("TauIDTools", [tool_prompt, tool_displaced])
171
172 tauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper(
173 name = f"{tauContainerKey}_TauIDDisplacedDecoratorWrapper",
174 **kwargs,
175 )
176 acc.addPublicTool(tauIDDecoratorWrapper)
177
178 prefix = kwargs.pop('prefix', tauContainerKey)
179 acc.addEventAlgo(
180 CompFactory.DerivationFramework.CommonAugmentation(
181 name = f"{prefix}_TauDisplacedIDDecorKernel",
182 AugmentationTools = [tauIDDecoratorWrapper],
183 )
184 )
185 return acc
186
187# TauJets_MuonRM steering

◆ AddTauTESCompatibilityDecorationCfg()

python.TauCommonConfig.AddTauTESCompatibilityDecorationCfg ( flags,
** kwargs )
Decorate taus with a flag to check if Calo and MVA TES are compatible 

Definition at line 121 of file TauCommonConfig.py.

121def AddTauTESCompatibilityDecorationCfg(flags, **kwargs):
122 """Decorate taus with a flag to check if Calo and MVA TES are compatible """
123
124 acc = ComponentAccumulator()
125
126 import tauRec.TauToolHolder as tauTools
127
128 tauCombinedTESTool = acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(
129 flags,
130 ))
131
132 acc.addPublicTool(tauCombinedTESTool)
133 kwargs.setdefault("TauCombinedTESTool", tauCombinedTESTool)
134 kwargs.setdefault("TauContainerName", "TauJets")
135
136 prefix = kwargs["TauContainerName"]
137 TauCombinedTESWrapper = CompFactory.DerivationFramework.TauCombinedTESWrapper
138 TauCombinedTESKernel = CompFactory.DerivationFramework.CommonAugmentation
139
140 TauCombinedTESWrapper = TauCombinedTESWrapper( name = f"{prefix}_TauCombinedTES", **kwargs )
141 acc.addPublicTool(TauCombinedTESWrapper)
142 acc.addEventAlgo(TauCombinedTESKernel(name = "TauCombinedTESKernel",
143 AugmentationTools = [TauCombinedTESWrapper]))
144 return acc
145
146
147# Attach displaced Tau ID scores

◆ TauThinningCfg()

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

Definition at line 250 of file TauCommonConfig.py.

250def TauThinningCfg(flags, name, **kwargs):
251 """configure tau thinning"""
252
253 acc = ComponentAccumulator()
254 TauThinningTool = CompFactory.DerivationFramework.TauThinningTool
255 acc.addPublicTool(TauThinningTool(name, **kwargs), primary=True)
256 return acc