84def AddTauIDDecorationCfg(flags, **kwargs):
85 """Decorate tau ID scores and working points"""
86
87
88
89 tauContainerKey = kwargs.setdefault("TauContainerName", "TauJets")
90
91
92 acc = ComponentAccumulator()
93
94 import tauRec.TauToolHolder as tauTools
95 tools = []
96 doEvetoWP = False
97 scoreNames = []
98 WPNames = []
99
100
101 doVertexedClusters = False
102
103
104
105
106
107
108 if kwargs.pop('evetoFix', True):
109 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
110
111 doEvetoWP |= tools[-1].UseAbsEta
112
113 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
114 scoreNames.append(tools[-1].NewScoreName)
115 WPNames += tools[-1].DecorWPNames
116
117 if kwargs.pop('GNNTauID', True):
118
119 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
120 doVertexedClusters = True
121
122
123 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=True)) )
124
125 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,1,applyLooseTrackSel=True)) )
126
127 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,0)) )
128
129 doEvetoWP |= tools[-1].UseAbsEta
130
131 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
132 scoreNames.append(tools[-1].NewScoreName)
133 WPNames += tools[-1].DecorWPNames
134
135
136 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,1)) )
137
138 doEvetoWP |= tools[-1].UseAbsEta
139
140 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
141 scoreNames.append(tools[-1].NewScoreName)
142 WPNames += tools[-1].DecorWPNames
143
144 if flags.GeoModel.Run <= LHCPeriod.Run3:
145
146 tools.append( acc.popToolsAndMerge(tauTools.TauGNNeVetoEvaluatorCfg(flags, applyTightTrackSel=True, applyLooseTrackSel=True)) )
147 tools.append( acc.popToolsAndMerge(tauTools.TauGNNeVetoWPDecoratorCfg(flags)) )
148 if tools[-1].ScoreName != "RNNEleScore": scoreNames.append(tools[-1].ScoreName)
149 scoreNames.append(tools[-1].NewScoreName)
150 WPNames += tools[-1].DecorWPNames
151
152 if kwargs.pop('TausRUs', flags.Tau.doTausRUs):
153 if not doVertexedClusters:
154 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
155 doVertexedClusters = True
156
157 tools.append( acc.popToolsAndMerge(tauTools.TausRUsEvaluatorCfg(
158 flags,
159 name=f"{tauContainerKey}_TausRUs",
160 tauTrackContainerName=tauContainerKey.replace("TauJets", "TauTracks"))) )
161
162
163
164
165 scoreNames += tauTools.TausRUsDecorationNames()
166
167 if tools:
168 kwargs.setdefault("DoEvetoWP", doEvetoWP)
169 kwargs.setdefault("ScoreDecorationKeys", scoreNames)
170 kwargs.setdefault("WPDecorationKeys", WPNames)
171
172 for tool in tools:
173 acc.addPublicTool(tool)
174 kwargs.setdefault("TauIDTools", tools)
175
176 TauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper
177 TauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
178
179 prefix = kwargs.pop('prefix', tauContainerKey)
180 tauIDDecoratorWrapper = TauIDDecoratorWrapper(name = f"{prefix}_TauIDDecoratorWrapper",
181 **kwargs)
182 print(
"PXQW TauIDDecoratorsWrapper: " + str(tauIDDecoratorWrapper))
183 acc.addPublicTool(tauIDDecoratorWrapper)
184 acc.addEventAlgo(TauIDDecoratorKernel(name = f"{prefix}_TauIDDecorKernel",
185 AugmentationTools = [tauIDDecoratorWrapper]))
186
187 return acc
188
189
void print(char *figname, TCanvas *c1)