12 from DerivationFrameworkTools.DerivationFrameworkToolsConf
import DerivationFramework__xAODStringSkimmingTool
13 from DerivationFrameworkTools.DerivationFrameworkToolsConf
import DerivationFramework__TriggerSkimmingTool
14 from DerivationFrameworkCore.DerivationFrameworkCoreConf
import DerivationFramework__DerivationKernel
15 from DerivationFrameworkTools.DerivationFrameworkToolsConf
import DerivationFramework__FilterCombinationAND
16 from DerivationFrameworkTools.DerivationFrameworkToolsConf
import DerivationFramework__FilterCombinationOR
17 from DerivationFrameworkTools.DerivationFrameworkToolsConf
import DerivationFramework__PrescaleTool
20 jetContainer = primRPVLLDESDM.KinkedTrack_containerFlags.jetCollectionName
21 electronContainer = primRPVLLDESDM.KinkedTrack_containerFlags.electronCollectionName
22 muonContainer = primRPVLLDESDM.KinkedTrack_containerFlags.muonCollectionName
23 METContainer = primRPVLLDESDM.KinkedTrack_containerFlags.METCollectionName
24 METTerm = primRPVLLDESDM.KinkedTrack_containerFlags.METTermName
25 egClusterContainer = primRPVLLDESDM.KinkedTrack_containerFlags.egClusterCollectionName
26 msTrackContainer = primRPVLLDESDM.KinkedTrack_containerFlags.msTrackCollectionName
30 if flags.triggerNames:
31 triggers =
list(
set(flags.triggerNames))
32 selectionString +=
'(' +
' || '.
join(triggers) +
')'
34 return selectionString
44 KinkTrkJetTriggerFilterTool = DerivationFramework__TriggerSkimmingTool(name =
"KinkTrkJetTriggerFilterTool",
45 TriggerListOR = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.triggerNames)
47 ToolSvc += KinkTrkJetTriggerFilterTool
50 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf
import DerivationFramework__KinkTrkSingleJetMetFilterTool
51 KinkTrkSingleJetMetFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(name =
"KinkTrkSingleJetMetFilterTool",
52 LeptonVeto = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.doLeptonVeto,
53 IsolatedTrack = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.requireIsolatedTrack,
54 JetContainerKey = jetContainer,
55 ElectronContainerKey = electronContainer,
56 ElectronIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.electronIDKey,
57 MuonContainerKey = muonContainer,
58 MuonIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.muonIDKey,
59 MetContainerKey = METContainer,
61 MetCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutMetMin,
62 JetPtCuts = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutsEtMin,
63 JetEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutEtaMax,
65 JetMetDphiMin = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.jetMetDphiMin,
66 JetMetPtMin = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.jetMetPtMin,
68 LeptonPtCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax,
69 LeptonEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax)
71 print(KinkTrkSingleJetMetFilterTool)
72 ToolSvc += KinkTrkSingleJetMetFilterTool
75 KinkTrkJetFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkJetFilterTool",
76 FilterList=[KinkTrkJetTriggerFilterTool, KinkTrkSingleJetMetFilterTool],
78 ToolSvc+= KinkTrkJetFilterTool
80 topSequence += DerivationFramework__DerivationKernel(
"RPVLL_KinkedTrackJetFilterKernel",
81 SkimmingTools = [KinkTrkJetFilterTool])
82 RPVLLfilterNames.extend([
"RPVLL_KinkedTrackJetFilterKernel"])
85 KinkTrkMultiJetFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(name =
"KinkTrkMultiJetFilterTool",
86 LeptonVeto = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.doLeptonVeto,
87 IsolatedTrack =
False,
88 JetContainerKey = jetContainer,
89 ElectronContainerKey = electronContainer,
90 ElectronIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.electronIDKey,
91 MuonContainerKey = muonContainer,
92 MuonIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.muonIDKey,
93 MetContainerKey = METContainer,
95 MetCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutMetMinForMultiJets,
96 JetPtCuts = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutsEtMinForMultiJets,
97 JetEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutEtaMax,
100 JetMetPtMin = 50.0*Units.GeV,
101 MetHtCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutMetHt,
102 LeptonPtCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax,
103 LeptonEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax)
105 print(KinkTrkMultiJetFilterTool)
106 ToolSvc += KinkTrkMultiJetFilterTool
109 KinkTrkTrigMetMultiJetFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkTrigMetMultiJetFilterTool",
110 FilterList=[KinkTrkJetTriggerFilterTool, KinkTrkMultiJetFilterTool],
112 ToolSvc+= KinkTrkTrigMetMultiJetFilterTool
114 topSequence += DerivationFramework__DerivationKernel(
"RPVLL_KinkedTrackMultiJetFilterKernel",
115 SkimmingTools = [KinkTrkTrigMetMultiJetFilterTool])
116 RPVLLfilterNames.extend([
"RPVLL_KinkedTrackMultiJetFilterKernel"])
119 KinkTrkStubletFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(name =
"KinkTrkStubletFilterTool",
120 LeptonVeto = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.doLeptonVeto,
121 IsolatedTrack =
False,
122 JetContainerKey = jetContainer,
123 ElectronContainerKey = electronContainer,
124 ElectronIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.electronIDKey,
125 MuonContainerKey = muonContainer,
126 MuonIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.muonIDKey,
127 MetContainerKey = METContainer,
129 MetCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutMetMinForStublet,
130 JetPtCuts = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutsEtMinForStublet,
131 JetEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutEtaMax,
133 JetMetDphiMin = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.jetMetDphiMin,
134 JetMetPtMin = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.jetMetPtMin,
136 LeptonPtCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax,
137 LeptonEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax)
139 print(KinkTrkStubletFilterTool)
140 ToolSvc += KinkTrkStubletFilterTool
142 KinkTrkStubletPrescaleTool = DerivationFramework__PrescaleTool(name =
"KinkTrkStubletPrescaleTool",
143 Prescale = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.preScaleStublet)
144 ToolSvc += KinkTrkStubletPrescaleTool
146 KinkTrkStubletFinalFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkStubletFinalFilterTool",
147 FilterList=[KinkTrkJetTriggerFilterTool, KinkTrkStubletFilterTool, KinkTrkStubletPrescaleTool],
149 ToolSvc+= KinkTrkStubletFinalFilterTool
151 topSequence += DerivationFramework__DerivationKernel(
"RPVLL_KinkedTrackStubletFilterKernel",
152 SkimmingTools = [KinkTrkStubletFinalFilterTool])
153 RPVLLfilterNames.extend([
"RPVLL_KinkedTrackStubletFilterKernel"])
158 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf
import DerivationFramework__KinkTrkZeeTagTool
159 KinkTrkDiEleMassStr =
"KinkTrkDiEleMass"
160 KinkTrkProbeEleEtStr =
"KinkTrkProbeEleEt"
161 KinkTrkZeeTagTool = DerivationFramework__KinkTrkZeeTagTool(name =
"KinkTrkZeeTagTool",
162 Triggers = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.triggerNames,
163 TriggerMatchDeltaR = 0.1,
164 RequireTriggerMatch = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.doTriggerMatch,
165 ElectronContainerKey = electronContainer,
166 ElectronIDKeys = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.electronIDKeys,
167 ElectronPtMin = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.electronPtMin,
168 ElectronEtaMax = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.electronEtaMax,
169 ClusterContainerKey = egClusterContainer,
170 ClusterEtMin = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.clusterEtMin,
171 ClusterEtaMax = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.clusterEtaMax,
172 DiEleMassLow = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.diElectronMassLow,
173 DiEleMassHigh = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.diElectronMassHigh,
174 DeltaPhiMax = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.deltaPhiMax,
175 KinkTrkDiEleMassKey = KinkTrkDiEleMassStr,
176 KinkTrkProbeEleEtKey = KinkTrkProbeEleEtStr)
178 print(KinkTrkZeeTagTool)
179 ToolSvc += KinkTrkZeeTagTool
181 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf
import DerivationFramework__KinkTrkZmumuTagTool
182 KinkTrkDiMuMassStr =
"KinkTrkDiMuMass"
183 KinkTrkProbeMuPtStr =
"KinkTrkProbeMuPt"
184 KinkTrkZmumuTagTool = DerivationFramework__KinkTrkZmumuTagTool(name =
"KinkTrkZmumuTagTool",
185 Triggers = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.triggerNames,
186 TriggerMatchDeltaR = 0.1,
187 RequireTriggerMatch = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.doTriggerMatch,
188 MuonContainerKey = muonContainer,
189 MuonIDKeys = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.muonIDKeys,
190 MuonPtMin = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.muonPtMin,
191 MuonEtaMax = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.muonEtaMax,
192 TrackContainerKey = msTrackContainer,
193 TrackPtMin = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.trackPtMin,
194 TrackEtaMax = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.trackEtaMax,
195 DiMuonMassLow = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.diMuonMassLow,
196 DiMuonMassHigh = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.diMuonMassHigh,
197 DeltaPhiMax = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.deltaPhiMax,
198 KinkTrkDiMuMassKey = KinkTrkDiMuMassStr,
199 KinkTrkProbeMuPtKey = KinkTrkProbeMuPtStr)
201 print(KinkTrkZmumuTagTool)
202 ToolSvc += KinkTrkZmumuTagTool
205 topSequence += DerivationFramework__DerivationKernel(
"KinkTrkAugmentationKernel",
206 AugmentationTools = [KinkTrkZeeTagTool, KinkTrkZmumuTagTool])
209 KinkTrkZeeTriggerFilterTool = DerivationFramework__xAODStringSkimmingTool(name =
"KinkTrkZeeTriggerFilterTool",
213 ToolSvc += KinkTrkZeeTriggerFilterTool
215 KinkTrkZmumuTriggerFilterTool = DerivationFramework__xAODStringSkimmingTool(name =
"KinkTrkZmumuTriggerFilterTool",
219 ToolSvc += KinkTrkZmumuTriggerFilterTool
223 KinkTrkZeeLowPtSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name =
"KinkTrkZeeLowPtSkimmingTool",
224 expression =
'count(abs(KinkTrkDiEleMass)>0)>=1 && count(KinkTrkProbeEleEt>=%f)==0' % primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.preScaleClusterEtMax)
225 ToolSvc += KinkTrkZeeLowPtSkimmingTool
228 KinkTrkZeeHighPtSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name =
"KinkTrkZeeHighPtSkimmingTool",
229 expression =
'count(abs(KinkTrkDiEleMass)>0)>=1 && count(KinkTrkProbeEleEt>=%f)>=1' % primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.preScaleClusterEtMax)
230 ToolSvc += KinkTrkZeeHighPtSkimmingTool
233 KinkTrkZeePrescaleTool = DerivationFramework__PrescaleTool(name =
"KinkTrkZeePrescaleTool",
234 Prescale = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.preScale)
235 ToolSvc += KinkTrkZeePrescaleTool
237 KinkTrkZeeLowPtFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkZeeLowPtFilterTool",
238 FilterList = [KinkTrkZeeLowPtSkimmingTool, KinkTrkZeePrescaleTool])
239 ToolSvc += KinkTrkZeeLowPtFilterTool
241 KinkTrkZeeFilterTool = DerivationFramework__FilterCombinationOR(name =
"KinkTrkZeeFilterTool",
242 FilterList = [KinkTrkZeeLowPtFilterTool, KinkTrkZeeHighPtSkimmingTool])
243 ToolSvc += KinkTrkZeeFilterTool
245 KinkTrkZeeFinalFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkZeeFinalFilterTool",
246 FilterList=[KinkTrkZeeTriggerFilterTool, KinkTrkZeeFilterTool],
248 ToolSvc+= KinkTrkZeeFinalFilterTool
250 topSequence += DerivationFramework__DerivationKernel(
"RPVLL_KinkedTrackZeeFilterKernel",
251 SkimmingTools = [KinkTrkZeeFinalFilterTool])
252 RPVLLfilterNames.extend([
"RPVLL_KinkedTrackZeeFilterKernel"])
256 KinkTrkZmumuLowPtSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name =
"KinkTrkZmumuLowPtSkimmingTool",
257 expression =
'count(abs(KinkTrkDiMuMass)>0)>=1 && count(KinkTrkProbeMuPt>=%f)==0' % primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.preScaleTrackPtMax)
258 ToolSvc += KinkTrkZmumuLowPtSkimmingTool
261 KinkTrkZmumuHighPtSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name =
"KinkTrkZmumuHighPtSkimmingTool",
262 expression =
'count(abs(KinkTrkDiMuMass)>0)>=1 && count(KinkTrkProbeMuPt>=%f)>=1'% primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.preScaleTrackPtMax)
263 ToolSvc += KinkTrkZmumuHighPtSkimmingTool
266 KinkTrkZmumuPrescaleTool = DerivationFramework__PrescaleTool(name =
"KinkTrkZmumuPrescaleTool",
267 Prescale = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.preScale)
268 ToolSvc += KinkTrkZmumuPrescaleTool
270 KinkTrkZmumuLowPtFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkZmumuLowPtFilterTool",
271 FilterList = [KinkTrkZmumuLowPtSkimmingTool, KinkTrkZmumuPrescaleTool])
272 ToolSvc += KinkTrkZmumuLowPtFilterTool
274 KinkTrkZmumuFilterTool = DerivationFramework__FilterCombinationOR(name =
"KinkTrkZmumuFilterTool",
275 FilterList = [KinkTrkZmumuLowPtFilterTool, KinkTrkZmumuHighPtSkimmingTool])
276 ToolSvc += KinkTrkZmumuFilterTool
279 KinkTrkZmumuFinalFilterTool = DerivationFramework__FilterCombinationAND(name =
"KinkTrkZmumuFinalFilterTool",
280 FilterList=[KinkTrkZmumuTriggerFilterTool, KinkTrkZmumuFilterTool],
282 ToolSvc+= KinkTrkZmumuFinalFilterTool
285 topSequence += DerivationFramework__DerivationKernel(
"RPVLL_KinkedTrackZmumuFilterKernel",
286 SkimmingTools = [KinkTrkZmumuFinalFilterTool])
287 RPVLLfilterNames.extend([
"RPVLL_KinkedTrackZmumuFilterKernel"])