3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
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)
24 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import AsgSelectionToolWrapperCfg
25 from TauAnalysisTools.TauAnalysisToolsConfig
import TauSelectionToolCfg
27 TauAugmentationTools = []
30 if kwargs[
"doRNNVeryLoose"]:
32 name =
'TauSelectorRNNVeryLoose',
33 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_veryloose_noeleid.conf'))
34 acc.addPublicTool(TauSelectorRNNVeryLoose)
37 name =
"TauRNNVeryLooseWrapper",
38 AsgSelectionTool = TauSelectorRNNVeryLoose,
39 StoreGateEntryName =
"DFTauRNNVeryLoose",
40 ContainerName = kwargs[
"TauContainerName"]))
41 TauAugmentationTools.append(TauRNNVeryLooseWrapper)
43 if kwargs[
"doRNNLoose"]:
45 name =
'TauSelectorRNNLoose',
46 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_loose_noeleid.conf'))
47 acc.addPublicTool(TauSelectorRNNLoose)
50 name =
"TauRNNLooseWrapper",
51 AsgSelectionTool = TauSelectorRNNLoose,
52 StoreGateEntryName =
"DFTauRNNLoose",
53 ContainerName = kwargs[
"TauContainerName"]))
54 TauAugmentationTools.append(TauRNNLooseWrapper)
56 if kwargs[
"doRNNMedium"]:
58 name =
'TauSelectorRNNMedium',
59 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_medium_noeleid.conf'))
60 acc.addPublicTool(TauSelectorRNNMedium)
63 name =
"TauRNNMediumWrapper",
64 AsgSelectionTool = TauSelectorRNNMedium,
65 StoreGateEntryName =
"DFTauRNNMedium",
66 ContainerName = kwargs[
"TauContainerName"]))
67 TauAugmentationTools.append(TauRNNMediumWrapper)
69 if kwargs[
"doRNNTight"]:
71 name =
'TauSelectorRNNTight',
72 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_tight_noeleid.conf'))
73 acc.addPublicTool(TauSelectorRNNTight)
76 name =
"TauRNNTightWrapper",
77 AsgSelectionTool = TauSelectorRNNTight,
78 StoreGateEntryName =
"DFTauRNNTight",
79 ContainerName = kwargs[
"TauContainerName"]))
80 TauAugmentationTools.append(TauRNNTightWrapper)
83 if kwargs[
"doGNTauVeryLoose"]:
85 name =
'TauSelectorGNTauVeryLoose',
86 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_gntau_veryloose_noeleid.conf'))
87 acc.addPublicTool(TauSelectorGNTauVeryLoose)
90 name =
"TauGNTauVeryLooseWrapper",
91 AsgSelectionTool = TauSelectorGNTauVeryLoose,
92 StoreGateEntryName =
"DFTauGNTauVeryLoose",
93 ContainerName = kwargs[
"TauContainerName"]))
94 TauAugmentationTools.append(TauGNTauVeryLooseWrapper)
97 if kwargs[
"doGNTauLoose"]:
99 name =
'TauSelectorGNTauLoose',
100 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_gntau_loose_noeleid.conf'))
101 acc.addPublicTool(TauSelectorGNTauLoose)
104 name =
"TauGNTauLooseWrapper",
105 AsgSelectionTool = TauSelectorGNTauLoose,
106 StoreGateEntryName =
"DFTauGNTauLoose",
107 ContainerName = kwargs[
"TauContainerName"]))
108 TauAugmentationTools.append(TauGNTauLooseWrapper)
110 if kwargs[
"doGNTauMedium"]:
112 name =
'TauSelectorGNTauMedium',
113 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_gntau_medium_noeleid.conf'))
114 acc.addPublicTool(TauSelectorGNTauMedium)
117 name =
"TauGNTauMediumWrapper",
118 AsgSelectionTool = TauSelectorGNTauMedium,
119 StoreGateEntryName =
"DFTauGNTauMedium",
120 ContainerName = kwargs[
"TauContainerName"]))
121 TauAugmentationTools.append(TauGNTauMediumWrapper)
123 if kwargs[
"doGNTauTight"]:
125 name =
'TauSelectorGNTauTight',
126 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_gntau_tight_noeleid.conf'))
127 acc.addPublicTool(TauSelectorGNTauTight)
130 name =
"TauGNTauTightWrapper",
131 AsgSelectionTool = TauSelectorGNTauTight,
132 StoreGateEntryName =
"DFTauGNTauTight",
133 ContainerName = kwargs[
"TauContainerName"]))
134 TauAugmentationTools.append(TauGNTauTightWrapper)
137 if TauAugmentationTools:
138 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
139 acc.addEventAlgo(CommonAugmentation(f
"{prefix}_TauAugmentationKernel", AugmentationTools = TauAugmentationTools))
146 """Configure the low-pt di-tau building"""
150 from JetRecConfig.JetRecConfig
import JetRecCfg
151 from JetRecConfig.StandardLargeRJets
import AntiKt10LCTopo
152 acc.merge(
JetRecCfg(flags,AntiKt10LCTopo))
154 from DiTauRec.DiTauBuilderConfig
import DiTauBuilderCfg
155 acc.merge(
DiTauBuilderCfg(flags, name=
"DiTauLowPtBuilder", doLowPt=
True))
160 """Decorate ditau ID scores """
164 import DiTauRec.DiTauToolsConfig
as DiTauTools
166 diTauOnnxScoreCalculator = acc.popToolsAndMerge(DiTauTools.DiTauOnnxScoreCalculatorCfg(
168 onnxModelPath =
"TrigTauRec/00-11-02/dev/boosted_ditau_omni_model.onnx",
171 acc.addPublicTool(diTauOnnxScoreCalculator)
173 DiTauIDDecoratorWrapper = CompFactory.DerivationFramework.DiTauIDDecoratorWrapper
174 DiTauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
176 DiTauIDDecoratorWrapper = DiTauIDDecoratorWrapper(name =
"DiTauIDDecoratorWrapper",
177 DiTauContainerName = kwargs[
'DiTauContainerName'],
178 DiTauOnnxDiscriminantTool = diTauOnnxScoreCalculator)
180 acc.addPublicTool(DiTauIDDecoratorWrapper)
181 acc.addEventAlgo(DiTauIDDecoratorKernel(name =
"DiTauIDDecorKernel",
182 AugmentationTools = [DiTauIDDecoratorWrapper]))
187 """Decorate tau ID scores and working points"""
189 kwargs.setdefault(
"evetoFix",
True)
190 kwargs.setdefault(
"GNNTauID",
True)
191 kwargs.setdefault(
"TauContainerName",
"TauJets")
192 kwargs.setdefault(
"prefix", kwargs[
'TauContainerName'])
196 import tauRec.TauToolHolder
as tauTools
199 if kwargs[
'evetoFix']:
200 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNFixCfg(flags)) )
202 if kwargs[
'GNNTauID']:
204 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
206 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=
True)) )
207 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,1,applyLooseTrackSel=
True)) )
208 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,0)) )
209 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,1)) )
213 acc.addPublicTool(tool)
215 TauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper
216 TauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
218 prefix = kwargs[
'prefix']
219 tauIDDecoratorWrapper = TauIDDecoratorWrapper(name = f
"{prefix}_TauIDDecoratorWrapper",
220 TauContainerName = kwargs[
'TauContainerName'],
223 acc.addPublicTool(tauIDDecoratorWrapper)
224 acc.addEventAlgo(TauIDDecoratorKernel(name = f
"{prefix}_TauIDDecorKernel",
225 AugmentationTools = [tauIDDecoratorWrapper]))
231 """Decorate DiTau charge"""
233 kwargs.setdefault(
"DiTauContainerName",
"DiTauJets")
234 kwargs.setdefault(
"prefix", kwargs[
'DiTauContainerName'])
238 DiTauChargeDecorator = CompFactory.DerivationFramework.DiTauChargeDecorator
239 DiTauChargeDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
241 prefix = kwargs[
'prefix']
242 diTauChargeDecorator = DiTauChargeDecorator(name = f
"{prefix}_DiTauChargeDecorator",
243 DiTauContainerName = kwargs[
'DiTauContainerName'])
244 acc.addPublicTool(diTauChargeDecorator)
245 acc.addEventAlgo(DiTauChargeDecoratorKernel(name = f
"{prefix}_DiTauIDDecorKernel",
246 AugmentationTools = [diTauChargeDecorator]))
252 """Configure the MuonRM AOD tau building"""
257 import tauRec.TauToolHolder
as tauTools
259 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
261 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
262 tools_after.append( acc.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
263 tools_after.append( acc.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
264 tools_after.append( acc.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
265 tools_after.append( acc.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
266 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
267 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
268 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
269 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
270 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
271 import PanTauAlgs.JobOptions_Main_PanTau
as pantau
272 tools_after.append( acc.popToolsAndMerge(pantau.PanTauCfg(flags)) )
273 tools_after.append( acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
274 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
275 tools_after[-1].EventShapeKey =
''
276 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
277 tools_after.append( acc.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
278 tools_after.append( acc.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags,applyLooseTrackSel=
True)) )
279 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
280 tools_after.append( acc.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags,applyLooseTrackSel=
True )) )
281 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
282 tools_after.append( acc.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
283 TauAODRunnerAlg=CompFactory.getComp(
"TauAODRunnerAlg")
284 for tool
in tools_mod:
286 for tool
in tools_after:
289 name =
"MuonRemovalTauAODReRecoAlg",
290 Key_tauOutputContainer =
"TauJets_MuonRM",
291 Key_pi0OutputContainer =
"TauFinalPi0s_MuonRM",
292 Key_neutralPFOOutputContainer =
"TauNeutralParticleFlowObjects_MuonRM",
293 Key_chargedPFOOutputContainer =
"TauChargedParticleFlowObjects_MuonRM",
294 Key_hadronicPFOOutputContainer =
"TauHadronicParticleFlowObjects_MuonRM",
295 Key_tauTrackOutputContainer =
"TauTracks_MuonRM",
296 Key_vertexOutputContainer =
"TauSecondaryVertices_MuonRM",
297 modificationTools = tools_mod,
298 officialTools = tools_after
300 acc.addEventAlgo(myTauAODRunnerAlg)
305 """configure tau thinning"""
308 TauThinningTool = CompFactory.DerivationFramework.TauThinningTool
309 acc.addPublicTool(TauThinningTool(name, **kwargs), primary=
True)