20 """Configure the derivation framework driving algorithm (kernel) for LLP1"""
21 acc = ComponentAccumulator()
26 MergedElectronContainer =
"Electrons"
27 MergedGSFTrackCollection =
"GSFTrackParticles"
28 MergedMuonContainer =
"Muons"
29 MergedTrackCollection =
"InDetTrackParticles"
30 MergedTrackletCollection =
"InDetDisappearingTrackParticles"
32 if flags.Tracking.doLargeD0:
33 MergedTrackCollection =
"InDetWithLRTTrackParticles"
34 from DerivationFrameworkInDet.InDetToolsConfig
import InDetLRTMergeCfg
35 acc.merge(InDetLRTMergeCfg(flags))
37 MergedGSFTrackCollection =
"InDetWithLRTGSFTrackParticles"
38 acc.merge(InDetLRTMergeCfg(
39 flags, name=
"GSFTrackMergerAlg",
40 InputTrackParticleLocations = [
"GSFTrackParticles",
41 "LRTGSFTrackParticles"],
42 OutputTrackParticleLocation = MergedGSFTrackCollection,
43 OutputTrackParticleLocationCopy = MergedGSFTrackCollection))
45 if flags.Tracking.doTrackSegmentsDisappearing:
46 MergedTrackletCollection =
"InDetDisappearingWithLRTTrackParticles"
47 acc.merge(InDetLRTMergeCfg(
48 flags, name=
"InDetDisappearingLRTMerge",
49 InputTrackParticleLocations = [
"InDetDisappearingTrackParticles",
50 "InDetLargeD0TrackParticles"],
51 OutputTrackParticleLocation = MergedTrackletCollection))
54 MergedMuonContainer =
"StdWithLRTMuons"
55 from DerivationFrameworkLLP.LLPToolsConfig
import LRTMuonMergerAlg
56 acc.merge(LRTMuonMergerAlg(flags,
57 PromptMuonLocation =
"Muons",
58 LRTMuonLocation =
"MuonsLRT",
59 OutputMuonLocation = MergedMuonContainer,
60 CreateViewCollection =
True,
61 UseRun3WP = flags.GeoModel.Run >= LHCPeriod.Run3))
64 MergedElectronContainer =
"StdWithLRTElectrons"
65 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronMergerAlg
66 acc.merge(LRTElectronMergerAlg(flags,
67 PromptElectronLocation =
"Electrons",
68 LRTElectronLocation =
"LRTElectrons",
69 OutputCollectionName = MergedElectronContainer,
71 CreateViewCollection =
True))
75 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
76 MaxCellDecoratorCfg, MaxCellDecoratorKernelCfg)
79 acc.merge(MaxCellDecoratorKernelCfg(flags))
82 if flags.Tracking.doLargeD0:
83 LLP1LRTMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
84 flags, name =
"LLP1LRTMaxCellDecoratorTool",
85 SGKey_electrons =
"LRTElectrons",
86 SGKey_egammaClusters = (
"" if flags.GeoModel.Run >= LHCPeriod.Run3
87 else "egammaClusters"),
89 acc.addPublicTool(LLP1LRTMaxCellDecoratorTool)
92 if flags.Tracking.doTrackSegmentsDisappearing:
93 from DerivationFrameworkLLP.LLPToolsConfig
import TrackParametersKVUCfg
94 LLP1TrackParametersKVUTool = acc.popToolsAndMerge(TrackParametersKVUCfg(
95 flags, name =
"LLP1TrackParametersKVU"))
96 acc.addPublicTool(LLP1TrackParametersKVUTool)
100 isoPar = ROOT.xAOD.Iso.IsolationType
101 deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20]
102 deco_ptcones_suffix = [
"ptcone40",
"ptcone30",
"ptcone20"]
103 deco_prefix =
'LLP1_'
105 from InDetConfig.InDetTrackSelectionToolConfig
import InDetTrackSelectionTool_Loose_Cfg
106 TrackSelectionToolStd = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
107 name =
"TrackSelectionToolStd",
111 TrackSelectionToolPdEdx = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
112 name =
"TrackSelectionToolPdEdx",
117 TrackSelectionToolPdEdxTight = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
118 name =
"TrackSelectionToolPdEdxTight",
123 from IsolationAlgs.IsoToolsConfig
import TrackIsolationToolCfg, CaloIsolationToolCfg
124 TrackIsoToolStd = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
125 name =
"TrackIsoToolStd",
126 TrackSelectionTool = TrackSelectionToolStd))
127 acc.addPublicTool(TrackIsoToolStd)
129 TrackIsoToolPdEdx = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
130 name =
"TrackIsoToolPdEdx",
131 TrackSelectionTool = TrackSelectionToolPdEdx))
132 acc.addPublicTool(TrackIsoToolPdEdx)
134 TrackIsoToolPdEdxTight = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
135 name =
"TrackIsoToolPdEdxTight",
136 TrackSelectionTool = TrackSelectionToolPdEdxTight))
137 acc.addPublicTool(TrackIsoToolPdEdxTight)
139 from CaloIdentifier
import SUBCALO
140 CaloIsoTool = acc.popToolsAndMerge(CaloIsolationToolCfg(flags,
141 name =
"CaloIsoTool",
142 EMCaloNums = [SUBCALO.LAREM],
143 HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
145 UseCaloExtensionCaching =
False,
146 saveOnlyRequestedCorrections =
True))
147 acc.addPublicTool(CaloIsoTool)
149 from DerivationFrameworkInDet.InDetToolsConfig
import IsolationTrackDecoratorCfg
150 LLP1IsolationTrackDecoratorTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
151 name =
"LLP1IsolationTrackDecorator",
152 TrackIsolationTool = TrackIsoToolStd,
153 CaloIsolationTool = CaloIsoTool,
154 TargetContainer =
"InDetTrackParticles",
155 SelectionString =
"InDetTrackParticles.pt>10*GeV",
156 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
157 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20",
"ptvarcone40",
"ptvarcone30",
"ptvarcone20",
"topoetcone40",
"topoetcone30",
"topoetcone20"],
158 Prefix = deco_prefix))
159 acc.addPublicTool(LLP1IsolationTrackDecoratorTool)
161 if flags.Tracking.doTrackSegmentsDisappearing:
162 LLP1IsolationTrackDecoratorDTTool = acc.getPrimaryAndMerge(
163 IsolationTrackDecoratorCfg(
164 flags, name =
"LLP1IsolationTrackDecoratorDT",
165 TrackIsolationTool = TrackIsoToolStd,
166 CaloIsolationTool = CaloIsoTool,
167 TargetContainer =
"InDetDisappearingTrackParticles",
168 SelectionString =
"InDetDisappearingTrackParticles.pt>10*GeV",
169 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20,
170 isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20,
171 isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
172 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20",
173 "ptvarcone40",
"ptvarcone30",
"ptvarcone20",
174 "topoetcone40",
"topoetcone30",
"topoetcone20"],
175 Prefix = deco_prefix))
176 acc.addPublicTool(LLP1IsolationTrackDecoratorDTTool)
178 LLP1IsolationTrackDecoratorPdEdxTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
179 name =
"LLP1IsolationTrackDecoratorPdEdx",
180 TrackIsolationTool = TrackIsoToolPdEdx,
181 CaloIsolationTool = CaloIsoTool,
182 TargetContainer =
"InDetTrackParticles",
184 Prefix =
'TrkIsoPtPdEdx_',
185 isoSuffix = deco_ptcones_suffix))
186 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTool)
188 if flags.Tracking.doTrackSegmentsDisappearing:
189 LLP1IsolationTrackDecoratorPdEdxDTTool = acc.getPrimaryAndMerge(
190 IsolationTrackDecoratorCfg(
191 flags, name =
"LLP1IsolationTrackDecoratorPdEdxDT",
192 TrackIsolationTool = TrackIsoToolPdEdx,
193 CaloIsolationTool = CaloIsoTool,
194 TargetContainer =
"InDetDisappearingTrackParticles",
196 Prefix =
'TrkIsoPtPdEdx_',
197 isoSuffix = deco_ptcones_suffix))
198 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxDTTool)
200 LLP1IsolationTrackDecoratorPdEdxTightTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
201 name =
"LLP1IsolationTrackDecoratorPdEdxTight",
202 TrackIsolationTool = TrackIsoToolPdEdxTight,
203 CaloIsolationTool = CaloIsoTool,
204 TargetContainer =
"InDetTrackParticles",
206 Prefix =
'TrkIsoPtTightPdEdx_',
207 isoSuffix = deco_ptcones_suffix))
208 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightTool)
210 if flags.Tracking.doTrackSegmentsDisappearing:
211 LLP1IsolationTrackDecoratorPdEdxTightDTTool = acc.getPrimaryAndMerge(
212 IsolationTrackDecoratorCfg(
213 flags, name =
"LLP1IsolationTrackDecoratorPdEdxTightDT",
214 TrackIsolationTool = TrackIsoToolPdEdxTight,
215 CaloIsolationTool = CaloIsoTool,
216 TargetContainer =
"InDetDisappearingTrackParticles",
218 Prefix =
'TrkIsoPtTightPdEdx_',
219 isoSuffix = deco_ptcones_suffix))
220 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightDTTool)
222 from DerivationFrameworkLLP.LLPToolsConfig
import TrackParticleCaloCellDecoratorCfg
223 LLP1TrackParticleCaloCellDecoratorTool = acc.getPrimaryAndMerge(TrackParticleCaloCellDecoratorCfg(flags,
224 name =
"LLP1TrackParticleCaloCellDecorator",
225 DecorationPrefix =
"LLP1",
226 ContainerName =
"InDetTrackParticles"))
227 acc.addPublicTool(LLP1TrackParticleCaloCellDecoratorTool)
229 augmentationTools = [ LLP1IsolationTrackDecoratorTool,
230 LLP1IsolationTrackDecoratorPdEdxTool,
231 LLP1IsolationTrackDecoratorPdEdxTightTool,
232 LLP1TrackParticleCaloCellDecoratorTool ]
233 if flags.Tracking.doLargeD0:
234 augmentationTools += [ LLP1LRTMaxCellDecoratorTool ]
235 if flags.Tracking.doTrackSegmentsDisappearing:
236 augmentationTools += [ LLP1TrackParametersKVUTool,
237 LLP1IsolationTrackDecoratorDTTool,
238 LLP1IsolationTrackDecoratorPdEdxDTTool,
239 LLP1IsolationTrackDecoratorPdEdxTightDTTool ]
242 LLP1TauMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
244 name =
"LLP1TauMaxCellDecoratorTool",
245 SGKey_taus =
'TauJets',
246 SGKey_electrons =
'',
248 acc.addPublicTool(LLP1TauMaxCellDecoratorTool)
250 augmentationTools += [ LLP1TauMaxCellDecoratorTool ]
253 LLP1AntiKt4EMTopoJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
255 name =
"LLP1AntiKt4EMTopoJetMaxCellDecoratorTool",
256 SGKey_jets =
'AntiKt4EMTopoJets',
258 SGKey_electrons =
'',
260 acc.addPublicTool(LLP1AntiKt4EMTopoJetMaxCellDecoratorTool)
262 augmentationTools += [ LLP1AntiKt4EMTopoJetMaxCellDecoratorTool ]
265 LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
267 name =
"LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool",
268 SGKey_jets =
'AntiKt4EMPFlowJets',
270 SGKey_electrons =
'',
272 acc.addPublicTool(LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool)
274 augmentationTools += [ LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool ]
277 from JetRecConfig.JetRecConfig
import registerAsInputConstit, JetRecCfg
278 from JetRecConfig.StandardSmallRJets
import AntiKt4Truth, AntiKt4EMTopo
279 from JetRecConfig.JetDefinition
import JetDefinition
280 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
282 registerAsInputConstit(AntiKt4EMTopo)
283 registerAsInputConstit(AntiKt4Truth)
284 cst.AntiKt4EMTopoJets.label =
"EMTopoRC"
285 cst.AntiKt4TruthJets.label =
"TruthRC"
287 AntiKt10RCEMTopo = JetDefinition(
"AntiKt",1.0,cst.AntiKt4EMTopoJets,
288 ghostdefs = [
"Track",
"TrackLRT",
"LCTopoOrigin"],
289 modifiers = (
"Sort",
"Filter:200000",),
290 standardRecoMode =
True,
294 AntiKt10RCTruth = JetDefinition(
"AntiKt",1.0,cst.AntiKt4TruthJets,
296 modifiers = (
"Sort",
"Filter:200000",),
297 standardRecoMode =
True,
301 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
302 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs[
'TriggerListsHelper']))
303 acc.merge(JetRecCfg(flags,AntiKt10RCEMTopo))
304 if flags.Input.isMC: acc.merge(JetRecCfg(flags,AntiKt10RCTruth))
306 if flags.Tracking.doLargeD0:
308 from DerivationFrameworkJetEtMiss.METCommonConfig
import METLRTCfg
309 acc.merge(METLRTCfg(flags,
"AntiKt4EMTopo"))
310 acc.merge(METLRTCfg(flags,
"AntiKt4EMPFlow"))
313 from DerivationFrameworkEGamma.EGammaLRTConfig
import EGammaLRTCfg
314 acc.merge(EGammaLRTCfg(flags))
316 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronLHSelectorsCfg
317 acc.merge(LRTElectronLHSelectorsCfg(flags))
320 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
321 acc.merge(MuonsCommonCfg(flags, suff=
"LRT"))
324 from DerivationFrameworkLLP.LLPToolsConfig
import PhotonIsEMSelectorsCfg
325 acc.merge(PhotonIsEMSelectorsCfg(flags))
328 from DerivationFrameworkLLP.LLPToolsConfig
import RecoverZeroPixelHitMuonsCfg
329 acc.merge(RecoverZeroPixelHitMuonsCfg(flags))
332 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
333 acc.merge(FlavorTaggingCfg(flags,
'AntiKt4EMTopoJets'))
336 from VrtSecInclusive.VrtSecInclusiveConfig
import VrtSecInclusiveCfg
339 from MuSAVtxFitter.MuSAVtxFitterConfig
import MuSAVtxFitterConfig, MuSAVtxJPsiValidationAlgCfg, MuSAVtxFitterValidationConfig
341 acc.merge(VrtSecInclusiveCfg(flags,
342 name =
"VrtSecInclusive",
343 AugmentingVersionString =
"",
344 FillIntermediateVertices =
False,
345 TrackLocation = MergedTrackCollection))
346 LLP1VrtSecInclusiveSuffixes.append(
"")
349 shortLifetimeSuffix =
"_shortLifetime"
350 acc.merge(VrtSecInclusiveCfg(flags,
351 name =
"VrtSecInclusive_InDet"+shortLifetimeSuffix,
352 AugmentingVersionString = shortLifetimeSuffix,
353 FillIntermediateVertices =
False,
354 TrackLocation = MergedTrackCollection,
355 twoTrkVtxFormingD0Cut = 1.0))
356 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeSuffix)
359 shortLifetimeNod0Suffix =
"_shortLifetime_nod0"
360 acc.merge(VrtSecInclusiveCfg(flags,
361 name =
"VrtSecInclusive_InDet"+shortLifetimeNod0Suffix,
362 AugmentingVersionString = shortLifetimeNod0Suffix,
363 FillIntermediateVertices =
False,
364 TrackLocation = MergedTrackCollection,
365 twoTrkVtxFormingD0Cut = 0))
366 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeNod0Suffix)
369 if flags.Tracking.doTrackSegmentsDisappearing:
370 dissapearingSuffix =
"_disappearing"
371 acc.merge(VrtSecInclusiveCfg(
372 flags, name =
"VrtSecInclusive_"+dissapearingSuffix,
373 AugmentingVersionString = dissapearingSuffix,
374 FillIntermediateVertices =
False,
375 TrackLocation = MergedTrackletCollection,
376 doReassembleVertices =
True,
377 doMergeByShuffling =
False,
378 doMergeFinalVerticesDistance=
False,
379 doAssociateNonSelectedTracks=
False,
380 DoPVcompatibility =
True,
381 RemoveFake2TrkVrt =
False,
382 PassThroughTrackSelection =
True,
383 TruncateListOfWorkingVertices =
False,
384 twoTrkVtxFormingD0Cut = 0.0,
385 SelVrtChi2Cut = 1000000.0,
386 twoTrVrtMaxPerigeeDist = 50.0,
387 twoTrVrtMinRadius = 50.0,
388 doDisappearingTrackVertexing=
True))
389 LLP1VrtSecInclusiveSuffixes.append(dissapearingSuffix)
391 if flags.Input.isMC
and flags.Derivation.LLP.doTrackSystematics:
392 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig
import TrackSystematicsAlgCfg
393 TrackSystSuffix =
"_TRK_EFF_LARGED0_GLOBAL__1down"
394 acc.merge(TrackSystematicsAlgCfg(
396 name=f
"InDetTrackSystematicsAlg{TrackSystSuffix}",
397 InputTrackContainer = MergedTrackCollection,
398 OutputTrackContainer = f
"{MergedTrackCollection}{TrackSystSuffix}"))
399 acc.merge(VrtSecInclusiveCfg(flags,
400 name = f
"VrtSecInclusive{TrackSystSuffix}",
401 AugmentingVersionString = TrackSystSuffix,
402 FillIntermediateVertices =
False,
403 TrackLocation = f
"{MergedTrackCollection}{TrackSystSuffix}"))
404 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffix)
406 TrackSystSuffixShortLifetime =
"_TRK_EFF_LARGED0_GLOBAL__1down_shortLifetime"
407 acc.merge(TrackSystematicsAlgCfg(
409 name=f
"InDetTrackSystematicsAlg{TrackSystSuffixShortLifetime}",
410 InputTrackContainer = MergedTrackCollection,
411 OutputTrackContainer = f
"{MergedTrackCollection}{TrackSystSuffixShortLifetime}"))
412 acc.merge(VrtSecInclusiveCfg(flags,
413 name = f
"VrtSecInclusive{TrackSystSuffixShortLifetime}",
414 AugmentingVersionString = TrackSystSuffixShortLifetime,
415 FillIntermediateVertices =
False,
416 TrackLocation = f
"{MergedTrackCollection}{TrackSystSuffixShortLifetime}",
417 twoTrkVtxFormingD0Cut = 1.0))
418 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffixShortLifetime)
421 MergedMuonContainer_wZPH = (
422 "StdWithLRTMuons_wZPH" if flags.Tracking.doLargeD0
else "Muons_wZPH")
423 from DerivationFrameworkLLP.LLPToolsConfig
import ZeroPixelHitMuonMergerAlgCfg
424 acc.merge(ZeroPixelHitMuonMergerAlgCfg(flags,
425 InputMuonContainers = [MergedMuonContainer,
"ZeroPixelHitMuons"],
426 OutputMuonLocation = MergedMuonContainer_wZPH))
430 LeptonsSuffix =
"_Leptons"
431 acc.merge(VrtSecInclusiveCfg(flags,
432 name =
"VrtSecInclusive_InDet"+LeptonsSuffix,
433 AugmentingVersionString = LeptonsSuffix,
434 FillIntermediateVertices =
False,
435 TrackLocation = MergedTrackCollection,
436 twoTrkVtxFormingD0Cut = 1.0,
437 doSelectTracksFromMuons =
True,
438 doRemoveCaloTaggedMuons =
True,
439 doSelectTracksFromElectrons =
True,
440 MuonLocation = MergedMuonContainer,
441 ElectronLocation = MergedElectronContainer))
442 LLP1VrtSecInclusiveSuffixes.append(LeptonsSuffix)
445 LepTrackSuffix =
"_LepTrack"
446 acc.merge(VrtSecInclusiveCfg(flags,
447 name =
"VrtSecInclusive_InDet"+LepTrackSuffix,
448 AugmentingVersionString = LepTrackSuffix,
449 FillIntermediateVertices =
False,
450 TrackLocation = MergedTrackCollection,
451 MuonLocation = MergedMuonContainer,
452 ElectronLocation = MergedElectronContainer,
453 twoTrkVtxFormingD0Cut = 1.0,
454 doSelectIDAndGSFTracks =
True,
455 doRemoveCaloTaggedMuons =
True,
456 doRemoveNonLeptonVertices =
True,
457 doAssociateNonSelectedTracks=
False))
458 LLP1VrtSecInclusiveSuffixes.append(LepTrackSuffix)
461 BoostedMuonsSuffix =
"_BoostedMuons"
462 acc.merge(VrtSecInclusiveCfg(flags,
463 name =
"VrtSecInclusive_InDet"+BoostedMuonsSuffix,
464 AugmentingVersionString = BoostedMuonsSuffix,
465 FillIntermediateVertices =
False,
466 TrackLocation = MergedTrackCollection,
467 twoTrkVtxFormingD0Cut = 0.0,
468 doSelectTracksFromMuons =
True,
469 doRemoveCaloTaggedMuons =
True,
470 doSelectTracksFromElectrons =
False,
471 MuonLocation = MergedMuonContainer_wZPH,
472 do_PVvetoCut =
False,
473 DoTwoTrSoftBtag =
True,
474 TwoTrVrtMinDistFromPVCut = 0.5,
475 associatePtCut = 500.))
476 LLP1VrtSecInclusiveSuffixes.append(BoostedMuonsSuffix)
480 BoostedElectronsSuffix =
"_BoostedElectrons"
481 acc.merge(VrtSecInclusiveCfg(flags,
482 name =
"VrtSecInclusive_InDet"+BoostedElectronsSuffix,
483 AugmentingVersionString = BoostedElectronsSuffix,
484 FillIntermediateVertices =
False,
485 TrackLocation = MergedTrackCollection,
486 twoTrkVtxFormingD0Cut = 0.0,
487 doSelectTracksFromMuons =
False,
488 doSelectTracksFromElectrons =
True,
489 ElectronLocation = MergedElectronContainer,
490 do_PVvetoCut =
False,
491 DoTwoTrSoftBtag =
True,
492 TwoTrVrtMinDistFromPVCut = 0.5,
493 associatePtCut = 500.))
494 LLP1VrtSecInclusiveSuffixes.append(BoostedElectronsSuffix)
499 MuonContainerName=MergedMuonContainer))
501 if flags.Derivation.LLP.doMuSAValidation:
503 acc.merge(MuSAVtxJPsiValidationAlgCfg(flags,
504 MuonContainer=MergedMuonContainer,
505 JPsiMuonContainer=
"JPsiMuons"))
508 acc.merge(MuSAVtxFitterValidationConfig(flags,
509 name=
"MuSAVtxFitterValidationJPsi",
510 MuonContainerName=
"JPsiMuons"))
512 acc.merge(MuSAVtxFitterValidationConfig(flags,
513 MuonContainerName=MergedMuonContainer,
514 MuSAVtxContainerName=
"ValidationMuSAVertices",
515 MuSAExtrapolatedTracksName=
"ValidationMuSAExtrapolatedTrackParticles",
516 MSTPContainerName=
"MuonSpectrometerTrackParticles"))
520 from NewVrtSecInclusiveTool.NewVrtSecInclusiveAlgConfig
import NewVrtSecInclusiveAlgLLPCfg
521 from NewVrtSecInclusiveTool.NewVrtSecInclusiveConfig
import DVFinderToolCfg
522 IDAndGSFSuffix =
"_IDAndGSF_LepTrack"
524 NVSILepTrack_Tool = acc.popToolsAndMerge(DVFinderToolCfg(flags,FillHist=
False,AugmentingVersionString=IDAndGSFSuffix,MaxZVrt=1000.,AntiPileupSigRCut=2.))
525 acc.merge(NewVrtSecInclusiveAlgLLPCfg(flags,
526 algname =
"NVSI"+IDAndGSFSuffix,
527 AugmentingVersionString = IDAndGSFSuffix,
528 ElectronContainer = MergedElectronContainer,
529 MuonContainer = MergedMuonContainer,
530 TrackParticleContainer = MergedTrackCollection,
531 GSFTrackParticleContainer = MergedGSFTrackCollection,
532 BVertexContainerName =
"NewVrtSecInclusive_SecondaryVertices"+IDAndGSFSuffix,
535 RemoveNonLepVertices =
True,
536 BVertexTool = NVSILepTrack_Tool))
537 LLP1NewVSISuffixes.append(IDAndGSFSuffix)
540 jet_clean_prefix=
"DFCommonJets_"
541 jet_clean_container=
"AntiKt4EMTopoJets"
542 jet_clean_level=
"SuperLooseBadLLP"
543 from JetSelectorTools.JetSelectorToolsConfig
import EventCleaningToolCfg, JetCleaningToolCfg
544 LLP1JetCleanSuperLLPTool = acc.popToolsAndMerge(JetCleaningToolCfg(flags,
545 "LLP1JetCleanSuperLLP",
549 acc.addPublicTool(LLP1JetCleanSuperLLPTool)
551 LLP1EventCleanSuperLLPTool = acc.popToolsAndMerge(EventCleaningToolCfg(flags,
552 "LLP1EventCleanSuperLLP",
554 LLP1EventCleanSuperLLPTool.JetCleanPrefix = jet_clean_prefix
555 LLP1EventCleanSuperLLPTool.OrDecorator =
"passOR_EMTopo"
556 LLP1EventCleanSuperLLPTool.JetContainer = jet_clean_container
557 LLP1EventCleanSuperLLPTool.JetCleaningTool = LLP1JetCleanSuperLLPTool
558 acc.addPublicTool(LLP1EventCleanSuperLLPTool)
560 LLP1EventCleanAlg = CompFactory.EventCleaningTestAlg(
561 "LLP1JetCleanDecoratorSuperLLP",
562 EventCleaningTool = LLP1EventCleanSuperLLPTool,
563 JetCollectionName = jet_clean_container,
564 EventCleanPrefix = jet_clean_prefix,
565 CleaningLevel = jet_clean_level,
570 acc.addSequence(CompFactory.AthSequencer(
'EventCleanSeq', Sequential=
True))
571 acc.addEventAlgo(LLP1EventCleanAlg,
'EventCleanSeq')
575 from DerivationFrameworkLLP.LLPToolsConfig
import AugmentationToolLeadingJetsCfg
576 augmentationToolLeadingJets = acc.getPrimaryAndMerge(AugmentationToolLeadingJetsCfg(flags))
577 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name, AugmentationTools = [augmentationToolLeadingJets]))
580 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg, EgammaTrackParticleThinningCfg, MuonTrackParticleThinningCfg, TauTrackParticleThinningCfg, DiTauTrackParticleThinningCfg
581 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
582 from DerivationFrameworkTau.TauCommonConfig
import TauThinningCfg
585 LLP1TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
587 name =
"LLP1TrackParticleThinningTool",
588 StreamName = kwargs[
'StreamName'],
589 SelectionString =
"InDetTrackParticles.pt>10*GeV",
590 InDetTrackParticlesKey =
"InDetTrackParticles"))
593 if flags.Tracking.doLargeD0:
594 LLP1LRTGSFTrackParticleThinningTool = acc.getPrimaryAndMerge(
595 TrackParticleThinningCfg(
596 flags, name =
"LLP1LRTGSFTrackParticleThinningTool",
597 StreamName = kwargs[
'StreamName'],
598 SelectionString =
"LRTGSFTrackParticles.pt>0*GeV",
599 InDetTrackParticlesKey =
"LRTGSFTrackParticles"))
602 if flags.Tracking.doTrackSegmentsDisappearing:
603 LLP1DTTrackParticleThinningTool = acc.getPrimaryAndMerge(
604 TrackParticleThinningCfg(
605 flags, name =
"LLP1DTTrackParticleThinningTool",
606 StreamName = kwargs[
'StreamName'],
607 SelectionString =
"InDetDisappearingTrackParticles.pt>5*GeV",
608 InDetTrackParticlesKey =
"InDetDisappearingTrackParticles"))
611 LLP1ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
613 name =
"LLP1ElectronTPThinningTool",
614 StreamName = kwargs[
'StreamName'],
616 InDetTrackParticlesKey =
"InDetTrackParticles"))
619 if flags.Tracking.doLargeD0:
620 LLP1LRTElectronTPThinningTool = acc.getPrimaryAndMerge(
621 EgammaTrackParticleThinningCfg(
622 flags, name =
"LLP1LRTElectronTPThinningTool",
623 StreamName = kwargs[
'StreamName'],
624 SGKey =
"LRTElectrons",
625 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
626 GSFTrackParticlesKey =
"LRTGSFTrackParticles"))
629 LLP1MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
631 name =
"LLP1MuonTPThinningTool",
632 StreamName = kwargs[
'StreamName'],
634 InDetTrackParticlesKey =
"InDetTrackParticles"))
637 if flags.Tracking.doLargeD0:
638 LLP1LRTMuonTPThinningTool = acc.getPrimaryAndMerge(
639 MuonTrackParticleThinningCfg(
640 flags, name =
"LLP1LRTMuonTPThinningTool",
641 StreamName = kwargs[
'StreamName'],
642 MuonKey =
"MuonsLRT",
643 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
646 LLP1PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
648 name =
"LLP1PhotonTPThinningTool",
649 StreamName = kwargs[
'StreamName'],
651 InDetTrackParticlesKey =
"",
652 GSFConversionVerticesKey =
"GSFConversionVertices",
653 GSFTrackParticlesKey =
"GSFTrackParticles",
654 BestMatchOnly =
True,
655 BestVtxMatchOnly =
True))
658 tau_thinning_expression = f
"TauJets.pt >= {flags.Tau.MinPtDAOD}"
659 LLP1TauJetsThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
661 name =
"LLP1TauJetThinningTool",
662 StreamName = kwargs[
'StreamName'],
664 TauTracks =
"TauTracks",
665 TrackParticles =
"InDetTrackParticles",
666 TauNeutralPFOs =
"TauNeutralParticleFlowObjects",
667 TauSecondaryVertices =
"TauSecondaryVertices",
668 SelectionString = tau_thinning_expression))
671 LLP1TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
673 name =
"LLP1TauTPThinningTool",
674 StreamName = kwargs[
'StreamName'],
676 InDetTrackParticlesKey =
"InDetTrackParticles",
677 DoTauTracksThinning =
True,
678 TauTracksKey =
"TauTracks"))
680 tau_murm_thinning_expression = tau_thinning_expression.replace(
'TauJets',
'TauJets_MuonRM')
681 LLP1TauJetMuonRMParticleThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
683 name =
"LLP1TauJets_MuonRMThinningTool",
684 StreamName = kwargs[
'StreamName'],
685 Taus =
"TauJets_MuonRM",
686 TauTracks =
"TauTracks_MuonRM",
687 TrackParticles =
"InDetTrackParticles",
688 TauNeutralPFOs =
"TauNeutralParticleFlowObjects_MuonRM",
689 TauSecondaryVertices =
"TauSecondaryVertices_MuonRM",
690 SelectionString = tau_murm_thinning_expression))
693 LLP1DiTauTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
695 name =
"LLP1DiTauTPThinningTool",
696 StreamName = kwargs[
'StreamName'],
697 DiTauKey =
"DiTauJets",
698 InDetTrackParticlesKey =
"InDetTrackParticles"))
701 LLP1DiTauLowPtThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(
703 name =
"LLP1DiTauLowPtThinningTool",
704 StreamName = kwargs[
'StreamName'],
705 ContainerName =
"DiTauJetsLowPt",
706 SelectionString =
"DiTauJetsLowPt.nSubjets > 1"))
709 LLP1DiTauLowPtTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
711 name =
"LLP1DiTauLowPtTPThinningTool",
712 StreamName = kwargs[
'StreamName'],
713 DiTauKey =
"DiTauJetsLowPt",
714 InDetTrackParticlesKey =
"InDetTrackParticles",
715 SelectionString =
"DiTauJetsLowPt.nSubjets > 1"))
719 from DerivationFrameworkLLP.LLPToolsConfig
import VSITrackParticleThinningCfg
720 LLP1VSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
721 name =
"LLP1VSITPThinningTool",
722 StreamName = kwargs[
'StreamName'],
723 InDetTrackParticlesKey =
"InDetTrackParticles",
724 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
726 if flags.Tracking.doLargeD0:
727 LLP1LRTVSITPThinningTool = acc.getPrimaryAndMerge(
728 VSITrackParticleThinningCfg(
729 flags, name =
"LLP1LRTVSITPThinningTool",
730 StreamName = kwargs[
'StreamName'],
731 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
732 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
734 LLP1GSFVSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
735 name =
"LLP1GSFVSITPThinningTool",
736 StreamName = kwargs[
'StreamName'],
737 InDetTrackParticlesKey =
"GSFTrackParticles",
738 AugVerStrings = [IDAndGSFSuffix]))
741 from DerivationFrameworkLLP.LLPToolsConfig
import JetTrackParticleThinningCfg, JetLargeD0TrackParticleThinningCfg
742 LLP1JetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(flags,
743 name =
"LLP1JetTPThinningTool",
744 StreamName = kwargs[
'StreamName'],
745 JetKey =
"AntiKt4EMTopoJets",
746 SelectionString =
"(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
747 InDetTrackParticlesKey =
"InDetTrackParticles"))
749 LLP1FatJetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg( flags,
750 name =
"LLP1FatJetTPThinningTool",
751 StreamName = kwargs[
'StreamName'],
752 JetKey =
"AntiKt10EMTopoRCJets",
753 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
754 InDetTrackParticlesKey =
"InDetTrackParticles",
758 if flags.Tracking.doLargeD0:
759 LLP1LRTJetTPThinningTool = acc.getPrimaryAndMerge(
760 JetLargeD0TrackParticleThinningCfg(
761 flags, name =
"LLP1LRTJetTPThinningTool",
762 StreamName = kwargs[
'StreamName'],
763 JetKey =
"AntiKt4EMTopoJets",
764 SelectionString =
"(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
765 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
767 LLP1LRTFatJetTPThinningTool = acc.getPrimaryAndMerge(
768 JetLargeD0TrackParticleThinningCfg(
769 flags, name =
"LLP1LRTFatJetTPThinningTool",
770 StreamName = kwargs[
'StreamName'],
771 JetKey =
"AntiKt10EMTopoRCJets",
772 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
773 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
776 from DerivationFrameworkLLP.LLPToolsConfig
import PixeldEdxTrackParticleThinningCfg
777 LLP1PixeldEdxTrackParticleThinningTool = acc.getPrimaryAndMerge(PixeldEdxTrackParticleThinningCfg(
779 name =
"LLP1PixeldEdxTrackParticleThinningTool",
780 StreamName = kwargs[
'StreamName'],
781 InDetTrackParticlesKey =
"InDetTrackParticles"))
785 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import JetCaloClusterThinningCfg
787 LLP1CCThinningTool = acc.getPrimaryAndMerge(JetCaloClusterThinningCfg(
790 StreamName = kwargs[
'StreamName'],
791 SGKey =
"AntiKt4EMTopoJets",
792 TopoClCollectionSGKey =
"CaloCalTopoClusters",
793 AdditionalClustersKey = [
"EMOriginTopoClusters",
"LCOriginTopoClusters"]
798 thinningTools = [LLP1TrackParticleThinningTool,
799 LLP1ElectronTPThinningTool,
800 LLP1MuonTPThinningTool,
801 LLP1PhotonTPThinningTool,
802 LLP1TauJetsThinningTool,
803 LLP1TauTPThinningTool,
804 LLP1TauJetMuonRMParticleThinningTool,
805 LLP1DiTauTPThinningTool,
806 LLP1DiTauLowPtThinningTool,
807 LLP1DiTauLowPtTPThinningTool,
808 LLP1VSITPThinningTool,
809 LLP1GSFVSITPThinningTool,
810 LLP1JetTPThinningTool,
811 LLP1FatJetTPThinningTool,
812 LLP1PixeldEdxTrackParticleThinningTool,
815 if flags.Tracking.doLargeD0:
816 thinningTools += [ LLP1LRTJetTPThinningTool,
817 LLP1LRTFatJetTPThinningTool,
818 LLP1LRTGSFTrackParticleThinningTool,
819 LLP1LRTElectronTPThinningTool,
820 LLP1LRTMuonTPThinningTool,
821 LLP1LRTVSITPThinningTool ]
823 if flags.Tracking.doTrackSegmentsDisappearing:
824 thinningTools += [ LLP1DTTrackParticleThinningTool ]
830 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
831 LLP1RCJetSubstructureClustTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
832 name =
"LLP1RCJetSubstructureClustTrimAugTool",
833 StreamName = kwargs[
'StreamName'],
834 JetContainerKey =
"AntiKt10EMTopoRCJets",
835 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
836 GhostConstitNames = [
"GhostLCTopoOrigin"],
837 Suffix =
"clusterTrim",
838 Grooming =
"Trimming",
842 RCSubstructureClusterTrimAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureClusterTrimAug", AugmentationTools = [LLP1RCJetSubstructureClustTrimAugTool])
843 acc.addEventAlgo(RCSubstructureClusterTrimAug)
845 LLP1RCJetSubstructureClustSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
846 name =
"LLP1RCJetSubstructureClustSDAugTool",
847 StreamName = kwargs[
'StreamName'],
848 JetContainerKey =
"AntiKt10EMTopoRCJets",
849 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
850 GhostConstitNames = [
"GhostLCTopoOrigin"],
851 Suffix =
"clusterSoftDrop",
852 Grooming =
"SoftDrop",
856 RCSubstructureClusterSDAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureClusterSDAug", AugmentationTools = [LLP1RCJetSubstructureClustSDAugTool])
857 acc.addEventAlgo(RCSubstructureClusterSDAug)
860 ghostConstitNames = [
"GhostTrack"]
861 if flags.Tracking.doLargeD0:
862 ghostConstitNames += [
"GhostTrackLRT"]
864 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
865 LLP1RCJetSubstructureTrackTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
866 name =
"LLP1RCJetSubstructureTrackTrimAugTool",
867 StreamName = kwargs[
'StreamName'],
868 JetContainerKey =
"AntiKt10EMTopoRCJets",
869 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
870 GhostConstitNames = ghostConstitNames,
871 Suffix =
"trackTrim",
872 Grooming =
"Trimming",
876 RCSubstructureTrackTrimAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureTrackTrimAug", AugmentationTools = [LLP1RCJetSubstructureTrackTrimAugTool])
877 acc.addEventAlgo(RCSubstructureTrackTrimAug)
879 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
880 LLP1RCJetSubstructureTrackSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
881 name =
"LLP1RCJetSubstructureTrackSDAugTool",
882 StreamName = kwargs[
'StreamName'],
883 JetContainerKey =
"AntiKt10EMTopoRCJets",
884 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
885 GhostConstitNames = ghostConstitNames,
886 Suffix =
"trackSoftDrop",
887 Grooming =
"SoftDrop",
891 RCSubstructureTrackSDAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureTrackSDAug", AugmentationTools = [LLP1RCJetSubstructureTrackSDAugTool])
892 acc.addEventAlgo(RCSubstructureTrackSDAug)
899 if flags.Trigger.EDMVersion >= 0:
900 from DerivationFrameworkLLP.LLPToolsConfig
import LLP1TriggerSkimmingToolCfg
901 LLP1TriggerSkimmingTool = acc.getPrimaryAndMerge(LLP1TriggerSkimmingToolCfg(
902 flags, name =
"LLP1TriggerSkimmingTool",
903 TriggerListsHelper = kwargs[
'TriggerListsHelper']))
905 skimmingTools.append(LLP1TriggerSkimmingTool)
907 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
908 acc.addEventAlgo(DerivationKernel(name,
909 SkimmingTools = skimmingTools,
910 ThinningTools = thinningTools,
911 AugmentationTools = augmentationTools))
921 acc = ComponentAccumulator()
923 MergedElectronContainer = (
924 "StdWithLRTElectrons" if flags.Tracking.doLargeD0
else "Electrons")
925 MergedMuonContainer =
"StdWithLRTMuons" if flags.Tracking.doLargeD0
else "Muons"
926 MergedMuonContainer_wZPH = (
927 "StdWithLRTMuons_wZPH" if flags.Tracking.doLargeD0
else "Muons_wZPH")
933 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
934 LLP1TriggerListsHelper = TriggerListsHelper(flags)
937 acc.merge(
LLP1KernelCfg(flags, name=
"LLP1Kernel", StreamName =
'StreamDAOD_LLP1', TriggerListsHelper = LLP1TriggerListsHelper))
942 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
949 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite =
False,
950 stream_name =
'StreamDAOD_LLP1'))
951 contNames = [ MergedMuonContainer, MergedElectronContainer,
"Photons" ]
952 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_LLP1_LRTMerged",
953 isPhysLite =
False, containerNames = contNames,
954 useSelTools =
True, stream_name =
'StreamDAOD_LLP1',
955 isoDecSuffix =
"CloseByCorr_LRT",
956 caloDecSuffix =
'_LRT',
957 hasLRT = flags.Tracking.doLargeD0))
958 contNames = [
"ZeroPixelHitMuons" ]
959 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_LLP1_ZeroPixelHitsMuons",
960 isPhysLite =
False, containerNames = contNames,
961 stream_name =
'StreamDAOD_LLP1',
962 isoDecSuffix =
"CloseByCorr_ZPH"))
964 if flags.Tracking.doLargeD0:
965 contNames = [
"LRTElectrons",
"MuonsLRT" ]
966 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_LLP1",
967 isPhysLite =
False, containerNames = contNames,
969 stream_name =
'StreamDAOD_LLP1', hasLRT =
True))
974 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
975 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
976 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
978 LLP1SlimmingHelper =
SlimmingHelper(
"LLP1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
980 LLP1SlimmingHelper.SmartCollections = [
"EventInfo",
985 "InDetTrackParticles",
987 "AntiKt4EMPFlowJets",
988 "MET_Baseline_AntiKt4EMTopo",
989 "MET_Baseline_AntiKt4EMPFlow",
994 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
995 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
996 if flags.Tracking.doLargeD0:
997 LLP1SlimmingHelper.SmartCollections += [
"LRTElectrons",
"MuonsLRT",
998 "InDetLargeD0TrackParticles"]
1000 LLP1SlimmingHelper.AllVariables = [
"InDetDisappearingTrackParticles",
1001 "MSDisplacedVertex",
1002 "MuonSpectrometerTrackParticles",
1003 "UnAssocMuonSegments",
1006 "CombinedMuonTrackParticles",
1007 "ExtrapolatedMuonTrackParticles",
1008 "CombinedStauTrackParticles",
1009 "AntiKt4EMTopoJets",
1012 "ElectronCaloRings",
1016 "EMOriginTopoClusters",
1018 "METAssoc_AntiKt4EMTopo",
1019 "MET_Core_AntiKt4EMTopo",
1020 "METAssoc_AntiKt4EMPFlow",
1021 "MET_Core_AntiKt4EMPFlow",
1022 "InDetLowPtRoITrackParticles",
1025 "DisappearingPixelMSOSs",
1026 "LowPtRoIPixelMSOSs",
1029 "DisappearingSCT_MSOSs",
1030 "LowPtRoISCT_MSOSs",
1033 if flags.Tracking.doLargeD0:
1034 LLP1SlimmingHelper.AllVariables = [
"MuonSegments_LRT",
1035 "CombinedMuonsLRTTrackParticles",
1036 "ExtraPolatedMuonsLRTTrackParticles",
1037 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
1040 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
1042 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
1043 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
1044 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
1045 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
1046 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
1047 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
1048 StaticContent += [
"xAOD::JetContainer#AntiKt10EMTopoRCJets",
"xAOD::JetAuxContainer#AntiKt10EMTopoRCJetsAux.-PseudoJet"]
1050 for wp
in LLP1VrtSecInclusiveSuffixes:
1051 StaticContent += [
"xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
1052 StaticContent += [
"xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp +
"Aux."]
1054 for wp
in LLP1NewVSISuffixes:
1055 StaticContent += [
"xAOD::VertexContainer#NewVrtSecInclusive_SecondaryVertices" + wp]
1056 StaticContent += [
"xAOD::VertexAuxContainer#NewVrtSecInclusive_SecondaryVertices" + wp +
"Aux." + excludedVertexAuxData]
1058 StaticContent += [
"xAOD::VertexContainer#MuSAVertices"]
1059 StaticContent += [
"xAOD::VertexAuxContainer#MuSAVerticesAux."]
1060 StaticContent += [
"xAOD::TrackParticleContainer#MuSAExtrapolatedTrackParticles"]
1061 StaticContent += [
"xAOD::TrackParticleAuxContainer#MuSAExtrapolatedTrackParticlesAux."]
1063 if flags.Derivation.LLP.doMuSAValidation:
1064 StaticContent += [
"xAOD::VertexContainer#JPsiMuSAVertices"]
1065 StaticContent += [
"xAOD::VertexAuxContainer#JPsiMuSAVerticesAux."]
1066 StaticContent += [
"xAOD::VertexContainer#JPsiVertices"]
1067 StaticContent += [
"xAOD::VertexAuxContainer#JPsiVerticesAux."]
1068 StaticContent += [
"xAOD::TrackParticleContainer#JPsiVerticesTracks"]
1069 StaticContent += [
"xAOD::TrackParticleAuxContainer#JPsiVerticesTracksAux."]
1070 StaticContent += [
"xAOD::TrackParticleContainer#JPsiMuSAExtrapolatedTrackParticles"]
1071 StaticContent += [
"xAOD::TrackParticleAuxContainer#JPsiMuSAExtrapolatedTrackParticlesAux."]
1072 StaticContent += [
"xAOD::VertexContainer#ValidationMuSAVertices"]
1073 StaticContent += [
"xAOD::VertexAuxContainer#ValidationMuSAVerticesAux."]
1074 StaticContent += [
"xAOD::TrackParticleContainer#ValidationMuSAExtrapolatedTrackParticles"]
1075 StaticContent += [
"xAOD::TrackParticleAuxContainer#ValidationMuSAExtrapolatedTrackParticlesAux."]
1077 LLP1SlimmingHelper.ExtraVariables += [
"AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
1078 "Electrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1079 "Photons.DFCommonPhotonsIsEMMedium.DFCommonPhotonsIsEMMediumIsEMValue.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1080 "Muons.meanDeltaADCCountsMDT",
1081 "egammaClusters.phi_sampl.eta0.phi0",
1082 "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostBHadronsFinal.GhostCHadronsFinal.GhostTrack.GhostTrackCount.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1083 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.DFCommonJets_fJvt.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostBHadronsFinal.GhostCHadronsFinal.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1084 "TruthPrimaryVertices.t.x.y.z.sumPt2",
1085 "PrimaryVertices.t.x.y.z.sumPt2.covariance",
1086 "InDetTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
1087 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
1088 "InDetTrackParticles.numberOfIBLOverflowsdEdx.numberOfUsedHitsdEdx.pixeldEdx",
1089 "InDetTrackParticles.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberOfNextToInnermostPixelLayerHits.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits",
1090 "InDetTrackParticles.numberOfSCTOutliers.numberOfSCTSpoiltHits",
1091 "InDetTrackParticles.numberOfTRTHoles.numberOfTRTDeadStraws.numberOfTRTSharedHits.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.TRTdEdx.TRTdEdxUsedHits.hitPattern",
1092 "InDetTrackParticles.truthMatchProbability.truthClassification.truthOrigin.truthType",
1093 "InDetTrackParticles.TrkIsoPtPdEdx_ptcone20.TrkIsoPtPdEdx_ptcone30.TrkIsoPtPdEdx_ptcone40.TrkIsoPtTightPdEdx_ptcone20.TrkIsoPtTightPdEdx_ptcone30.TrkIsoPtTightPdEdx_ptcone40",
1094 "InDetTrackParticles.LLP1_ptcone20.LLP1_ptcone30.LLP1_ptcone40.LLP1_ptvarcone20.LLP1_ptvarcone30.LLP1_ptvarcone40.definingParametersCovMatrixDiag.definingParametersCovMatrixOffDiag",
1095 "InDetTrackParticles.LLP1_topoetcone20.LLP1_topoetcone30.LLP1_topoetcone40.LLP1_topoetcone20NonCoreCone.LLP1_topoetcone30NonCoreCone.LLP1_topoetcone40NonCoreCone",
1096 "InDetTrackParticles.LLP1_CaloCelldEta.LLP1_CaloCelldPhi.LLP1_CaloCelldR.LLP1_CaloCelldX.LLP1_CaloCelldY.LLP1_CaloCelldZ.LLP1_CaloCellE.LLP1_CaloCellEta.LLP1_CaloCellGain.LLP1_CaloCellID.LLP1_CaloCellPhi.LLP1_CaloCellProvenance.LLP1_CaloCellQuality.LLP1_CaloCellR.LLP1_CaloCellSampling.LLP1_CaloCellTime.LLP1_CaloCellX.LLP1_CaloCellY.LLP1_CaloCellZ.LLP1_CaloCellEneDiff.LLP1_CaloCellTimeDiff",
1097 "InDetTrackParticles.Reco_msosLink",
1099 "InDetLargeD0TrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
1100 "GSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthClassification.truthOrigin.truthType",
1101 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
1102 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
1103 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
1104 "EventInfo.DFCommonJets_eventClean_SuperLooseBadLLP.DFCommonJets_eventClean_SuperLooseBadLLP_EMTopo.DFCommonJets_eventClean_LooseBadLLP_EMTopo",
1105 "TauJets.dRmax.etOverPtLeadTrk.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1106 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
1107 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
1108 if flags.Tracking.doLargeD0:
1109 LLP1SlimmingHelper.ExtraVariables += [
1110 "LRTElectrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1111 "LRTegammaClusters.phi_sampl.eta0.phi0",
1112 "LRTGSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthOrigin.truthType",
1113 "AntiKt4EMTopoJets.GhostTrackLRT.GhostTrackLRTCount",
1118 LLP1SlimmingHelper.ExtraVariables += [
"Muons.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
1119 "Electrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT",
1120 "Photons.topoetcone20_CloseByCorr_LRT.topoetcone40_CloseByCorr_LRT.ptcone20_CloseByCorr_LRT"]
1121 if flags.Tracking.doLargeD0:
1122 LLP1SlimmingHelper.ExtraVariables += [
1123 "MuonsLRT.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
1124 "LRTElectrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT"]
1127 "is_selected",
"is_associated",
"is_svtrk_final",
"pt_wrtSV",
"eta_wrtSV",
1128 "phi_wrtSV",
"d0_wrtSV",
"z0_wrtSV",
"errP_wrtSV",
"errd0_wrtSV",
1129 "errz0_wrtSV",
"chi2_toSV"
1132 for suffix
in LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes:
1133 LLP1SlimmingHelper.ExtraVariables += [
"InDetTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1134 LLP1SlimmingHelper.ExtraVariables += [
"GSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1135 if flags.Tracking.doLargeD0:
1136 LLP1SlimmingHelper.ExtraVariables += [
"InDetLargeD0TrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1137 LLP1SlimmingHelper.ExtraVariables += [
"LRTGSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1139 LLP1SlimmingHelper.ExtraVariables.append(
'CaloCalTopoClusters.e_samplCaloCalTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME.time.CENTER_LAMBDA.rawE.rawM.rawPhi.rawEta.clusterSize.eta0.phi0.altE.altEta.altPhi.altM.AVG_LAR_Q.AVG_TILE_Q.BADLARQ_FRAC.EM_PROBABILITY.ENG_BAD_CELLS.ENG_POS.ISOLATION.N_BAD_CELLS.SECOND_LAMBDA.SECOND_R')
1140 LLP1SlimmingHelper.AppendToDictionary[
"EMOriginTopoClusters"]=
'xAOD::CaloClusterContainer'
1141 LLP1SlimmingHelper.AppendToDictionary[
"EMOriginTopoClustersAux"]=
'xAOD::ShallowAuxContainer'
1142 LLP1SlimmingHelper.ExtraVariables.append(
'EMOriginTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME.time.CENTER_LAMBDA.rawE.rawM.rawPhi.rawEta.clusterSize.eta0.phi0.altE.altEta.altPhi.altM.AVG_LAR_Q.AVG_TILE_Q.BADLARQ_FRAC.EM_PROBABILITY.ENG_BAD_CELLS.ENG_POS.ISOLATION.N_BAD_CELLS.SECOND_LAMBDA.SECOND_R')
1146 if flags.Input.isMC:
1148 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
1149 addTruth3ContentToSlimmerTool(LLP1SlimmingHelper)
1150 LLP1SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets',
'AntiKt4TruthJets']
1151 LLP1SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
1153 "Photons.TruthLink"]
1154 if flags.Tracking.doLargeD0:
1155 LLP1SlimmingHelper.ExtraVariables += [
"LRTElectrons.TruthLink",
1156 "MuonsLRT.TruthLink"]
1158 if flags.Derivation.LLP.saveFullTruth:
1159 LLP1SlimmingHelper.ExtraVariables += [
'TruthParticles',
'TruthVertices']
1160 StaticContent += [
"xAOD::JetContainer#AntiKt10TruthRCJets",
"xAOD::JetAuxContainer#AntiKt10TruthRCJetsAux.-PseudoJet"]
1163 StaticContent += [
"xAOD::MuonContainer#ZeroPixelHitMuons",
"xAOD::MuonAuxContainer#ZeroPixelHitMuonsAux."]
1165 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import (
1166 PhotonsCPDetailedContent,
1168 LLP1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
1171 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addOriginCorrectedClustersToSlimmingTool
1172 addOriginCorrectedClustersToSlimmingTool(LLP1SlimmingHelper,writeLC=
True,writeEM=
True)
1173 LLP1SlimmingHelper.StaticContent = StaticContent
1176 LLP1SlimmingHelper.IncludeTriggerNavigation =
False
1177 LLP1SlimmingHelper.IncludeJetTriggerContent =
False
1178 LLP1SlimmingHelper.IncludeMuonTriggerContent =
False
1179 LLP1SlimmingHelper.IncludeEGammaTriggerContent =
False
1180 LLP1SlimmingHelper.IncludeTauTriggerContent =
False
1181 LLP1SlimmingHelper.IncludeEtMissTriggerContent =
False
1182 LLP1SlimmingHelper.IncludeBJetTriggerContent =
False
1183 LLP1SlimmingHelper.IncludeBPhysTriggerContent =
False
1184 LLP1SlimmingHelper.IncludeMinBiasTriggerContent =
False
1188 if flags.Trigger.EDMVersion == 2:
1189 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
1190 from DerivationFrameworkLLP.LLPToolsConfig
import LLP1TriggerMatchingToolRun2Cfg
1191 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1192 OutputContainerPrefix =
"TrigMatch_",
1193 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesTau)
1194 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1195 OutputContainerPrefix =
"TrigMatch_",
1196 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau)
1198 acc.merge(LLP1TriggerMatchingToolRun2Cfg(flags,
1199 name =
"LRTTriggerMatchingTool_LLP1",
1200 OutputContainerPrefix =
"LRTTrigMatch_LLP1_",
1201 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1202 InputElectrons=MergedElectronContainer,
1203 InputMuons=MergedMuonContainer_wZPH
1206 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1207 OutputContainerPrefix =
"LRTTrigMatch_LLP1_",
1208 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1209 InputElectrons=MergedElectronContainer,
1210 InputMuons=MergedMuonContainer_wZPH
1213 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
1214 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
1215 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(LLP1SlimmingHelper)
1218 LLP1ItemList = LLP1SlimmingHelper.GetItemList()
1219 acc.merge(OutputStreamCfg(flags,
"DAOD_LLP1", ItemList=LLP1ItemList, AcceptAlgs=[
"LLP1Kernel"]))
1220 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_LLP1", AcceptAlgs=[
"LLP1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))