26 """Configure the derivation framework driving algorithm (kernel) for LLP1"""
33 from DerivationFrameworkInDet.InDetToolsConfig
import InDetLRTMergeCfg
35 acc.merge(
InDetLRTMergeCfg(flags, name=
"GSFTrackMergerAlg", InputTrackParticleLocations = [
"GSFTrackParticles",
"LRTGSFTrackParticles"], OutputTrackParticleLocation = MergedGSFTrackCollection, OutputTrackParticleLocationCopy = MergedGSFTrackCollection))
36 acc.merge(
InDetLRTMergeCfg(flags, name=
"InDetDisappearingLRTMerge",InputTrackParticleLocations = [
"InDetDisappearingTrackParticles",
"InDetLargeD0TrackParticles"],OutputTrackParticleLocation = MergedTrackletCollection))
39 from DerivationFrameworkLLP.LLPToolsConfig
import LRTMuonMergerAlg
41 PromptMuonLocation =
"Muons",
42 LRTMuonLocation =
"MuonsLRT",
43 OutputMuonLocation = MergedMuonContainer,
44 CreateViewCollection =
True,
45 UseRun3WP = flags.GeoModel.Run == LHCPeriod.Run3))
48 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronMergerAlg
50 PromptElectronLocation =
"Electrons",
51 LRTElectronLocation =
"LRTElectrons",
52 OutputCollectionName = MergedElectronContainer,
54 CreateViewCollection =
True))
57 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
58 MaxCellDecoratorCfg, MaxCellDecoratorKernelCfg)
66 name =
"LLP1LRTMaxCellDecoratorTool",
67 SGKey_electrons =
"LRTElectrons",
68 SGKey_egammaClusters = (
"" if flags.GeoModel.Run == LHCPeriod.Run3
69 else "egammaClusters"),
71 acc.addPublicTool(LLP1LRTMaxCellDecoratorTool)
74 from TrkConfig.TrkVertexFitterUtilsConfig
import AtlasFullLinearizedTrackFactoryCfg
76 name =
"LLP1AtlasFullLinearizedTrackFactory"))
77 acc.addPublicTool(AtlasFullLinearizedTrackFactoryTool)
79 from TrkConfig.AtlasExtrapolatorConfig
import AtlasExtrapolatorCfg
81 name =
"LLP1ExtrapolatorTool"))
82 acc.addPublicTool(ExtrapolatorTool)
85 from DerivationFrameworkLLP.LLPToolsConfig
import TrackParametersKVUCfg
87 name =
"LLP1TrackParametersKVU",
88 TrackParticleContainerName =
"InDetDisappearingTrackParticles",
89 VertexContainerName =
"PrimaryVertices",
90 LinearizedTrackFactory = AtlasFullLinearizedTrackFactoryTool,
91 TrackExtrapolator = ExtrapolatorTool))
92 acc.addPublicTool(LLP1TrackParametersKVUTool)
96 isoPar = ROOT.xAOD.Iso.IsolationType
97 deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20]
98 deco_ptcones_suffix = [
"ptcone40",
"ptcone30",
"ptcone20"]
101 from InDetConfig.InDetTrackSelectionToolConfig
import InDetTrackSelectionTool_Loose_Cfg
103 name =
"TrackSelectionToolStd",
108 name =
"TrackSelectionToolPdEdx",
114 name =
"TrackSelectionToolPdEdxTight",
119 from IsolationAlgs.IsoToolsConfig
import TrackIsolationToolCfg, CaloIsolationToolCfg
121 name =
"TrackIsoToolStd",
122 TrackSelectionTool = TrackSelectionToolStd))
123 acc.addPublicTool(TrackIsoToolStd)
126 name =
"TrackIsoToolPdEdx",
127 TrackSelectionTool = TrackSelectionToolPdEdx))
128 acc.addPublicTool(TrackIsoToolPdEdx)
131 name =
"TrackIsoToolPdEdxTight",
132 TrackSelectionTool = TrackSelectionToolPdEdxTight))
133 acc.addPublicTool(TrackIsoToolPdEdxTight)
135 from CaloIdentifier
import SUBCALO
137 name =
"CaloIsoTool",
138 EMCaloNums = [SUBCALO.LAREM],
139 HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
141 UseCaloExtensionCaching =
False,
142 saveOnlyRequestedCorrections =
True))
143 acc.addPublicTool(CaloIsoTool)
145 from DerivationFrameworkInDet.InDetToolsConfig
import IsolationTrackDecoratorCfg
147 name =
"LLP1IsolationTrackDecorator",
148 TrackIsolationTool = TrackIsoToolStd,
149 CaloIsolationTool = CaloIsoTool,
150 TargetContainer =
"InDetTrackParticles",
151 SelectionString =
"InDetTrackParticles.pt>10*GeV",
152 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
153 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20",
"ptvarcone40",
"ptvarcone30",
"ptvarcone20",
"topoetcone40",
"topoetcone30",
"topoetcone20"],
154 Prefix = deco_prefix))
155 acc.addPublicTool(LLP1IsolationTrackDecoratorTool)
158 name =
"LLP1IsolationTrackDecoratorDT",
159 TrackIsolationTool = TrackIsoToolStd,
160 CaloIsolationTool = CaloIsoTool,
161 TargetContainer =
"InDetDisappearingTrackParticles",
162 SelectionString =
"InDetDisappearingTrackParticles.pt>10*GeV",
163 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
164 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20",
"ptvarcone40",
"ptvarcone30",
"ptvarcone20",
"topoetcone40",
"topoetcone30",
"topoetcone20"],
165 Prefix = deco_prefix))
166 acc.addPublicTool(LLP1IsolationTrackDecoratorDTTool)
169 name =
"LLP1IsolationTrackDecoratorPdEdx",
170 TrackIsolationTool = TrackIsoToolPdEdx,
171 CaloIsolationTool = CaloIsoTool,
172 TargetContainer =
"InDetTrackParticles",
174 Prefix =
'TrkIsoPtPdEdx_',
175 isoSuffix = deco_ptcones_suffix))
176 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTool)
179 name =
"LLP1IsolationTrackDecoratorPdEdxDT",
180 TrackIsolationTool = TrackIsoToolPdEdx,
181 CaloIsolationTool = CaloIsoTool,
182 TargetContainer =
"InDetDisappearingTrackParticles",
184 Prefix =
'TrkIsoPtPdEdx_',
185 isoSuffix = deco_ptcones_suffix))
186 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxDTTool)
189 name =
"LLP1IsolationTrackDecoratorPdEdxTight",
190 TrackIsolationTool = TrackIsoToolPdEdxTight,
191 CaloIsolationTool = CaloIsoTool,
192 TargetContainer =
"InDetTrackParticles",
194 Prefix =
'TrkIsoPtTightPdEdx_',
195 isoSuffix = deco_ptcones_suffix))
196 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightTool)
199 name =
"LLP1IsolationTrackDecoratorPdEdxTightDT",
200 TrackIsolationTool = TrackIsoToolPdEdxTight,
201 CaloIsolationTool = CaloIsoTool,
202 TargetContainer =
"InDetDisappearingTrackParticles",
204 Prefix =
'TrkIsoPtTightPdEdx_',
205 isoSuffix = deco_ptcones_suffix))
206 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightDTTool)
208 from DerivationFrameworkLLP.LLPToolsConfig
import TrackParticleCaloCellDecoratorCfg
210 name =
"LLP1TrackParticleCaloCellDecorator",
211 DecorationPrefix =
"LLP1",
212 ContainerName =
"InDetTrackParticles"))
213 acc.addPublicTool(LLP1TrackParticleCaloCellDecoratorTool)
215 augmentationTools = [ LLP1LRTMaxCellDecoratorTool,
216 LLP1TrackParametersKVUTool,
217 LLP1IsolationTrackDecoratorTool,
218 LLP1IsolationTrackDecoratorDTTool,
219 LLP1IsolationTrackDecoratorPdEdxTool,
220 LLP1IsolationTrackDecoratorPdEdxDTTool,
221 LLP1IsolationTrackDecoratorPdEdxTightTool,
222 LLP1IsolationTrackDecoratorPdEdxTightDTTool,
223 LLP1TrackParticleCaloCellDecoratorTool ]
228 name =
"LLP1TauMaxCellDecoratorTool",
229 SGKey_taus =
'TauJets',
230 SGKey_electrons =
'',
232 acc.addPublicTool(LLP1TauMaxCellDecoratorTool)
234 augmentationTools += [ LLP1TauMaxCellDecoratorTool ]
239 name =
"LLP1AntiKt4EMTopoJetMaxCellDecoratorTool",
240 SGKey_jets =
'AntiKt4EMTopoJets',
242 SGKey_electrons =
'',
244 acc.addPublicTool(LLP1AntiKt4EMTopoJetMaxCellDecoratorTool)
246 augmentationTools += [ LLP1AntiKt4EMTopoJetMaxCellDecoratorTool ]
251 name =
"LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool",
252 SGKey_jets =
'AntiKt4EMPFlowJets',
254 SGKey_electrons =
'',
256 acc.addPublicTool(LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool)
258 augmentationTools += [ LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool ]
261 from JetRecConfig.JetRecConfig
import registerAsInputConstit, JetRecCfg
262 from JetRecConfig.StandardSmallRJets
import AntiKt4Truth, AntiKt4EMTopo
263 from JetRecConfig.JetDefinition
import JetDefinition
264 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
268 cst.AntiKt4EMTopoJets.label =
"EMTopoRC"
269 cst.AntiKt4TruthJets.label =
"TruthRC"
271 AntiKt10RCEMTopo = JetDefinition(
"AntiKt",1.0,cst.AntiKt4EMTopoJets,
272 ghostdefs = [
"Track",
"TrackLRT",
"LCTopoOrigin"],
273 modifiers = (
"Sort",
"Filter:200000",),
274 standardRecoMode =
True,
278 AntiKt10RCTruth = JetDefinition(
"AntiKt",1.0,cst.AntiKt4TruthJets,
280 modifiers = (
"Sort",
"Filter:200000",),
281 standardRecoMode =
True,
285 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
287 acc.merge(
JetRecCfg(flags,AntiKt10RCEMTopo))
288 if flags.Input.isMC: acc.merge(
JetRecCfg(flags,AntiKt10RCTruth))
291 from DerivationFrameworkJetEtMiss.METCommonConfig
import METLRTCfg
292 acc.merge(
METLRTCfg(flags,
"AntiKt4EMTopo"))
293 acc.merge(
METLRTCfg(flags,
"AntiKt4EMPFlow"))
296 from DerivationFrameworkEGamma.EGammaLRTConfig
import EGammaLRTCfg
299 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronLHSelectorsCfg
303 from DerivationFrameworkLLP.LLPToolsConfig
import PhotonIsEMSelectorsCfg
307 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
312 from DerivationFrameworkLLP.LLPToolsConfig
import RecoverZeroPixelHitMuonsCfg
316 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
320 from VrtSecInclusive.VrtSecInclusiveConfig
import VrtSecInclusiveCfg
323 from MuSAVtxFitter.MuSAVtxFitterConfig
import MuSAVtxFitterConfig, MuSAVtxJPsiValidationAlgCfg, MuSAVtxFitterValidationConfig
326 name =
"VrtSecInclusive",
327 AugmentingVersionString =
"",
328 FillIntermediateVertices =
False,
329 TrackLocation = MergedTrackCollection))
330 LLP1VrtSecInclusiveSuffixes.append(
"")
333 shortLifetimeSuffix =
"_shortLifetime"
335 name =
"VrtSecInclusive_InDet"+shortLifetimeSuffix,
336 AugmentingVersionString = shortLifetimeSuffix,
337 FillIntermediateVertices =
False,
338 TrackLocation = MergedTrackCollection,
339 twoTrkVtxFormingD0Cut = 1.0))
340 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeSuffix)
343 dissapearingSuffix =
"_disappearing"
345 name =
"VrtSecInclusive_"+dissapearingSuffix,
346 AugmentingVersionString = dissapearingSuffix,
347 FillIntermediateVertices =
False,
348 TrackLocation = MergedTrackletCollection,
349 doReassembleVertices =
True,
350 doMergeByShuffling =
False,
351 doMergeFinalVerticesDistance=
False,
352 doAssociateNonSelectedTracks=
False,
353 DoPVcompatibility =
True,
354 RemoveFake2TrkVrt =
False,
355 PassThroughTrackSelection =
True,
356 TruncateListOfWorkingVertices =
False,
357 twoTrkVtxFormingD0Cut = 0.0,
358 SelVrtChi2Cut = 1000000.0,
359 twoTrVrtMaxPerigeeDist = 50.0,
360 twoTrVrtMinRadius = 50.0,
361 doDisappearingTrackVertexing=
True
363 LLP1VrtSecInclusiveSuffixes.append(dissapearingSuffix)
367 if flags.Input.isMC
and flags.Derivation.LLP.doTrackSystematics:
368 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig
import TrackSystematicsAlgCfg
369 TrackSystSuffix =
"_TRK_EFF_LARGED0_GLOBAL__1down"
372 name=f
"InDetTrackSystematicsAlg{TrackSystSuffix}",
373 InputTrackContainer = MergedTrackCollection,
374 OutputTrackContainer = f
"{MergedTrackCollection}{TrackSystSuffix}"))
376 name = f
"VrtSecInclusive{TrackSystSuffix}",
377 AugmentingVersionString = TrackSystSuffix,
378 FillIntermediateVertices =
False,
379 TrackLocation = f
"{MergedTrackCollection}{TrackSystSuffix}"))
380 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffix)
382 TrackSystSuffixShortLifetime =
"_TRK_EFF_LARGED0_GLOBAL__1down_shortLifetime"
385 name=f
"InDetTrackSystematicsAlg{TrackSystSuffixShortLifetime}",
386 InputTrackContainer = MergedTrackCollection,
387 OutputTrackContainer = f
"{MergedTrackCollection}{TrackSystSuffixShortLifetime}"))
389 name = f
"VrtSecInclusive{TrackSystSuffixShortLifetime}",
390 AugmentingVersionString = TrackSystSuffixShortLifetime,
391 FillIntermediateVertices =
False,
392 TrackLocation = f
"{MergedTrackCollection}{TrackSystSuffixShortLifetime}",
393 twoTrkVtxFormingD0Cut = 1.0))
394 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffixShortLifetime)
397 from DerivationFrameworkLLP.LLPToolsConfig
import ZeroPixelHitMuonMergerAlgCfg
399 InputMuonContainers = [MergedMuonContainer,
"ZeroPixelHitMuons"],
400 OutputMuonLocation = MergedMuonContainer_wZPH))
404 LeptonsSuffix =
"_Leptons"
406 name =
"VrtSecInclusive_InDet"+LeptonsSuffix,
407 AugmentingVersionString = LeptonsSuffix,
408 FillIntermediateVertices =
False,
409 TrackLocation = MergedTrackCollection,
410 twoTrkVtxFormingD0Cut = 1.0,
411 doSelectTracksFromMuons =
True,
412 doRemoveCaloTaggedMuons =
True,
413 doSelectTracksFromElectrons =
True,
414 MuonLocation = MergedMuonContainer,
415 ElectronLocation = MergedElectronContainer))
416 LLP1VrtSecInclusiveSuffixes.append(LeptonsSuffix)
419 LepTrackSuffix =
"_LepTrack"
421 name =
"VrtSecInclusive_InDet"+LepTrackSuffix,
422 AugmentingVersionString = LepTrackSuffix,
423 FillIntermediateVertices =
False,
424 TrackLocation = MergedTrackCollection,
425 MuonLocation = MergedMuonContainer,
426 ElectronLocation = MergedElectronContainer,
427 twoTrkVtxFormingD0Cut = 1.0,
428 doSelectIDAndGSFTracks =
True,
429 doRemoveCaloTaggedMuons =
True,
430 doRemoveNonLeptonVertices =
True,
431 doAssociateNonSelectedTracks=
False))
432 LLP1VrtSecInclusiveSuffixes.append(LepTrackSuffix)
435 BoostedMuonsSuffix =
"_BoostedMuons"
437 name =
"VrtSecInclusive_InDet"+BoostedMuonsSuffix,
438 AugmentingVersionString = BoostedMuonsSuffix,
439 FillIntermediateVertices =
False,
440 TrackLocation = MergedTrackCollection,
441 twoTrkVtxFormingD0Cut = 0.0,
442 doSelectTracksFromMuons =
True,
443 doRemoveCaloTaggedMuons =
True,
444 doSelectTracksFromElectrons =
False,
445 MuonLocation = MergedMuonContainer_wZPH,
446 do_PVvetoCut =
False,
447 DoTwoTrSoftBtag =
True,
448 TwoTrVrtMinDistFromPVCut = 0.5,
449 associatePtCut = 500.))
450 LLP1VrtSecInclusiveSuffixes.append(BoostedMuonsSuffix)
454 BoostedElectronsSuffix =
"_BoostedElectrons"
456 name =
"VrtSecInclusive_InDet"+BoostedElectronsSuffix,
457 AugmentingVersionString = BoostedElectronsSuffix,
458 FillIntermediateVertices =
False,
459 TrackLocation = MergedTrackCollection,
460 twoTrkVtxFormingD0Cut = 0.0,
461 doSelectTracksFromMuons =
False,
462 doSelectTracksFromElectrons =
True,
463 ElectronLocation = MergedElectronContainer,
464 do_PVvetoCut =
False,
465 DoTwoTrSoftBtag =
True,
466 TwoTrVrtMinDistFromPVCut = 0.5,
467 associatePtCut = 500.))
468 LLP1VrtSecInclusiveSuffixes.append(BoostedElectronsSuffix)
473 MuonContainerName=MergedMuonContainer))
475 if flags.Derivation.LLP.doMuSAValidation:
478 MuonContainer=MergedMuonContainer,
479 JPsiMuonContainer=
"JPsiMuons"))
483 name=
"MuSAVtxFitterValidationJPsi",
484 MuonContainerName=
"JPsiMuons"))
487 MuonContainerName=MergedMuonContainer,
488 MuSAVtxContainerName=
"ValidationMuSAVertices",
489 MuSAExtrapolatedTracksName=
"ValidationMuSAExtrapolatedTrackParticles",
490 MSTPContainerName=
"MuonSpectrometerTrackParticles"))
494 from NewVrtSecInclusiveTool.NewVrtSecInclusiveAlgConfig
import NewVrtSecInclusiveAlgLLPCfg
495 from NewVrtSecInclusiveTool.NewVrtSecInclusiveConfig
import DVFinderToolCfg
496 IDAndGSFSuffix =
"_IDAndGSF_LepTrack"
498 NVSILepTrack_Tool = acc.popToolsAndMerge(
DVFinderToolCfg(flags,FillHist=
False,AugmentingVersionString=IDAndGSFSuffix,MaxZVrt=1000.,AntiPileupSigRCut=2.))
500 algname =
"NVSI"+IDAndGSFSuffix,
501 AugmentingVersionString = IDAndGSFSuffix,
502 ElectronContainer = MergedElectronContainer,
503 MuonContainer = MergedMuonContainer,
504 TrackParticleContainer = MergedTrackCollection,
505 GSFTrackParticleContainer = MergedGSFTrackCollection,
506 BVertexContainerName =
"NewVrtSecInclusive_SecondaryVertices"+IDAndGSFSuffix,
509 RemoveNonLepVertices =
True,
510 BVertexTool = NVSILepTrack_Tool))
511 LLP1NewVSISuffixes.append(IDAndGSFSuffix)
514 jet_clean_prefix=
"DFCommonJets_"
515 jet_clean_container=
"AntiKt4EMTopoJets"
516 jet_clean_level=
"SuperLooseBadLLP"
517 from JetSelectorTools.JetSelectorToolsConfig
import EventCleaningToolCfg, JetCleaningToolCfg
519 "LLP1JetCleanSuperLLP",
523 acc.addPublicTool(LLP1JetCleanSuperLLPTool)
526 "LLP1EventCleanSuperLLP",
528 LLP1EventCleanSuperLLPTool.JetCleanPrefix = jet_clean_prefix
529 LLP1EventCleanSuperLLPTool.OrDecorator =
"passOR_EMTopo"
530 LLP1EventCleanSuperLLPTool.JetContainer = jet_clean_container
531 LLP1EventCleanSuperLLPTool.JetCleaningTool = LLP1JetCleanSuperLLPTool
532 acc.addPublicTool(LLP1EventCleanSuperLLPTool)
534 LLP1EventCleanAlg = CompFactory.EventCleaningTestAlg(
535 "LLP1JetCleanDecoratorSuperLLP",
536 EventCleaningTool = LLP1EventCleanSuperLLPTool,
537 JetCollectionName = jet_clean_container,
538 EventCleanPrefix = jet_clean_prefix,
539 CleaningLevel = jet_clean_level,
544 acc.addSequence(CompFactory.AthSequencer(
'EventCleanSeq', Sequential=
True))
545 acc.addEventAlgo(LLP1EventCleanAlg,
'EventCleanSeq')
549 from DerivationFrameworkLLP.LLPToolsConfig
import AugmentationToolLeadingJetsCfg
551 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name, AugmentationTools = [augmentationToolLeadingJets]))
554 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg, EgammaTrackParticleThinningCfg, MuonTrackParticleThinningCfg, TauTrackParticleThinningCfg, DiTauTrackParticleThinningCfg
555 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
556 from DerivationFrameworkTau.TauCommonConfig
import TauThinningCfg
561 name =
"LLP1TrackParticleThinningTool",
562 StreamName = kwargs[
'StreamName'],
563 SelectionString =
"InDetTrackParticles.pt>10*GeV",
564 InDetTrackParticlesKey =
"InDetTrackParticles"))
568 name =
"LLP1LRTGSFTrackParticleThinningTool",
569 StreamName = kwargs[
'StreamName'],
570 SelectionString =
"LRTGSFTrackParticles.pt>0*GeV",
571 InDetTrackParticlesKey =
"LRTGSFTrackParticles"))
575 name =
"LLP1DTTrackParticleThinningTool",
576 StreamName = kwargs[
'StreamName'],
577 SelectionString =
"InDetDisappearingTrackParticles.pt>5*GeV",
578 InDetTrackParticlesKey =
"InDetDisappearingTrackParticles"))
583 name =
"LLP1ElectronTPThinningTool",
584 StreamName = kwargs[
'StreamName'],
586 InDetTrackParticlesKey =
"InDetTrackParticles"))
590 name =
"LLP1LRTElectronTPThinningTool",
591 StreamName = kwargs[
'StreamName'],
592 SGKey =
"LRTElectrons",
593 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
594 GSFTrackParticlesKey =
"LRTGSFTrackParticles"))
598 name =
"LLP1MuonTPThinningTool",
599 StreamName = kwargs[
'StreamName'],
601 InDetTrackParticlesKey =
"InDetTrackParticles"))
605 name =
"LLP1LRTMuonTPThinningTool",
606 StreamName = kwargs[
'StreamName'],
607 MuonKey =
"MuonsLRT",
608 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
612 name =
"LLP1PhotonTPThinningTool",
613 StreamName = kwargs[
'StreamName'],
615 InDetTrackParticlesKey =
"",
616 GSFConversionVerticesKey =
"GSFConversionVertices",
617 GSFTrackParticlesKey =
"GSFTrackParticles",
618 BestMatchOnly =
True,
619 BestVtxMatchOnly =
True))
621 tau_thinning_expression = f
"TauJets.pt >= {flags.Tau.MinPtDAOD}"
624 name =
"LLP1TauJetThinningTool",
625 StreamName = kwargs[
'StreamName'],
627 TauTracks =
"TauTracks",
628 TrackParticles =
"InDetTrackParticles",
629 TauNeutralPFOs =
"TauNeutralParticleFlowObjects",
630 TauSecondaryVertices =
"TauSecondaryVertices",
631 SelectionString = tau_thinning_expression))
636 name =
"LLP1TauTPThinningTool",
637 StreamName = kwargs[
'StreamName'],
639 InDetTrackParticlesKey =
"InDetTrackParticles",
640 DoTauTracksThinning =
True,
641 TauTracksKey =
"TauTracks"))
643 tau_murm_thinning_expression = tau_thinning_expression.replace(
'TauJets',
'TauJets_MuonRM')
644 LLP1TauJetMuonRMParticleThinningTool = acc.getPrimaryAndMerge(
TauThinningCfg(
646 name =
"LLP1TauJets_MuonRMThinningTool",
647 StreamName = kwargs[
'StreamName'],
648 Taus =
"TauJets_MuonRM",
649 TauTracks =
"TauTracks_MuonRM",
650 TrackParticles =
"InDetTrackParticles",
651 TauNeutralPFOs =
"TauNeutralParticleFlowObjects_MuonRM",
652 TauSecondaryVertices =
"TauSecondaryVertices_MuonRM",
653 SelectionString = tau_murm_thinning_expression))
658 name =
"LLP1DiTauTPThinningTool",
659 StreamName = kwargs[
'StreamName'],
660 DiTauKey =
"DiTauJets",
661 InDetTrackParticlesKey =
"InDetTrackParticles"))
666 name =
"LLP1DiTauLowPtThinningTool",
667 StreamName = kwargs[
'StreamName'],
668 ContainerName =
"DiTauJetsLowPt",
669 SelectionString =
"DiTauJetsLowPt.nSubjets > 1"))
674 name =
"LLP1DiTauLowPtTPThinningTool",
675 StreamName = kwargs[
'StreamName'],
676 DiTauKey =
"DiTauJetsLowPt",
677 InDetTrackParticlesKey =
"InDetTrackParticles",
678 SelectionString =
"DiTauJetsLowPt.nSubjets > 1"))
682 from DerivationFrameworkLLP.LLPToolsConfig
import VSITrackParticleThinningCfg
684 name =
"LLP1VSITPThinningTool",
685 StreamName = kwargs[
'StreamName'],
686 InDetTrackParticlesKey =
"InDetTrackParticles",
687 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
689 name =
"LLP1LRTVSITPThinningTool",
690 StreamName = kwargs[
'StreamName'],
691 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
692 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
694 name =
"LLP1GSFVSITPThinningTool",
695 StreamName = kwargs[
'StreamName'],
696 InDetTrackParticlesKey =
"GSFTrackParticles",
697 AugVerStrings = [IDAndGSFSuffix]))
700 from DerivationFrameworkLLP.LLPToolsConfig
import JetTrackParticleThinningCfg, JetLargeD0TrackParticleThinningCfg
702 name =
"LLP1JetTPThinningTool",
703 StreamName = kwargs[
'StreamName'],
704 JetKey =
"AntiKt4EMTopoJets",
705 SelectionString =
"(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
706 InDetTrackParticlesKey =
"InDetTrackParticles"))
709 name =
"LLP1FatJetTPThinningTool",
710 StreamName = kwargs[
'StreamName'],
711 JetKey =
"AntiKt10EMTopoRCJets",
712 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
713 InDetTrackParticlesKey =
"InDetTrackParticles",
717 if flags.Tracking.doLargeD0:
719 name =
"LLP1LRTJetTPThinningTool",
720 StreamName = kwargs[
'StreamName'],
721 JetKey =
"AntiKt4EMTopoJets",
722 SelectionString =
"(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
723 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
726 name =
"LLP1LRTFatJetTPThinningTool",
727 StreamName = kwargs[
'StreamName'],
728 JetKey =
"AntiKt10EMTopoRCJets",
729 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
730 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
734 from DerivationFrameworkLLP.LLPToolsConfig
import PixeldEdxTrackParticleThinningCfg
737 name =
"LLP1PixeldEdxTrackParticleThinningTool",
738 StreamName = kwargs[
'StreamName'],
739 InDetTrackParticlesKey =
"InDetTrackParticles"))
743 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import JetCaloClusterThinningCfg
748 StreamName = kwargs[
'StreamName'],
749 SGKey =
"AntiKt4EMTopoJets",
750 TopoClCollectionSGKey =
"CaloCalTopoClusters",
751 AdditionalClustersKey = [
"EMOriginTopoClusters",
"LCOriginTopoClusters"]
759 thinningTools = [LLP1TrackParticleThinningTool,
760 LLP1DTTrackParticleThinningTool,
761 LLP1ElectronTPThinningTool,
762 LLP1LRTElectronTPThinningTool,
763 LLP1MuonTPThinningTool,
764 LLP1PhotonTPThinningTool,
765 LLP1LRTMuonTPThinningTool,
766 LLP1TauJetsThinningTool,
767 LLP1TauTPThinningTool,
768 LLP1TauJetMuonRMParticleThinningTool,
769 LLP1DiTauTPThinningTool,
770 LLP1DiTauLowPtThinningTool,
771 LLP1DiTauLowPtTPThinningTool,
772 LLP1VSITPThinningTool,
773 LLP1LRTVSITPThinningTool,
774 LLP1GSFVSITPThinningTool,
775 LLP1JetTPThinningTool,
776 LLP1FatJetTPThinningTool,
777 LLP1PixeldEdxTrackParticleThinningTool,
779 LLP1LRTGSFTrackParticleThinningTool
782 if flags.Tracking.doLargeD0:
783 thinningTools.append(LLP1LRTJetTPThinningTool)
784 thinningTools.append(LLP1LRTFatJetTPThinningTool)
789 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
791 name =
"LLP1RCJetSubstructureClustTrimAugTool",
792 StreamName = kwargs[
'StreamName'],
793 JetContainerKey =
"AntiKt10EMTopoRCJets",
794 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
795 GhostConstitNames = [
"GhostLCTopoOrigin"],
796 Suffix =
"clusterTrim",
797 Grooming =
"Trimming",
801 RCSubstructureClusterTrimAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureClusterTrimAug", AugmentationTools = [LLP1RCJetSubstructureClustTrimAugTool])
802 acc.addEventAlgo(RCSubstructureClusterTrimAug)
805 name =
"LLP1RCJetSubstructureClustSDAugTool",
806 StreamName = kwargs[
'StreamName'],
807 JetContainerKey =
"AntiKt10EMTopoRCJets",
808 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
809 GhostConstitNames = [
"GhostLCTopoOrigin"],
810 Suffix =
"clusterSoftDrop",
811 Grooming =
"SoftDrop",
815 RCSubstructureClusterSDAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureClusterSDAug", AugmentationTools = [LLP1RCJetSubstructureClustSDAugTool])
816 acc.addEventAlgo(RCSubstructureClusterSDAug)
819 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
821 name =
"LLP1RCJetSubstructureTrackTrimAugTool",
822 StreamName = kwargs[
'StreamName'],
823 JetContainerKey =
"AntiKt10EMTopoRCJets",
824 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
825 GhostConstitNames = [
"GhostTrack",
"GhostTrackLRT"],
826 Suffix =
"trackTrim",
827 Grooming =
"Trimming",
831 RCSubstructureTrackTrimAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureTrackTrimAug", AugmentationTools = [LLP1RCJetSubstructureTrackTrimAugTool])
832 acc.addEventAlgo(RCSubstructureTrackTrimAug)
834 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
836 name =
"LLP1RCJetSubstructureTrackSDAugTool",
837 StreamName = kwargs[
'StreamName'],
838 JetContainerKey =
"AntiKt10EMTopoRCJets",
839 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
840 GhostConstitNames = [
"GhostTrack",
"GhostTrackLRT"],
841 Suffix =
"trackSoftDrop",
842 Grooming =
"SoftDrop",
846 RCSubstructureTrackSDAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureTrackSDAug", AugmentationTools = [LLP1RCJetSubstructureTrackSDAugTool])
847 acc.addEventAlgo(RCSubstructureTrackSDAug)
854 from DerivationFrameworkLLP.LLPToolsConfig
import LLP1TriggerSkimmingToolCfg
856 name =
"LLP1TriggerSkimmingTool",
857 TriggerListsHelper = kwargs[
'TriggerListsHelper']))
859 skimmingTools.append(LLP1TriggerSkimmingTool)
861 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
863 SkimmingTools = skimmingTools,
864 ThinningTools = thinningTools,
865 AugmentationTools = augmentationTools))