Loading [MathJax]/jax/input/TeX/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
LLP1.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 #====================================================================
3 # DAOD_LLP1.py
4 # This defines DAOD_LLP1, an unskimmed DAOD format for Run 3.
5 # It contains the variables and objects needed for the large majority
6 # of physics analyses in ATLAS.
7 # It requires the flag LLP1 in Derivation_tf.py
8 #====================================================================
9 
10 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory import CompFactory
12 from AthenaConfiguration.Enums import LHCPeriod, MetadataCategory
13 
14 MergedElectronContainer = "StdWithLRTElectrons"
15 MergedMuonContainer = "StdWithLRTMuons"
16 MergedMuonContainer_wZPH = "StdWithLRTMuons_wZPH"
17 MergedTrackCollection = "InDetWithLRTTrackParticles"
18 MergedGSFTrackCollection = "InDetWithLRTGSFTrackParticles"
19 LLP1VrtSecInclusiveSuffixes = []
20 LLP1NewVSISuffixes = []
21 
22 # Main algorithm config
23 def LLP1KernelCfg(flags, name='LLP1Kernel', **kwargs):
24 
25  """Configure the derivation framework driving algorithm (kernel) for LLP1"""
26  acc = ComponentAccumulator()
27 
28  # Augmentations
29 
30 
31  # LRT track merge
32  from DerivationFrameworkInDet.InDetToolsConfig import InDetLRTMergeCfg
33  acc.merge(InDetLRTMergeCfg(flags))
34  acc.merge(InDetLRTMergeCfg(flags, name="GSFTrackMergerAlg", InputTrackParticleLocations = ["GSFTrackParticles", "LRTGSFTrackParticles"], OutputTrackParticleLocation = MergedGSFTrackCollection, OutputTrackParticleLocationCopy = MergedGSFTrackCollection))
35 
36  # LRT muons merge
37  from DerivationFrameworkLLP.LLPToolsConfig import LRTMuonMergerAlg
38  acc.merge(LRTMuonMergerAlg( flags,
39  PromptMuonLocation = "Muons",
40  LRTMuonLocation = "MuonsLRT",
41  OutputMuonLocation = MergedMuonContainer,
42  CreateViewCollection = True,
43  UseRun3WP = flags.GeoModel.Run == LHCPeriod.Run3))
44 
45  # LRT electrons merge
46  from DerivationFrameworkLLP.LLPToolsConfig import LRTElectronMergerAlg
47  acc.merge(LRTElectronMergerAlg( flags,
48  PromptElectronLocation = "Electrons",
49  LRTElectronLocation = "LRTElectrons",
50  OutputCollectionName = MergedElectronContainer,
51  isDAOD = False,
52  CreateViewCollection = True))
53 
54  # Max Cell sum decoration tool
55  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
56  MaxCellDecoratorCfg, MaxCellDecoratorKernelCfg)
57 
58  # Default configuration
59  acc.merge(MaxCellDecoratorKernelCfg(flags))
60 
61  # Specific for LRTElectrons
62  LLP1LRTMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
63  flags,
64  name = "LLP1LRTMaxCellDecoratorTool",
65  SGKey_electrons = "LRTElectrons",
66  SGKey_egammaClusters = ("" if flags.GeoModel.Run == LHCPeriod.Run3
67  else "egammaClusters"),
68  SGKey_photons = ''))
69  acc.addPublicTool(LLP1LRTMaxCellDecoratorTool)
70 
71  # Vertex constraint tools
72  from TrkConfig.TrkVertexFitterUtilsConfig import AtlasFullLinearizedTrackFactoryCfg
73  AtlasFullLinearizedTrackFactoryTool = acc.popToolsAndMerge(AtlasFullLinearizedTrackFactoryCfg(flags,
74  name = "LLP1AtlasFullLinearizedTrackFactory"))
75  acc.addPublicTool(AtlasFullLinearizedTrackFactoryTool)
76 
77  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
78  ExtrapolatorTool = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags,
79  name = "LLP1ExtrapolatorTool"))
80  acc.addPublicTool(ExtrapolatorTool)
81 
82 
83  from DerivationFrameworkLLP.LLPToolsConfig import TrackParametersKVUCfg
84  LLP1TrackParametersKVUTool = acc.getPrimaryAndMerge(TrackParametersKVUCfg(flags,
85  name = "LLP1TrackParametersKVU",
86  TrackParticleContainerName = "InDetDisappearingTrackParticles",
87  VertexContainerName = "PrimaryVertices",
88  LinearizedTrackFactory = AtlasFullLinearizedTrackFactoryTool,
89  TrackExtrapolator = ExtrapolatorTool))
90  acc.addPublicTool(LLP1TrackParametersKVUTool)
91 
92  # Track isolation tools
93  import ROOT
94  isoPar = ROOT.xAOD.Iso.IsolationType
95  deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20]
96  deco_ptcones_suffix = ["ptcone40", "ptcone30", "ptcone20"]
97  deco_prefix = 'LLP1_'
98 
99  from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_Loose_Cfg
100  TrackSelectionToolStd = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
101  name = "TrackSelectionToolStd",
102  maxZ0SinTheta = 3.0,
103  minPt = 1000.))
104 
105  TrackSelectionToolPdEdx = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
106  name = "TrackSelectionToolPdEdx",
107  maxD0 = 0.5,
108  maxZ0SinTheta = 3.0,
109  minPt = 1000.))
110 
111  TrackSelectionToolPdEdxTight = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
112  name = "TrackSelectionToolPdEdxTight",
113  maxD0 = 0.5,
114  maxZ0SinTheta = 0.5,
115  minPt = 1000.))
116 
117  from IsolationAlgs.IsoToolsConfig import TrackIsolationToolCfg, CaloIsolationToolCfg
118  TrackIsoToolStd = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
119  name = "TrackIsoToolStd",
120  TrackSelectionTool = TrackSelectionToolStd))
121  acc.addPublicTool(TrackIsoToolStd)
122 
123  TrackIsoToolPdEdx = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
124  name = "TrackIsoToolPdEdx",
125  TrackSelectionTool = TrackSelectionToolPdEdx))
126  acc.addPublicTool(TrackIsoToolPdEdx)
127 
128  TrackIsoToolPdEdxTight = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
129  name = "TrackIsoToolPdEdxTight",
130  TrackSelectionTool = TrackSelectionToolPdEdxTight))
131  acc.addPublicTool(TrackIsoToolPdEdxTight)
132 
133  from CaloIdentifier import SUBCALO
134  CaloIsoTool = acc.popToolsAndMerge(CaloIsolationToolCfg(flags,
135  name = "CaloIsoTool",
136  EMCaloNums = [SUBCALO.LAREM],
137  HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
138  UseEMScale = True,
139  UseCaloExtensionCaching = False,
140  saveOnlyRequestedCorrections = True))
141  acc.addPublicTool(CaloIsoTool)
142 
143  from DerivationFrameworkInDet.InDetToolsConfig import IsolationTrackDecoratorCfg
144  LLP1IsolationTrackDecoratorTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
145  name = "LLP1IsolationTrackDecorator",
146  TrackIsolationTool = TrackIsoToolStd,
147  CaloIsolationTool = CaloIsoTool,
148  TargetContainer = "InDetTrackParticles",
149  SelectionString = "InDetTrackParticles.pt>10*GeV",
150  iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
151  isoSuffix = ["ptcone40", "ptcone30", "ptcone20", "ptvarcone40", "ptvarcone30", "ptvarcone20", "topoetcone40", "topoetcone30", "topoetcone20"],
152  Prefix = deco_prefix))
153  acc.addPublicTool(LLP1IsolationTrackDecoratorTool)
154 
155  LLP1IsolationTrackDecoratorDTTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
156  name = "LLP1IsolationTrackDecoratorDT",
157  TrackIsolationTool = TrackIsoToolStd,
158  CaloIsolationTool = CaloIsoTool,
159  TargetContainer = "InDetDisappearingTrackParticles",
160  SelectionString = "InDetDisappearingTrackParticles.pt>10*GeV",
161  iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
162  isoSuffix = ["ptcone40", "ptcone30", "ptcone20", "ptvarcone40", "ptvarcone30", "ptvarcone20", "topoetcone40", "topoetcone30", "topoetcone20"],
163  Prefix = deco_prefix))
164  acc.addPublicTool(LLP1IsolationTrackDecoratorDTTool)
165 
166  LLP1IsolationTrackDecoratorPdEdxTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
167  name = "LLP1IsolationTrackDecoratorPdEdx",
168  TrackIsolationTool = TrackIsoToolPdEdx,
169  CaloIsolationTool = CaloIsoTool,
170  TargetContainer = "InDetTrackParticles",
171  iso = deco_ptcones,
172  Prefix = 'TrkIsoPtPdEdx_',
173  isoSuffix = deco_ptcones_suffix))
174  acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTool)
175 
176  LLP1IsolationTrackDecoratorPdEdxDTTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
177  name = "LLP1IsolationTrackDecoratorPdEdxDT",
178  TrackIsolationTool = TrackIsoToolPdEdx,
179  CaloIsolationTool = CaloIsoTool,
180  TargetContainer = "InDetDisappearingTrackParticles",
181  iso = deco_ptcones,
182  Prefix = 'TrkIsoPtPdEdx_',
183  isoSuffix = deco_ptcones_suffix))
184  acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxDTTool)
185 
186  LLP1IsolationTrackDecoratorPdEdxTightTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
187  name = "LLP1IsolationTrackDecoratorPdEdxTight",
188  TrackIsolationTool = TrackIsoToolPdEdxTight,
189  CaloIsolationTool = CaloIsoTool,
190  TargetContainer = "InDetTrackParticles",
191  iso = deco_ptcones,
192  Prefix = 'TrkIsoPtTightPdEdx_',
193  isoSuffix = deco_ptcones_suffix))
194  acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightTool)
195 
196  LLP1IsolationTrackDecoratorPdEdxTightDTTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
197  name = "LLP1IsolationTrackDecoratorPdEdxTightDT",
198  TrackIsolationTool = TrackIsoToolPdEdxTight,
199  CaloIsolationTool = CaloIsoTool,
200  TargetContainer = "InDetDisappearingTrackParticles",
201  iso = deco_ptcones,
202  Prefix = 'TrkIsoPtTightPdEdx_',
203  isoSuffix = deco_ptcones_suffix))
204  acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightDTTool)
205 
206  from DerivationFrameworkLLP.LLPToolsConfig import TrackParticleCaloCellDecoratorCfg
207  LLP1TrackParticleCaloCellDecoratorTool = acc.getPrimaryAndMerge(TrackParticleCaloCellDecoratorCfg(flags,
208  name = "LLP1TrackParticleCaloCellDecorator",
209  DecorationPrefix = "LLP1",
210  ContainerName = "InDetTrackParticles"))
211  acc.addPublicTool(LLP1TrackParticleCaloCellDecoratorTool)
212 
213  augmentationTools = [ LLP1LRTMaxCellDecoratorTool,
214  LLP1TrackParametersKVUTool,
215  LLP1IsolationTrackDecoratorTool,
216  LLP1IsolationTrackDecoratorDTTool,
217  LLP1IsolationTrackDecoratorPdEdxTool,
218  LLP1IsolationTrackDecoratorPdEdxDTTool,
219  LLP1IsolationTrackDecoratorPdEdxTightTool,
220  LLP1IsolationTrackDecoratorPdEdxTightDTTool,
221  LLP1TrackParticleCaloCellDecoratorTool ]
222 
223  # Specific for Taus
224  LLP1TauMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
225  flags,
226  name = "LLP1TauMaxCellDecoratorTool",
227  SGKey_taus = 'TauJets',
228  SGKey_electrons = '',
229  SGKey_photons = ''))
230  acc.addPublicTool(LLP1TauMaxCellDecoratorTool)
231 
232  augmentationTools += [ LLP1TauMaxCellDecoratorTool ]
233 
234  # Specific for Jets: AntiKt4EMTopoJets
235  LLP1AntiKt4EMTopoJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
236  flags,
237  name = "LLP1AntiKt4EMTopoJetMaxCellDecoratorTool",
238  SGKey_jets = 'AntiKt4EMTopoJets',
239  SGKey_taus = '',
240  SGKey_electrons = '',
241  SGKey_photons = ''))
242  acc.addPublicTool(LLP1AntiKt4EMTopoJetMaxCellDecoratorTool)
243 
244  augmentationTools += [ LLP1AntiKt4EMTopoJetMaxCellDecoratorTool ]
245 
246  # Specific for Jets: AntiKt4EMPFlowJets
247  LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
248  flags,
249  name = "LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool",
250  SGKey_jets = 'AntiKt4EMPFlowJets',
251  SGKey_taus = '',
252  SGKey_electrons = '',
253  SGKey_photons = ''))
254  acc.addPublicTool(LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool)
255 
256  augmentationTools += [ LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool ]
257 
258  # Reclustered jets definitions
259  from JetRecConfig.JetRecConfig import registerAsInputConstit, JetRecCfg
260  from JetRecConfig.StandardSmallRJets import AntiKt4Truth, AntiKt4EMTopo
261  from JetRecConfig.JetDefinition import JetDefinition
262  from JetRecConfig.StandardJetConstits import stdConstitDic as cst
263 
264  registerAsInputConstit(AntiKt4EMTopo)
265  registerAsInputConstit(AntiKt4Truth)
266  cst.AntiKt4EMTopoJets.label = "EMTopoRC"
267  cst.AntiKt4TruthJets.label = "TruthRC"
268 
269  AntiKt10RCEMTopo = JetDefinition( "AntiKt",1.0,cst.AntiKt4EMTopoJets,
270  ghostdefs = ["Track", "TrackLRT", "LCTopoOrigin"],
271  modifiers = ("Sort", "Filter:200000",),
272  standardRecoMode = True,
273  lock = True,
274  )
275  if flags.Input.isMC:
276  AntiKt10RCTruth = JetDefinition("AntiKt",1.0,cst.AntiKt4TruthJets,
277  ghostdefs = [],
278  modifiers = ("Sort", "Filter:200000",),
279  standardRecoMode = True,
280  lock = True
281  )
282 
283  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
284  acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
285  acc.merge(JetRecCfg(flags,AntiKt10RCEMTopo))
286  if flags.Input.isMC: acc.merge(JetRecCfg(flags,AntiKt10RCTruth))
287 
288  # MET with LRT in association map
289  from DerivationFrameworkJetEtMiss.METCommonConfig import METLRTCfg
290  acc.merge(METLRTCfg(flags, "AntiKt4EMTopo"))
291  acc.merge(METLRTCfg(flags, "AntiKt4EMPFlow"))
292 
293  # LRT Egamma
294  from DerivationFrameworkEGamma.EGammaLRTConfig import EGammaLRTCfg
295  acc.merge(EGammaLRTCfg(flags))
296 
297  from DerivationFrameworkLLP.LLPToolsConfig import LRTElectronLHSelectorsCfg
298  acc.merge(LRTElectronLHSelectorsCfg(flags))
299 
300  #Photon ID Selector
301  from DerivationFrameworkLLP.LLPToolsConfig import PhotonIsEMSelectorsCfg
302  acc.merge(PhotonIsEMSelectorsCfg(flags))
303 
304  # LRT Muons
305  from DerivationFrameworkMuons.MuonsCommonConfig import MuonsCommonCfg
306  acc.merge(MuonsCommonCfg(flags,
307  suff="LRT"))
308 
309  # Recover Zero Pixel Hit Muons
310  from DerivationFrameworkLLP.LLPToolsConfig import RecoverZeroPixelHitMuonsCfg
311  acc.merge(RecoverZeroPixelHitMuonsCfg(flags))
312 
313  # flavor tagging
314  from DerivationFrameworkFlavourTag.FtagDerivationConfig import FtagJetCollectionsCfg
315  acc.merge(FtagJetCollectionsCfg(flags, ['AntiKt4EMTopoJets']))
316 
317  # VrtSecInclusive
318  from VrtSecInclusive.VrtSecInclusiveConfig import VrtSecInclusiveCfg
319 
320  acc.merge(VrtSecInclusiveCfg(flags,
321  name = "VrtSecInclusive",
322  AugmentingVersionString = "",
323  FillIntermediateVertices = False,
324  TrackLocation = MergedTrackCollection))
325  LLP1VrtSecInclusiveSuffixes.append("")
326 
327  # short-lifetime VSI
328  shortLifetimeSuffix = "_shortLifetime"
329  acc.merge(VrtSecInclusiveCfg(flags,
330  name = "VrtSecInclusive_InDet"+shortLifetimeSuffix,
331  AugmentingVersionString = shortLifetimeSuffix,
332  FillIntermediateVertices = False,
333  TrackLocation = MergedTrackCollection,
334  twoTrkVtxFormingD0Cut = 1.0))
335  LLP1VrtSecInclusiveSuffixes.append(shortLifetimeSuffix)
336 
337  if flags.Input.isMC and flags.Derivation.LLP.doTrackSystematics:
338  from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig import TrackSystematicsAlgCfg
339  TrackSystSuffix = "_TRK_EFF_LARGED0_GLOBAL__1down"
340  acc.merge(TrackSystematicsAlgCfg(
341  flags,
342  name=f"InDetTrackSystematicsAlg{TrackSystSuffix}",
343  InputTrackContainer = MergedTrackCollection,
344  OutputTrackContainer = f"{MergedTrackCollection}{TrackSystSuffix}"))
345  acc.merge(VrtSecInclusiveCfg(flags,
346  name = f"VrtSecInclusive{TrackSystSuffix}",
347  AugmentingVersionString = TrackSystSuffix,
348  FillIntermediateVertices = False,
349  TrackLocation = f"{MergedTrackCollection}{TrackSystSuffix}"))
350  LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffix)
351 
352  TrackSystSuffixShortLifetime = "_TRK_EFF_LARGED0_GLOBAL__1down_shortLifetime"
353  acc.merge(TrackSystematicsAlgCfg(
354  flags,
355  name=f"InDetTrackSystematicsAlg{TrackSystSuffixShortLifetime}",
356  InputTrackContainer = MergedTrackCollection,
357  OutputTrackContainer = f"{MergedTrackCollection}{TrackSystSuffixShortLifetime}"))
358  acc.merge(VrtSecInclusiveCfg(flags,
359  name = f"VrtSecInclusive{TrackSystSuffixShortLifetime}",
360  AugmentingVersionString = TrackSystSuffixShortLifetime,
361  FillIntermediateVertices = False,
362  TrackLocation = f"{MergedTrackCollection}{TrackSystSuffixShortLifetime}",
363  twoTrkVtxFormingD0Cut = 1.0))
364  LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffixShortLifetime)
365 
366  # LRT muons merge
367  from DerivationFrameworkLLP.LLPToolsConfig import ZeroPixelHitMuonMergerAlgCfg
368  acc.merge(ZeroPixelHitMuonMergerAlgCfg(flags,
369  InputMuonContainers = [MergedMuonContainer, "ZeroPixelHitMuons"],
370  OutputMuonLocation = MergedMuonContainer_wZPH))
371 
372 
373  # leptons-only VSI
374  LeptonsSuffix = "_Leptons"
375  acc.merge(VrtSecInclusiveCfg(flags,
376  name = "VrtSecInclusive_InDet"+LeptonsSuffix,
377  AugmentingVersionString = LeptonsSuffix,
378  FillIntermediateVertices = False,
379  TrackLocation = MergedTrackCollection,
380  twoTrkVtxFormingD0Cut = 1.0,
381  doSelectTracksFromMuons = True,
382  doRemoveCaloTaggedMuons = True,
383  doSelectTracksFromElectrons = True,
384  MuonLocation = MergedMuonContainer,
385  ElectronLocation = MergedElectronContainer))
386  LLP1VrtSecInclusiveSuffixes.append(LeptonsSuffix)
387 
388  # track VSI
389  LepTrackSuffix = "_LepTrack"
390  acc.merge(VrtSecInclusiveCfg(flags,
391  name = "VrtSecInclusive_InDet"+LepTrackSuffix,
392  AugmentingVersionString = LepTrackSuffix,
393  FillIntermediateVertices = False,
394  TrackLocation = MergedTrackCollection,
395  MuonLocation = MergedMuonContainer,
396  ElectronLocation = MergedElectronContainer,
397  twoTrkVtxFormingD0Cut = 1.0,
398  doSelectIDAndGSFTracks = True,
399  doRemoveCaloTaggedMuons = True,
400  doRemoveNonLeptonVertices = True,
401  doAssociateNonSelectedTracks= False))
402  LLP1VrtSecInclusiveSuffixes.append(LepTrackSuffix)
403 
404  # Small-d0 Muons VSI
405  BoostedMuonsSuffix = "_BoostedMuons"
406  acc.merge(VrtSecInclusiveCfg(flags,
407  name = "VrtSecInclusive_InDet"+BoostedMuonsSuffix,
408  AugmentingVersionString = BoostedMuonsSuffix,
409  FillIntermediateVertices = False,
410  TrackLocation = MergedTrackCollection,
411  twoTrkVtxFormingD0Cut = 0.0,
412  doSelectTracksFromMuons = True,
413  doRemoveCaloTaggedMuons = True,
414  doSelectTracksFromElectrons = False,
415  MuonLocation = MergedMuonContainer_wZPH,
416  do_PVvetoCut = False,
417  DoTwoTrSoftBtag = True,
418  TwoTrVrtMinDistFromPVCut = 0.5,
419  associatePtCut = 500.))
420  LLP1VrtSecInclusiveSuffixes.append(BoostedMuonsSuffix)
421 
422  # NewVSI: LepTrack variation
423  from NewVrtSecInclusiveTool.NewVrtSecInclusiveAlgConfig import NewVrtSecInclusiveAlgLLPCfg
424  from NewVrtSecInclusiveTool.NewVrtSecInclusiveConfig import DVFinderToolCfg
425  IDAndGSFSuffix = "_IDAndGSF_LepTrack"
426 
427  NVSILepTrack_Tool = acc.popToolsAndMerge(DVFinderToolCfg(flags,FillHist=False,AugmentingVersionString=IDAndGSFSuffix,MaxZVrt=1000.,AntiPileupSigRCut=2.))
428  acc.merge(NewVrtSecInclusiveAlgLLPCfg(flags,
429  algname = "NVSI"+IDAndGSFSuffix,
430  AugmentingVersionString = IDAndGSFSuffix,
431  ElectronContainer = MergedElectronContainer,
432  MuonContainer = MergedMuonContainer,
433  TrackParticleContainer = MergedTrackCollection,
434  GSFTrackParticleContainer = MergedGSFTrackCollection,
435  BVertexContainerName = "NewVrtSecInclusive_SecondaryVertices"+IDAndGSFSuffix,
436  AddIDTracks = True,
437  AddGSFTracks = True,
438  RemoveNonLepVertices = True,
439  BVertexTool = NVSILepTrack_Tool))
440  LLP1NewVSISuffixes.append(IDAndGSFSuffix)
441 
442  # bad jet cleaning
443  jet_clean_prefix="DFCommonJets_"
444  jet_clean_container="AntiKt4EMTopoJets"
445  jet_clean_level="SuperLooseBadLLP"
446  from JetSelectorTools.JetSelectorToolsConfig import EventCleaningToolCfg, JetCleaningToolCfg
447  LLP1JetCleanSuperLLPTool = acc.popToolsAndMerge(JetCleaningToolCfg(flags,
448  "LLP1JetCleanSuperLLP",
449  jet_clean_container,
450  jet_clean_level,
451  False))
452  acc.addPublicTool(LLP1JetCleanSuperLLPTool)
453 
454  LLP1EventCleanSuperLLPTool = acc.popToolsAndMerge(EventCleaningToolCfg(flags,
455  "LLP1EventCleanSuperLLP",
456  jet_clean_level))
457  LLP1EventCleanSuperLLPTool.JetCleanPrefix = jet_clean_prefix
458  LLP1EventCleanSuperLLPTool.JetContainer = jet_clean_container
459  LLP1EventCleanSuperLLPTool.JetCleaningTool = LLP1JetCleanSuperLLPTool
460  acc.addPublicTool(LLP1EventCleanSuperLLPTool)
461 
462  LLP1EventCleanAlg = CompFactory.EventCleaningTestAlg(
463  "LLP1JetCleanDecoratorSuperLLP",
464  EventCleaningTool = LLP1EventCleanSuperLLPTool,
465  JetCollectionName = jet_clean_container,
466  EventCleanPrefix = jet_clean_prefix,
467  CleaningLevel = jet_clean_level,
468  doEvent = True)
469 
470  # Sequence for decorator locking.
471  # See comments in JetCommonConfig.AddEventCleanFlagsCfg.
472  acc.addSequence(CompFactory.AthSequencer('EventCleanSeq', Sequential=True))
473  acc.addEventAlgo(LLP1EventCleanAlg, 'EventCleanSeq')
474 
475 
476  from DerivationFrameworkLLP.LLPToolsConfig import AugmentationToolLeadingJetsCfg
477  augmentationToolLeadingJets = acc.getPrimaryAndMerge(AugmentationToolLeadingJetsCfg(flags))
478  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name, AugmentationTools = [augmentationToolLeadingJets]))
479 
480  # Thinning tools...
481  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg, EgammaTrackParticleThinningCfg, MuonTrackParticleThinningCfg, TauTrackParticleThinningCfg, DiTauTrackParticleThinningCfg
482  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import GenericObjectThinningCfg
483  from DerivationFrameworkTau.TauCommonConfig import TauThinningCfg
484 
485  # Inner detector tracks need to have greater than 10 GeV of pT
486  LLP1TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
487  flags,
488  name = "LLP1TrackParticleThinningTool",
489  StreamName = kwargs['StreamName'],
490  SelectionString = "InDetTrackParticles.pt>10*GeV",
491  InDetTrackParticlesKey = "InDetTrackParticles"))
492  # Keep all GSF LRT Tracks
493  LLP1LRTGSFTrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
494  flags,
495  name = "LLP1LRTGSFTrackParticleThinningTool",
496  StreamName = kwargs['StreamName'],
497  SelectionString = "LRTGSFTrackParticles.pt>0*GeV",
498  InDetTrackParticlesKey = "LRTGSFTrackParticles"))
499  # Pixel tracklets need to have greater than 5 GeV of pT
500  LLP1DTTrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
501  flags,
502  name = "LLP1DTTrackParticleThinningTool",
503  StreamName = kwargs['StreamName'],
504  SelectionString = "InDetDisappearingTrackParticles.pt>5*GeV",
505  InDetTrackParticlesKey = "InDetDisappearingTrackParticles"))
506 
507  # Include inner detector tracks associated with electrons
508  LLP1ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
509  flags,
510  name = "LLP1ElectronTPThinningTool",
511  StreamName = kwargs['StreamName'],
512  SGKey = "Electrons",
513  InDetTrackParticlesKey = "InDetTrackParticles"))
514  # Include inner detector tracks associated with LRT electrons
515  LLP1LRTElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
516  flags,
517  name = "LLP1LRTElectronTPThinningTool",
518  StreamName = kwargs['StreamName'],
519  SGKey = "LRTElectrons",
520  InDetTrackParticlesKey = "InDetLargeD0TrackParticles",
521  GSFTrackParticlesKey = "LRTGSFTrackParticles"))
522  # Include inner detector tracks associated with muons
523  LLP1MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
524  flags,
525  name = "LLP1MuonTPThinningTool",
526  StreamName = kwargs['StreamName'],
527  MuonKey = "Muons",
528  InDetTrackParticlesKey = "InDetTrackParticles"))
529  # Include LRT inner detector tracks associated with LRT muons
530  LLP1LRTMuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
531  flags,
532  name = "LLP1LRTMuonTPThinningTool",
533  StreamName = kwargs['StreamName'],
534  MuonKey = "MuonsLRT",
535  InDetTrackParticlesKey = "InDetLargeD0TrackParticles"))
536 
537  # Tau-related containers: taus, tau tracks and associated ID tracks, neutral PFOs, secondary vertices
538  tau_thinning_expression = f"TauJets.pt >= {flags.Tau.MinPtDAOD}"
539  LLP1TauJetsThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
540  flags,
541  name = "LLP1TauJetThinningTool",
542  StreamName = kwargs['StreamName'],
543  Taus = "TauJets",
544  TauTracks = "TauTracks",
545  TrackParticles = "InDetTrackParticles",
546  TauNeutralPFOs = "TauNeutralParticleFlowObjects",
547  TauSecondaryVertices = "TauSecondaryVertices",
548  SelectionString = tau_thinning_expression))
549 
550  # Only keep tau tracks (and associated ID tracks) classified as charged tracks
551  LLP1TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
552  flags,
553  name = "LLP1TauTPThinningTool",
554  StreamName = kwargs['StreamName'],
555  TauKey = "TauJets",
556  InDetTrackParticlesKey = "InDetTrackParticles",
557  DoTauTracksThinning = True,
558  TauTracksKey = "TauTracks"))
559 
560  tau_murm_thinning_expression = tau_thinning_expression.replace('TauJets', 'TauJets_MuonRM')
561  LLP1TauJetMuonRMParticleThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
562  flags,
563  name = "LLP1TauJets_MuonRMThinningTool",
564  StreamName = kwargs['StreamName'],
565  Taus = "TauJets_MuonRM",
566  TauTracks = "TauTracks_MuonRM",
567  TrackParticles = "InDetTrackParticles",
568  TauNeutralPFOs = "TauNeutralParticleFlowObjects_MuonRM",
569  TauSecondaryVertices = "TauSecondaryVertices_MuonRM",
570  SelectionString = tau_murm_thinning_expression))
571 
572  # ID tracks associated with high-pt di-tau
573  LLP1DiTauTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
574  flags,
575  name = "LLP1DiTauTPThinningTool",
576  StreamName = kwargs['StreamName'],
577  DiTauKey = "DiTauJets",
578  InDetTrackParticlesKey = "InDetTrackParticles"))
579 
580 
581  LLP1DiTauLowPtThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(
582  flags,
583  name = "LLP1DiTauLowPtThinningTool",
584  StreamName = kwargs['StreamName'],
585  ContainerName = "DiTauJetsLowPt",
586  SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
587 
588  # ID tracks associated with low-pt ditau
589  LLP1DiTauLowPtTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
590  flags,
591  name = "LLP1DiTauLowPtTPThinningTool",
592  StreamName = kwargs['StreamName'],
593  DiTauKey = "DiTauJetsLowPt",
594  InDetTrackParticlesKey = "InDetTrackParticles",
595  SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
596 
597 
598  # ID Tracks associated with secondary vertices
599  from DerivationFrameworkLLP.LLPToolsConfig import VSITrackParticleThinningCfg
600  LLP1VSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
601  name = "LLP1VSITPThinningTool",
602  StreamName = kwargs['StreamName'],
603  InDetTrackParticlesKey = "InDetTrackParticles",
604  AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
605  LLP1LRTVSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
606  name = "LLP1LRTVSITPThinningTool",
607  StreamName = kwargs['StreamName'],
608  InDetTrackParticlesKey = "InDetLargeD0TrackParticles",
609  AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
610  LLP1GSFVSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
611  name = "LLP1GSFVSITPThinningTool",
612  StreamName = kwargs['StreamName'],
613  InDetTrackParticlesKey = "GSFTrackParticles",
614  AugVerStrings = [IDAndGSFSuffix]))
615 
616  # ID Tracks associated with jets
617  from DerivationFrameworkLLP.LLPToolsConfig import JetTrackParticleThinningCfg, JetLargeD0TrackParticleThinningCfg
618  LLP1JetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(flags,
619  name = "LLP1JetTPThinningTool",
620  StreamName = kwargs['StreamName'],
621  JetKey = "AntiKt4EMTopoJets",
622  SelectionString = "(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
623  InDetTrackParticlesKey = "InDetTrackParticles"))
624 
625  LLP1FatJetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg( flags,
626  name = "LLP1FatJetTPThinningTool",
627  StreamName = kwargs['StreamName'],
628  JetKey = "AntiKt10EMTopoRCJets",
629  SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
630  InDetTrackParticlesKey = "InDetTrackParticles",
631  ))
632 
633  # LRT Tracks associated with jets
634  if flags.Tracking.doLargeD0:
635  LLP1LRTJetTPThinningTool = acc.getPrimaryAndMerge(JetLargeD0TrackParticleThinningCfg(flags,
636  name = "LLP1LRTJetTPThinningTool",
637  StreamName = kwargs['StreamName'],
638  JetKey = "AntiKt4EMTopoJets",
639  SelectionString = "(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
640  InDetTrackParticlesKey = "InDetLargeD0TrackParticles"))
641 
642  LLP1LRTFatJetTPThinningTool = acc.getPrimaryAndMerge(JetLargeD0TrackParticleThinningCfg(flags,
643  name = "LLP1LRTFatJetTPThinningTool",
644  StreamName = kwargs['StreamName'],
645  JetKey = "AntiKt10EMTopoRCJets",
646  SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
647  InDetTrackParticlesKey = "InDetLargeD0TrackParticles",
648  ))
649 
650  # high dE/dx and low pT tracks
651  from DerivationFrameworkLLP.LLPToolsConfig import PixeldEdxTrackParticleThinningCfg
652  LLP1PixeldEdxTrackParticleThinningTool = acc.getPrimaryAndMerge(PixeldEdxTrackParticleThinningCfg(
653  flags,
654  name = "LLP1PixeldEdxTrackParticleThinningTool",
655  StreamName = kwargs['StreamName'],
656  InDetTrackParticlesKey = "InDetTrackParticles"))
657 
658 
659  #Thinning CaloCalTopoClusters associated to AntiKt4EMTopoJets
660  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import JetCaloClusterThinningCfg
661 
662  LLP1CCThinningTool = acc.getPrimaryAndMerge(JetCaloClusterThinningCfg(
663  flags,
664  name = "LLP1CCTool",
665  StreamName = kwargs['StreamName'],
666  SGKey = "AntiKt4EMTopoJets",
667  TopoClCollectionSGKey = "CaloCalTopoClusters",
668  SelectionString = "(AntiKt4EMTopoJets.DFDecoratorLeadingJets)",
669  AdditionalClustersKey = ["EMOriginTopoClusters","LCOriginTopoClusters"]
670  ))
671 
672 
673 
674 
675 
676  # Finally the kernel itself
677  thinningTools = [LLP1TrackParticleThinningTool,
678  LLP1DTTrackParticleThinningTool,
679  LLP1ElectronTPThinningTool,
680  LLP1LRTElectronTPThinningTool,
681  LLP1MuonTPThinningTool,
682  LLP1LRTMuonTPThinningTool,
683  LLP1TauJetsThinningTool,
684  LLP1TauTPThinningTool,
685  LLP1TauJetMuonRMParticleThinningTool,
686  LLP1DiTauTPThinningTool,
687  LLP1DiTauLowPtThinningTool,
688  LLP1DiTauLowPtTPThinningTool,
689  LLP1VSITPThinningTool,
690  LLP1LRTVSITPThinningTool,
691  LLP1GSFVSITPThinningTool,
692  LLP1JetTPThinningTool,
693  LLP1FatJetTPThinningTool,
694  LLP1PixeldEdxTrackParticleThinningTool,
695  LLP1CCThinningTool,
696  LLP1LRTGSFTrackParticleThinningTool
697  ]
698 
699  if flags.Tracking.doLargeD0:
700  thinningTools.append(LLP1LRTJetTPThinningTool)
701  thinningTools.append(LLP1LRTFatJetTPThinningTool)
702 
703  # Additionnal augmentations
704 
705  # Compute RC substructure variables from energy clusters
706  from DerivationFrameworkLLP.LLPToolsConfig import RCJetSubstructureAugCfg
707  LLP1RCJetSubstructureClustTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
708  name = "LLP1RCJetSubstructureClustTrimAugTool",
709  StreamName = kwargs['StreamName'],
710  JetContainerKey = "AntiKt10EMTopoRCJets",
711  SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
712  GhostConstitNames = ["GhostLCTopoOrigin"],
713  Suffix = "clusterTrim",
714  Grooming = "Trimming",
715  RClusTrim = 0.2,
716  PtFracTrim = 0.05
717  ))
718  RCSubstructureClusterTrimAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureClusterTrimAug", AugmentationTools = [LLP1RCJetSubstructureClustTrimAugTool])
719  acc.addEventAlgo(RCSubstructureClusterTrimAug)
720 
721  LLP1RCJetSubstructureClustSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
722  name = "LLP1RCJetSubstructureClustSDAugTool",
723  StreamName = kwargs['StreamName'],
724  JetContainerKey = "AntiKt10EMTopoRCJets",
725  SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
726  GhostConstitNames = ["GhostLCTopoOrigin"],
727  Suffix = "clusterSoftDrop",
728  Grooming = "SoftDrop",
729  BetaSoft = 1.0,
730  ZcutSoft = 0.1
731  ))
732  RCSubstructureClusterSDAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureClusterSDAug", AugmentationTools = [LLP1RCJetSubstructureClustSDAugTool])
733  acc.addEventAlgo(RCSubstructureClusterSDAug)
734 
735  # Compute RC substructure variables from tracks
736  from DerivationFrameworkLLP.LLPToolsConfig import RCJetSubstructureAugCfg
737  LLP1RCJetSubstructureTrackTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
738  name = "LLP1RCJetSubstructureTrackTrimAugTool",
739  StreamName = kwargs['StreamName'],
740  JetContainerKey = "AntiKt10EMTopoRCJets",
741  SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
742  GhostConstitNames = ["GhostTrack", "GhostTrackLRT"],
743  Suffix = "trackTrim",
744  Grooming = "Trimming",
745  RClusTrim = 0.2,
746  PtFracTrim = 0.05
747  ))
748  RCSubstructureTrackTrimAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureTrackTrimAug", AugmentationTools = [LLP1RCJetSubstructureTrackTrimAugTool])
749  acc.addEventAlgo(RCSubstructureTrackTrimAug)
750 
751  from DerivationFrameworkLLP.LLPToolsConfig import RCJetSubstructureAugCfg
752  LLP1RCJetSubstructureTrackSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
753  name = "LLP1RCJetSubstructureTrackSDAugTool",
754  StreamName = kwargs['StreamName'],
755  JetContainerKey = "AntiKt10EMTopoRCJets",
756  SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
757  GhostConstitNames = ["GhostTrack", "GhostTrackLRT"],
758  Suffix = "trackSoftDrop",
759  Grooming = "SoftDrop",
760  BetaSoft = 1.0,
761  ZcutSoft = 0.1
762  ))
763  RCSubstructureTrackSDAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureTrackSDAug", AugmentationTools = [LLP1RCJetSubstructureTrackSDAugTool])
764  acc.addEventAlgo(RCSubstructureTrackSDAug)
765 
766 
767 
768  # Skimming
769  skimmingTools = []
770 
771  from DerivationFrameworkLLP.LLPToolsConfig import LLP1TriggerSkimmingToolCfg
772  LLP1TriggerSkimmingTool = acc.getPrimaryAndMerge(LLP1TriggerSkimmingToolCfg(flags,
773  name = "LLP1TriggerSkimmingTool",
774  TriggerListsHelper = kwargs['TriggerListsHelper']))
775 
776  skimmingTools.append(LLP1TriggerSkimmingTool)
777 
778  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
779  acc.addEventAlgo(DerivationKernel(name,
780  SkimmingTools = skimmingTools,
781  ThinningTools = thinningTools,
782  AugmentationTools = augmentationTools))
783 
784  return acc
785 
786 
787 
788 
789 
790 
791 def LLP1Cfg(flags):
792  acc = ComponentAccumulator()
793  # Get the lists of triggers needed for trigger matching.
794  # This is needed at this scope (for the slimming) and further down in the config chain
795  # for actually configuring the matching, so we create it here and pass it down
796  # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
797  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
798  LLP1TriggerListsHelper = TriggerListsHelper(flags)
799 
800  # Common augmentations
801  acc.merge(LLP1KernelCfg(flags, name="LLP1Kernel", StreamName = 'StreamDAOD_LLP1', TriggerListsHelper = LLP1TriggerListsHelper))
802 
803 
806  from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
807  # We can't pass non-LRT containers to the LLP algorithm.
808  # Otherwise, if this is run in conjunction with PHYS, the decorations
809  # produced by the PHYS algorithm will be overwritten. To get those
810  # decorations produced when LLP1 is run alone, we schedule a separate
811  # algorithm for those but make it the same as the one in PHYS so that
812  # they'll be merged when both formats are used together.
813  acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite = False, stream_name = 'StreamDAOD_LLP1'))
814  contNames = [ "LRTElectrons", "MuonsLRT" ]
815  acc.merge(IsoCloseByAlgsCfg(flags, suff = "_LLP1", isPhysLite = False, containerNames = contNames, useSelTools = True, stream_name = 'StreamDAOD_LLP1', hasLRT = True))
816  contNames = [ MergedMuonContainer, MergedElectronContainer, "Photons" ]
817  acc.merge(IsoCloseByAlgsCfg(flags, suff = "_LLP1_LRTMerged", isPhysLite = False, containerNames = contNames, useSelTools = True, stream_name = 'StreamDAOD_LLP1', isoDecSuffix = "CloseByCorr_LRT", caloDecSuffix = '_LRT', hasLRT = True))
818  contNames = [ "ZeroPixelHitMuons" ]
819  acc.merge(IsoCloseByAlgsCfg(flags, suff = "_LLP1_ZeroPixelHitsMuons", isPhysLite = False, containerNames = contNames, stream_name = 'StreamDAOD_LLP1', isoDecSuffix = "CloseByCorr_ZPH"))
820 
821  # ============================
822  # Define contents of the format
823  # =============================
824  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
825  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
826  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
827 
828  LLP1SlimmingHelper = SlimmingHelper("LLP1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
829 
830  LLP1SlimmingHelper.SmartCollections = ["EventInfo",
831  "Electrons",
832  "LRTElectrons",
833  "Photons",
834  "Muons",
835  "MuonsLRT",
836  "PrimaryVertices",
837  "InDetTrackParticles",
838  "InDetLargeD0TrackParticles",
839  "AntiKt4EMTopoJets",
840  "AntiKt4EMPFlowJets",
841  "BTagging_AntiKt4EMTopo",
842  "BTagging_AntiKt4EMPFlow",
843  "BTagging_AntiKtVR30Rmax4Rmin02Track",
844  "MET_Baseline_AntiKt4EMTopo",
845  "MET_Baseline_AntiKt4EMPFlow",
846  "TauJets",
847  "TauJets_MuonRM",
848  "DiTauJets",
849  "DiTauJetsLowPt",
850  "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
851  "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
852  "AntiKtVR30Rmax4Rmin02PV0TrackJets",
853  ]
854 
855  LLP1SlimmingHelper.AllVariables = ["InDetDisappearingTrackParticles",
856  "MSDisplacedVertex",
857  "MuonSpectrometerTrackParticles",
858  "UnAssocMuonSegments",
859  "MuonSegments",
860  "MuonSegments_LRT",
861  "MSonlyTracklets",
862  "CombinedMuonTrackParticles",
863  "ExtrapolatedMuonTrackParticles",
864  "CombinedMuonsLRTTrackParticles",
865  "ExtraPolatedMuonsLRTTrackParticles",
866  "MSOnlyExtraPolatedMuonsLRTTrackParticles",
867  "CombinedStauTrackParticles",
868  "AntiKt4EMTopoJets",
869  "egammaClusters",
870  "ElectronRingSets",
871  "ElectronCaloRings",
872  "JetRingSets",
873  "JetCaloRings",
874  "SlowMuons",
875  #"LCOriginTopoClusters",
876  "EMOriginTopoClusters",
877  "Staus",
878  "METAssoc_AntiKt4EMTopo",
879  "MET_Core_AntiKt4EMTopo",
880  "METAssoc_AntiKt4EMPFlow",
881  "MET_Core_AntiKt4EMPFlow",
882  "InDetLowPtRoITrackParticles",
883  "PixelClusters",
884  "PixelMSOSs",
885  "DisappearingPixelMSOSs",
886  "LowPtRoIPixelMSOSs",
887  "SCT_Clusters",
888  "SCT_MSOSs",
889  "DisappearingSCT_MSOSs",
890  "LowPtRoISCT_MSOSs",
891  ]
892 
893 
894  excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
895  StaticContent = []
896  StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
897  StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
898  StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
899  StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
900  StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
901  StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
902  StaticContent += ["xAOD::JetContainer#AntiKt10EMTopoRCJets","xAOD::JetAuxContainer#AntiKt10EMTopoRCJetsAux.-PseudoJet"]
903  StaticContent += ["CaloClusterCellLinkContainer#CaloCalTopoClusters_links"]
904 
905  for wp in LLP1VrtSecInclusiveSuffixes:
906  StaticContent += ["xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
907  StaticContent += ["xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp + "Aux."]
908 
909  for wp in LLP1NewVSISuffixes:
910  StaticContent += ["xAOD::VertexContainer#NewVrtSecInclusive_SecondaryVertices" + wp]
911  StaticContent += ["xAOD::VertexAuxContainer#NewVrtSecInclusive_SecondaryVertices" + wp + "Aux." + excludedVertexAuxData]
912 
913  LLP1SlimmingHelper.ExtraVariables += ["AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
914  "Electrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
915  "LRTElectrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
916  "Photons.DFCommonPhotonsIsEMMedium.DFCommonPhotonsIsEMMediumIsEMValue.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
917  "Muons.meanDeltaADCCountsMDT",
918  "egammaClusters.phi_sampl.eta0.phi0",
919  "LRTegammaClusters.phi_sampl.eta0.phi0",
920  "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.GhostTrackLRT.GhostTrackLRTCount.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
921  "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",
922  "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostTausFinal.GhostTausFinalCount",
923  "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostTausFinal.GhostTausFinalCount",
924  "TruthPrimaryVertices.t.x.y.z.sumPt2",
925  "PrimaryVertices.t.x.y.z.sumPt2.covariance",
926  "InDetTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
927  "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
928  "InDetTrackParticles.numberOfIBLOverflowsdEdx.numberOfUsedHitsdEdx.pixeldEdx",
929  "InDetTrackParticles.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberOfNextToInnermostPixelLayerHits.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits",
930  "InDetTrackParticles.numberOfSCTOutliers.numberOfSCTSpoiltHits",
931  "InDetTrackParticles.numberOfTRTHoles.numberOfTRTDeadStraws.numberOfTRTSharedHits.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.TRTdEdx.TRTdEdxUsedHits.hitPattern",
932  "InDetTrackParticles.truthMatchProbability.truthOrigin.truthType",
933  "InDetTrackParticles.TrkIsoPtPdEdx_ptcone20.TrkIsoPtPdEdx_ptcone30.TrkIsoPtPdEdx_ptcone40.TrkIsoPtTightPdEdx_ptcone20.TrkIsoPtTightPdEdx_ptcone30.TrkIsoPtTightPdEdx_ptcone40",
934  "InDetTrackParticles.LLP1_ptcone20.LLP1_ptcone30.LLP1_ptcone40.LLP1_ptvarcone20.LLP1_ptvarcone30.LLP1_ptvarcone40.definingParametersCovMatrixDiag.definingParametersCovMatrixOffDiag",
935  "InDetTrackParticles.LLP1_topoetcone20.LLP1_topoetcone30.LLP1_topoetcone40.LLP1_topoetcone20NonCoreCone.LLP1_topoetcone30NonCoreCone.LLP1_topoetcone40NonCoreCone",
936  "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",
937  "InDetTrackParticles.Reco_msosLink",
938 
939  "InDetLargeD0TrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
940  "GSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthOrigin.truthType",
941  "LRTGSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthOrigin.truthType",
942  "EventInfo.hardScatterVertexLink.timeStampNSOffset",
943  "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
944  "EventInfo.hardScatterVertexLink.timeStampNSOffset",
945  "EventInfo.DFCommonJets_eventClean_SuperLooseBadLLP.DFCommonJets_eventClean_SuperLooseBadLLP_EMTopo.DFCommonJets_eventClean_LooseBadLLP_EMTopo",
946  "TauJets.dRmax.etOverPtLeadTrk.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
947  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
948  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
949 
950  # Isolation close by correction content for the LRT included corrections
951  LLP1SlimmingHelper.ExtraVariables += ["Muons.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
952  "MuonsLRT.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
953  "Electrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT",
954  "LRTElectrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT",
955  "Photons.topoetcone20_CloseByCorr_LRT.topoetcone40_CloseByCorr_LRT.ptcone20_CloseByCorr_LRT"
956  ]
957 
958  VSITrackAuxVars = [
959  "is_selected", "is_associated", "is_svtrk_final", "pt_wrtSV", "eta_wrtSV",
960  "phi_wrtSV", "d0_wrtSV", "z0_wrtSV", "errP_wrtSV", "errd0_wrtSV",
961  "errz0_wrtSV", "chi2_toSV"
962  ]
963 
964  for suffix in LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes:
965  LLP1SlimmingHelper.ExtraVariables += [ "InDetTrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
966  LLP1SlimmingHelper.ExtraVariables += [ "InDetLargeD0TrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
967  LLP1SlimmingHelper.ExtraVariables += [ "GSFTrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
968  LLP1SlimmingHelper.ExtraVariables += [ "LRTGSFTrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
969 
970  LLP1SlimmingHelper.ExtraVariables.append('CaloCalTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME')
971  LLP1SlimmingHelper.AppendToDictionary["EMOriginTopoClusters"]='xAOD::CaloClusterContainer'
972  LLP1SlimmingHelper.AppendToDictionary["EMOriginTopoClustersAux"]='xAOD::ShallowAuxContainer'
973  LLP1SlimmingHelper.ExtraVariables.append('EMOriginTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME')
974 
975 
976  # Truth containers
977  if flags.Input.isMC:
978 
979  from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
980  addTruth3ContentToSlimmerTool(LLP1SlimmingHelper)
981  LLP1SlimmingHelper.AllVariables += ['TruthHFWithDecayParticles','TruthHFWithDecayVertices','TruthCharm','TruthPileupParticles','InTimeAntiKt4TruthJets','OutOfTimeAntiKt4TruthJets', 'AntiKt4TruthJets']
982  LLP1SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
983  "LRTElectrons.TruthLink",
984  "Muons.TruthLink",
985  "MuonsLRT.TruthLink",
986  "Photons.TruthLink"]
987 
988  if flags.Derivation.LLP.saveFullTruth:
989  LLP1SlimmingHelper.ExtraVariables += ['TruthParticles', 'TruthVertices']
990  StaticContent += ["xAOD::JetContainer#AntiKt10TruthRCJets","xAOD::JetAuxContainer#AntiKt10TruthRCJetsAux.-PseudoJet"]
991 
992  # ZeroPixelHitMuons container
993  StaticContent += ["xAOD::MuonContainer#ZeroPixelHitMuons", "xAOD::MuonAuxContainer#ZeroPixelHitMuonsAux."]
994 
995  from DerivationFrameworkEGamma.PhotonsCPDetailedContent import (
996  PhotonsCPDetailedContent,
997  )
998  LLP1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
999 
1000 
1001  from DerivationFrameworkJetEtMiss.JetCommonConfig import addOriginCorrectedClustersToSlimmingTool
1002  addOriginCorrectedClustersToSlimmingTool(LLP1SlimmingHelper,writeLC=True,writeEM=True)
1003  LLP1SlimmingHelper.StaticContent = StaticContent
1004 
1005  # Trigger content
1006  LLP1SlimmingHelper.IncludeTriggerNavigation = False
1007  LLP1SlimmingHelper.IncludeJetTriggerContent = False
1008  LLP1SlimmingHelper.IncludeMuonTriggerContent = False
1009  LLP1SlimmingHelper.IncludeEGammaTriggerContent = False
1010  LLP1SlimmingHelper.IncludeTauTriggerContent = False
1011  LLP1SlimmingHelper.IncludeEtMissTriggerContent = False
1012  LLP1SlimmingHelper.IncludeBJetTriggerContent = False
1013  LLP1SlimmingHelper.IncludeBPhysTriggerContent = False
1014  LLP1SlimmingHelper.IncludeMinBiasTriggerContent = False
1015 
1016  # Trigger matching
1017  # Run 2
1018  if flags.Trigger.EDMVersion == 2:
1019  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
1020  from DerivationFrameworkLLP.LLPToolsConfig import LLP1TriggerMatchingToolRun2Cfg
1021  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1022  OutputContainerPrefix = "TrigMatch_",
1023  TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesTau)
1024  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1025  OutputContainerPrefix = "TrigMatch_",
1026  TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau)
1027  # Schedule additional pre-matching against LLP offline muons and electrons
1028  acc.merge(LLP1TriggerMatchingToolRun2Cfg(flags,
1029  name = "LRTTriggerMatchingTool_LLP1",
1030  OutputContainerPrefix = "LRTTrigMatch_LLP1_",
1031  TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1032  InputElectrons=MergedElectronContainer,
1033  InputMuons=MergedMuonContainer_wZPH
1034  ))
1035  # And add the additional LLP trigger matching branches to the slimming helper
1036  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1037  OutputContainerPrefix = "LRTTrigMatch_LLP1_",
1038  TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1039  InputElectrons=MergedElectronContainer,
1040  InputMuons=MergedMuonContainer_wZPH
1041  )
1042  # Run 3, or Run 2 with navigation conversion
1043  if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
1044  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
1046 
1047  # Output stream
1048  LLP1ItemList = LLP1SlimmingHelper.GetItemList()
1049  acc.merge(OutputStreamCfg(flags, "DAOD_LLP1", ItemList=LLP1ItemList, AcceptAlgs=["LLP1Kernel"]))
1050  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_LLP1", AcceptAlgs=["LLP1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
1051 
1052  return acc
1053 
python.LLPToolsConfig.RCJetSubstructureAugCfg
def RCJetSubstructureAugCfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:39
python.LLPToolsConfig.LLP1TriggerSkimmingToolCfg
def LLP1TriggerSkimmingToolCfg(flags, name, TriggerListsHelper, **kwargs)
Definition: LLPToolsConfig.py:91
TrigNavSlimmingMTConfig.AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
def AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(slimmingHelper)
Definition: TrigNavSlimmingMTConfig.py:98
python.LLPToolsConfig.LRTMuonMergerAlg
def LRTMuonMergerAlg(flags, name="LLP1_MuonLRTMergingAlg", **kwargs)
Definition: LLPToolsConfig.py:180
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.LLPToolsConfig.VSITrackParticleThinningCfg
def VSITrackParticleThinningCfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:12
python.FtagDerivationConfig.FtagJetCollectionsCfg
def FtagJetCollectionsCfg(cfgFlags, jet_cols, pv_cols=None, trackAugmenterPrefix=None)
Definition: FtagDerivationConfig.py:32
python.EGammaLRTConfig.EGammaLRTCfg
def EGammaLRTCfg(ConfigFlags)
Definition: EGammaLRTConfig.py:15
python.JetSelectorToolsConfig.EventCleaningToolCfg
def EventCleaningToolCfg(ConfigFlags, name, cleaningLevel)
Definition: JetSelectorToolsConfig.py:14
python.JetCommonConfig.addOriginCorrectedClustersToSlimmingTool
def addOriginCorrectedClustersToSlimmingTool(slimhelper, writeLC=False, writeEM=False)
Helper to add origin corrected clusters to output.
Definition: JetCommonConfig.py:275
DerivationFrameworkCaloConfig.JetCaloClusterThinningCfg
def JetCaloClusterThinningCfg(flags, **kwargs)
Definition: DerivationFrameworkCaloConfig.py:110
python.LLPToolsConfig.TrackParametersKVUCfg
def TrackParametersKVUCfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:56
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
python.LLPToolsConfig.ZeroPixelHitMuonMergerAlgCfg
def ZeroPixelHitMuonMergerAlgCfg(flags, name='LLP1_MuonZPHMergingAlg', **kwargs)
Definition: LLPToolsConfig.py:186
VrtSecInclusiveConfig.VrtSecInclusiveCfg
def VrtSecInclusiveCfg(flags, name="VrtSecInclusive", **kwargs)
Definition: VrtSecInclusiveConfig.py:9
python.JetSelectorToolsConfig.JetCleaningToolCfg
def JetCleaningToolCfg(ConfigFlags, name, jetdef, cleaningLevel, useDecorations)
Definition: JetSelectorToolsConfig.py:6
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:458
python.LLPToolsConfig.TrackParticleCaloCellDecoratorCfg
def TrackParticleCaloCellDecoratorCfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:74
python.InDetTrackSelectionToolConfig.InDetTrackSelectionTool_Loose_Cfg
def InDetTrackSelectionTool_Loose_Cfg(flags, name="InDetTrackSelectionTool_Loose", **kwargs)
Configs based on CutLevel Loose #####.
Definition: InDetTrackSelectionToolConfig.py:36
python.InDetToolsConfig.DiTauTrackParticleThinningCfg
def DiTauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:563
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:49
DerivationFrameworkCaloConfig.MaxCellDecoratorCfg
def MaxCellDecoratorCfg(flags, **kwargs)
Definition: DerivationFrameworkCaloConfig.py:7
NewVrtSecInclusiveAlgConfig.NewVrtSecInclusiveAlgLLPCfg
def NewVrtSecInclusiveAlgLLPCfg(flags, algname="NVSI", AugmentingVersionString="", **kwargs)
Definition: NewVrtSecInclusiveAlgConfig.py:20
python.LLPToolsConfig.LRTElectronLHSelectorsCfg
def LRTElectronLHSelectorsCfg(flags)
Definition: LLPToolsConfig.py:234
python.LLPToolsConfig.LRTElectronMergerAlg
def LRTElectronMergerAlg(flags, name="LLP1_ElectronLRTMergingAlg", **kwargs)
Definition: LLPToolsConfig.py:199
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
python.JetRecConfig.registerAsInputConstit
def registerAsInputConstit(jetdef)
Definition: JetRecConfig.py:852
python.LLPToolsConfig.RecoverZeroPixelHitMuonsCfg
def RecoverZeroPixelHitMuonsCfg(flags)
Definition: LLPToolsConfig.py:381
python.LLPToolsConfig.JetLargeD0TrackParticleThinningCfg
def JetLargeD0TrackParticleThinningCfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:30
python.TrkVertexFitterUtilsConfig.AtlasFullLinearizedTrackFactoryCfg
def AtlasFullLinearizedTrackFactoryCfg(flags, name='AtlasFullLinearizedTrkFactory', **kwargs)
Definition: TrkVertexFitterUtilsConfig.py:20
InDetTrackSystematicsToolsConfig.TrackSystematicsAlgCfg
def TrackSystematicsAlgCfg(flags, name="InDetTrackSystematicsAlg", **kwargs)
Definition: InDetTrackSystematicsToolsConfig.py:86
python.JetRecConfig.JetRecCfg
def JetRecCfg(flags, jetdef, returnConfiguredDef=False)
Top level functions returning ComponentAccumulator out of JetDefinition.
Definition: JetRecConfig.py:36
python.MuonsCommonConfig.MuonsCommonCfg
def MuonsCommonCfg(flags, suff="")
Definition: MuonsCommonConfig.py:13
python.LLP1.LLP1KernelCfg
def LLP1KernelCfg(flags, name='LLP1Kernel', **kwargs)
Definition: LLP1.py:23
NewVrtSecInclusiveConfig.DVFinderToolCfg
def DVFinderToolCfg(flags, name="DVFinderTool", **myargs)
Definition: NewVrtSecInclusiveConfig.py:158
DerivationFrameworkCaloConfig.MaxCellDecoratorKernelCfg
def MaxCellDecoratorKernelCfg(flags, name="MaxCellDecoratorKernel", **kwargs)
Definition: DerivationFrameworkCaloConfig.py:69
python.DerivationFrameworkToolsConfig.GenericObjectThinningCfg
def GenericObjectThinningCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:20
python.InDetToolsConfig.JetTrackParticleThinningCfg
def JetTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:574
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:542
python.InDetToolsConfig.TauTrackParticleThinningCfg
def TauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:553
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.LLP1.LLP1Cfg
def LLP1Cfg(flags)
Definition: LLP1.py:791
IsoToolsConfig.CaloIsolationToolCfg
def CaloIsolationToolCfg(flags, **kwargs)
Definition: IsoToolsConfig.py:25
python.TrackIsolationDecoratorConfig.TrackIsolationToolCfg
def TrackIsolationToolCfg(ConfigFlags, name="TrackIsolationTool", **kwargs)
Definition: TrackIsolationDecoratorConfig.py:12
python.MCTruthCommonConfig.addTruth3ContentToSlimmerTool
def addTruth3ContentToSlimmerTool(slimmer)
Definition: MCTruthCommonConfig.py:466
python.InDetToolsConfig.InDetLRTMergeCfg
def InDetLRTMergeCfg(flags, name="InDetLRTMerge", **kwargs)
Definition: InDetToolsConfig.py:14
python.InDetToolsConfig.EgammaTrackParticleThinningCfg
def EgammaTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:593
python.LLPToolsConfig.PhotonIsEMSelectorsCfg
def PhotonIsEMSelectorsCfg(flags)
Definition: LLPToolsConfig.py:206
IsolationSelectionConfig.IsoCloseByAlgsCfg
def IsoCloseByAlgsCfg(flags, suff="", isPhysLite=False, containerNames=["Muons", "Electrons", "Photons"], stream_name="", ttva_wp="Nonprompt_All_MaxWeight", useSelTools=False, isoDecSuffix="CloseByCorr", caloDecSuffix="", hasLRT=False)
Definition: IsolationSelectionConfig.py:146
python.TauCommonConfig.TauThinningCfg
def TauThinningCfg(flags, name, **kwargs)
Definition: TauCommonConfig.py:197
python.LLPToolsConfig.AugmentationToolLeadingJetsCfg
def AugmentationToolLeadingJetsCfg(flags)
Definition: LLPToolsConfig.py:48
python.PhysCommonConfig.PhysCommonAugmentationsCfg
def PhysCommonAugmentationsCfg(flags, **kwargs)
Definition: PhysCommonConfig.py:14
python.LLPToolsConfig.PixeldEdxTrackParticleThinningCfg
def PixeldEdxTrackParticleThinningCfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:83
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:66
python.InDetToolsConfig.IsolationTrackDecoratorCfg
def IsolationTrackDecoratorCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:447
python.METCommonConfig.METLRTCfg
def METLRTCfg(ConfigFlags, jetType)
Definition: METCommonConfig.py:52
python.LLPToolsConfig.LLP1TriggerMatchingToolRun2Cfg
def LLP1TriggerMatchingToolRun2Cfg(flags, name, **kwargs)
Definition: LLPToolsConfig.py:144