Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
SUSY20.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 #========================================================================
3 # DAOD_SUSY20.py
4 # This defines DAOD_SUSY20, a skimmed DAOD format for Run-2 and Run-3.
5 # It requires the flag SUSY20 in Derivation_tf.py
6 #========================================================================
7 
8 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory import CompFactory
10 from AthenaConfiguration.Enums import MetadataCategory
11 
12 # Main algorithm config
13 def SUSY20KernelCfg(flags, name = "SUSY20Kernel", **kwargs):
14 
15  """Configure the derivation framework driving algorithm (kernel) for SUSY20"""
16 
17  acc = ComponentAccumulator()
18 
19  #
20  # SUSY20 augmentations
21  #
22  augmentationTools = []
23 
24  # V0Finder Tool
25  # Details here: https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/DerivationFramework/DerivationFrameworkBPhys/python/V0ToolConfig.py
26  from DerivationFrameworkBPhys.V0ToolConfig import BPHY_Reco_V0FinderCfg as Reco_V0Finder
27  SUSY20_RecoV0_Finder = acc.popToolsAndMerge(Reco_V0Finder(
28  flags,
29  derivation = "SUSY20",
30  suffix = "DT",
31  V0ContainerName = "SUSY20RecoV0Candidates",
32  KshortContainerName = "SUSY20RecoKshortCandidates",
33  LambdaContainerName = "SUSY20RecoLambdaCandidates",
34  LambdabarContainerName = "SUSY20RecoLambdabarCandidates",
35  CheckVertexContainers = ["PrimaryVertices"]
36  ))
37  acc.addPublicTool(SUSY20_RecoV0_Finder)
38  augmentationTools.append(SUSY20_RecoV0_Finder)
39 
40  # VrtSecInclusiveTool
41  from VrtSecInclusive.VrtSecInclusiveConfig import VrtSecInclusiveCfg
42  acc.merge(VrtSecInclusiveCfg(
43  flags,
44  name = "SUSY20_VrtSecInclusiveTool",
45  AugmentingVersionString = "_SUSY20",
46  CutSctHits = 1,
47  TrkA0ErrCut = 200000,
48  TrkZErrCut = 200000,
49  TrkPtCut = 300,
50  TrkChi2Cut = 5.0,
51  SelTrkMaxCutoff = 2000,
52  a0TrkPVDstMinCut = 0.0,
53  SelVrtChi2Cut = 4.5,
54  CutSharedHits = 5,
55  TruthTrkLen = 1,
56  DoSAloneTRT = False,
57  DoTruth = flags.Input.isMC,
58  ))
59 
60  # Track isolation
61  from xAODPrimitives.xAODIso import xAODIso as isoPar
62  deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20]
63  deco_ptcones_suffix = ["ptcone40", "ptcone30", "ptcone20", "topoetcone40", "topoetcone30", "topoetcone20"]
64  deco_prefix = 'SUSY20_'
65 
66  from IsolationAlgs.IsoToolsConfig import TrackIsolationToolCfg
67  SUSY20TrackIsoTool = acc.popToolsAndMerge(TrackIsolationToolCfg(
68  flags,
69  name = "SUSY20TrackIsoTool",
70  ))
71  SUSY20TrackIsoTool.TrackSelectionTool.maxZ0SinTheta = 1.5
72  SUSY20TrackIsoTool.TrackSelectionTool.maxD0 = 1.5
73  SUSY20TrackIsoTool.TrackSelectionTool.minPt = 1000
74  SUSY20TrackIsoTool.TrackSelectionTool.CutLevel = "TightPrimary"
75  acc.addPublicTool(SUSY20TrackIsoTool)
76 
77  from IsolationAlgs.IsoToolsConfig import CaloIsolationToolCfg
78  from CaloIdentifier import SUBCALO
79  SUSY20CaloIsoTool = acc.popToolsAndMerge(CaloIsolationToolCfg(
80  flags,
81  name = "SUSY20CaloIsoTool",
82  EMCaloNums = [SUBCALO.LAREM],
83  HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
84  UseEMScale = True,
85  UseCaloExtensionCaching = False,
86  saveOnlyRequestedCorrections = True
87  ))
88  acc.addPublicTool(SUSY20CaloIsoTool)
89 
90  from DerivationFrameworkInDet.InDetToolsConfig import IsolationTrackDecoratorCfg
91  SUSY20IDTrackDecoratorTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
92  flags,
93  name = "SUSY20IDTrackDecoratorTool",
94  TrackIsolationTool = SUSY20TrackIsoTool,
95  CaloIsolationTool = SUSY20CaloIsoTool,
96  TargetContainer = "InDetTrackParticles",
97  SelectionString = "InDetTrackParticles.pt > 0.5*GeV",
98  iso = deco_ptcones,
99  isoSuffix = deco_ptcones_suffix,
100  Prefix = deco_prefix,
101  ))
102  acc.addPublicTool(SUSY20IDTrackDecoratorTool)
103  augmentationTools.append(SUSY20IDTrackDecoratorTool)
104 
105  # Commented out calo isolation, not needed by current analyses but still included in r21 SUSY20_DAODs
106  '''# Electron TrackParticles isolation
107  SUSY20ElectronDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
108  flags,
109  name = "SUSY20ElectronDecoratorTool",
110  TrackIsolationTool = SUSY20TrackIsoTool,
111  CaloIsolationTool = SUSY20CaloIsoTool,
112  TargetContainer = "Electrons",
113  iso = [isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
114  isoSuffix = ["topoetcone40", "topoetcone30", "topoetcone20"],
115  Prefix = deco_prefix,
116  ))
117  acc.addPublicTool(SUSY20ElectronDecorator)
118  augmentationTools.append(SUSY20ElectronDecorator)
119 
120  # Muon TrackParticles isolation
121  SUSY20MuonDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
122  flags,
123  name = "SUSY20MuonDecoratorTool",
124  TrackIsolationTool = SUSY20TrackIsoTool,
125  CaloIsolationTool = SUSY20CaloIsoTool,
126  TargetContainer = "Muons",
127  iso = [isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
128  isoSuffix = ["topoetcone40", "topoetcone30", "topoetcone20"],
129  Prefix = deco_prefix,
130  ))
131  acc.addPublicTool(SUSY20MuonDecorator)
132  augmentationTools.append(SUSY20MuonDecorator)
133 
134  # Photon TrackParticles isolation
135  SUSY20PhotonDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
136  flags,
137  name = "SUSY20PhotonDecoratorTool",
138  TrackIsolationTool = SUSY20TrackIsoTool,
139  CaloIsolationTool = SUSY20CaloIsoTool,
140  TargetContainer = "Photons",
141  iso = [isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
142  isoSuffix = ["topoetcone40", "topoetcone30", "topoetcone20"],
143  Prefix = deco_prefix,
144  ))
145  acc.addPublicTool(SUSY20PhotonDecorator)
146  augmentationTools.append(SUSY20PhotonDecorator)'''
147 
148  # PHYS common augmentations
149  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
150  acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
151 
152  # EvtCleaning: instantiate our own version of EventCleaningAlg to
153  # add TightBad flags to EventInfo and AntiKt4EMTopoJets collections
154  from DerivationFrameworkSUSY.SUSYToolsConfig import SUSY20EventCleaningToolCfg
155  acc.merge(SUSY20EventCleaningToolCfg(flags, cleaningLevel = "TightBad"))
156 
157  # Track selection augmentation need for InDetTrackParticles thinning
158  from DerivationFrameworkInDet.InDetToolsConfig import InDetTrackSelectionToolWrapperCfg
159  SUSY20TrackSelection = acc.getPrimaryAndMerge(InDetTrackSelectionToolWrapperCfg(
160  flags,
161  name = "SUSY20TrackSelection",
162  ContainerName = "InDetTrackParticles",
163  DecorationName = "DFLoose"
164  ))
165  SUSY20TrackSelection.TrackSelectionTool.CutLevel = "Loose"
166  acc.addPublicTool(SUSY20TrackSelection)
167  augmentationTools.append(SUSY20TrackSelection)
168 
169  #
170  # Thinning tools
171  #
172  thinningTools = []
173  thinningExpression = "InDetTrackParticles.DFLoose && (InDetTrackParticles.pt > 0.5*GeV) && (abs( DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta) ) < 3.0*mm)"
174 
175  # TrackParticles directly
176  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
177  SUSY20TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
178  flags,
179  name = "SUSY20TrackParticleThinningTool",
180  StreamName = kwargs['StreamName'],
181  SelectionString = thinningExpression,
182  InDetTrackParticlesKey = "InDetTrackParticles"
183  ))
184  acc.addPublicTool(SUSY20TrackParticleThinningTool)
185  thinningTools.append(SUSY20TrackParticleThinningTool)
186 
187  # TrackParticles associated with Muons
188  from DerivationFrameworkInDet.InDetToolsConfig import MuonTrackParticleThinningCfg
189  SUSY20MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
190  flags,
191  name = "SUSY20MuonTPThinningTool",
192  StreamName = kwargs['StreamName'],
193  MuonKey = "Muons",
194  InDetTrackParticlesKey = "InDetTrackParticles"
195  ))
196  acc.addPublicTool(SUSY20MuonTPThinningTool)
197  thinningTools.append(SUSY20MuonTPThinningTool)
198 
199  # TrackParticles associated with Electrons
200  from DerivationFrameworkInDet.InDetToolsConfig import EgammaTrackParticleThinningCfg
201  SUSY20ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
202  flags,
203  name = "SUSY20ElectronTPThinningTool",
204  StreamName = kwargs['StreamName'],
205  SGKey = "Electrons",
206  InDetTrackParticlesKey = "InDetTrackParticles"
207  ))
208  acc.addPublicTool(SUSY20ElectronTPThinningTool)
209  thinningTools.append(SUSY20ElectronTPThinningTool)
210 
211  # Photon thinning
212  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import GenericObjectThinningCfg
213  SUSY20PhotonThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(
214  flags,
215  name = "SUSY20PhotonThinningTool",
216  StreamName = kwargs['StreamName'],
217  ContainerName = "Photons",
218  SelectionString = "Photons.pt > 10*GeV"
219  ))
220  acc.addPublicTool(SUSY20PhotonThinningTool)
221  thinningTools.append(SUSY20PhotonThinningTool)
222 
223  # TrackParticles associated with photons
224  SUSY20PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
225  flags,
226  name = "SUSY20PhotonTPThinningTool",
227  StreamName = kwargs['StreamName'],
228  SGKey = "Photons",
229  InDetTrackParticlesKey = "InDetTrackParticles",
230  GSFConversionVerticesKey = "GSFConversionVertices"
231  ))
232  acc.addPublicTool(SUSY20PhotonTPThinningTool)
233  thinningTools.append(SUSY20PhotonTPThinningTool)
234 
235  # Truth thinning
236  if flags.Input.isMC:
237  from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import MenuTruthThinningCfg
238  SUSY20TruthThinningTool = acc.getPrimaryAndMerge(MenuTruthThinningCfg(
239  flags,
240  name = "SUSY20TruthThinningTool",
241  WritePartons = False,
242  WriteHadrons = True,
243  WriteBHadrons = True,
244  WriteGeant = False,
245  GeantPhotonPtThresh = 20000,
246  WriteTauHad = True,
247  PartonPtThresh = -1.0,
248  WriteBSM = True,
249  WriteBosons = True,
250  WriteBosonProducts = False,
251  WriteBSMProducts = True,
252  WriteTopAndDecays = True,
253  WriteEverything = False,
254  WriteAllLeptons = True,
255  WriteLeptonsNotFromHadrons = False,
256  WriteNotPhysical = False,
257  WriteFirstN = 10,
258  PreserveAncestors = True,
259  PreserveGeneratorDescendants = True
260  ))
261  acc.addPublicTool(SUSY20TruthThinningTool)
262  thinningTools.append(SUSY20TruthThinningTool)
263 
264  #
265  # Skimming
266  #
267  skimmingTools = []
268 
269  # DT-specific trigger skimming
270  from DerivationFrameworkSUSY.SUSYToolsConfig import SUSY20DTTriggerSkimmingToolCfg
271  SUSY20TriggerSkimmingTool_DT = acc.getPrimaryAndMerge(SUSY20DTTriggerSkimmingToolCfg(
272  flags,
273  name = "SUSY20TriggerSkimmingTool"
274  ))
275  acc.addPublicTool(SUSY20TriggerSkimmingTool_DT)
276 
277  # DT-specific jet skimming
278  jetRequirements_DT = "AntiKt4EMPFlowJets.pt > 200*GeV && abs(AntiKt4EMPFlowJets.eta) < 2.8"
279  jetSelection_DT = "(count(" + jetRequirements_DT + ") >= 1)"
280 
281  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import xAODStringSkimmingToolCfg
282  SUSY20JetSkimmingTool_DT = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
283  flags,
284  name = "SUSY20JetSkimmingTool_DT",
285  expression = jetSelection_DT
286  ))
287  acc.addPublicTool(SUSY20JetSkimmingTool_DT)
288 
289  # DT-specific final skim selection, with trigger selection AND jet selection
290  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import FilterCombinationANDCfg
291  SUSY20xAODSkimmingTool_DT = acc.getPrimaryAndMerge(FilterCombinationANDCfg(
292  flags,
293  name = "SUSY20SkimmingTool_DT",
294  FilterList = [SUSY20JetSkimmingTool_DT, SUSY20TriggerSkimmingTool_DT]
295  ))
296  acc.addPublicTool(SUSY20xAODSkimmingTool_DT)
297  skimmingTools.append(SUSY20xAODSkimmingTool_DT)
298 
299  #
300  # The kernel algorithm itself
301  #
302  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
303  acc.addEventAlgo(DerivationKernel(
304  name,
305  SkimmingTools = skimmingTools,
306  ThinningTools = thinningTools,
307  AugmentationTools = augmentationTools,
308  RunSkimmingFirst = True
309  ))
310 
311  return acc
312 
313 def SUSY20Cfg(flags):
314 
315  stream_name = 'StreamDAOD_SUSY20'
316  acc = ComponentAccumulator()
317 
318  # Get the lists of triggers needed for trigger matching.
319  # This is needed at this scope (for the slimming) and further down in the config chain
320  # for actually configuring the matching, so we create it here and pass it down
321  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
322  SUSY20TriggerListsHelper = TriggerListsHelper(flags)
323 
324  # SUSY20 augmentations
325  acc.merge(SUSY20KernelCfg(flags, name = "SUSY20Kernel", StreamName = stream_name, TriggerListsHelper = SUSY20TriggerListsHelper))
326 
327 
329  from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
330  acc.merge(IsoCloseByAlgsCfg(flags, suff = "_SUSY20", isPhysLite = False, containerNames = ["Muons", "Electrons", "Photons"], useSelTools = True, stream_name = stream_name))
331 
332  # =============================
333  # Define contents of the format
334  # =============================
335  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
336  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
337  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
338 
339  SUSY20SlimmingHelper = SlimmingHelper("SUSY20SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
340 
341  # Containers that we slim
342  SUSY20SlimmingHelper.SmartCollections = [
343  "EventInfo",
344  "Electrons",
345  "Photons",
346  "Muons",
347  "InDetTrackParticles",
348  "PrimaryVertices",
349  "TauJets",
350 # "AntiKt4EMTopoJets",
351  "AntiKt4EMPFlowJets",
352  "BTagging_AntiKt4EMPFlow",
353  "MET_Baseline_AntiKt4EMPFlow",
354  ]
355 
356  # Extra content
357  # Commented out variables not needed by current analyses but still included in r21 SUSY20_DAODs
358  SUSY20SlimmingHelper.ExtraVariables += [
359  "EventInfo.DFCommonJets_eventClean_TightBad.DFCommonJets_jetClean_TightBad",
360  "AntiKt4EMPFlowJets.DFCommonJets_jetClean_LooseBad.DFCommonJets_jetClean_TightBad",
361  "Electrons.DFCommonElectronsLHVeryLoose.DFCommonElectronsLHLoose.DFCommonElectronsLHLooseBL.DFCommonElectronsLHMedium.DFCommonElectronsLHTight.DFCommonElectronsLHVeryLooseIsEMValue.DFCommonElectronsLHLooseIsEMValue.DFCommonElectronsLHLooseBLIsEMValue.DFCommonElectronsLHMediumIsEMValue.DFCommonElectronsLHTightIsEMValue",
362  #"Electrons.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
363  "Muons.ptcone40.ptcone30.ptcone20.charge.quality.InnerDetectorPt.MuonSpectrometerPt.CaloLRLikelihood.CaloMuonIDTag.eta_sampl.phi_sampl",
364  #"Muons.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
365  "Photons.DFCommonPhotonsIsEMLoose.DFCommonPhotonsIsEMTight",
366  #"Photons.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
367  "InDetTrackParticles.TRTdEdx.TRTdEdxUsedHits.hitPattern.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfIBLOverflowsdEdx.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits.numberOfSCTOutliers.numberOfSCTSpoiltHits.numberOfTRTDeadStraws.numberOfTRTHits.numberOfTRTHoles.numberOfTRTOutliers.numberOfTRTSharedHits.numberOfUsedHitsdEdx.pixeldEdx",
368  "InDetTrackParticles.chiSquared.d0.definingParametersCovMatrix.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberDoF.numberOfInnermostPixelLayerHits.numberOfNextToInnermostPixelLayerHits.numberOfPixelDeadSensors.numberOfPixelHits.numberOfPixelHoles.numberOfPixelSharedHits.numberOfSCTDeadSensors.numberOfSCTHits.numberOfSCTHoles.numberOfSCTSharedHits.phi.qOverP.theta.z0",
369  "InDetTrackParticles.numberOfInnermostPixelLayerOutliers.numberOfInnermostPixelLayerSharedHits.numberOfInnermostPixelLayerSplitHits.numberOfNextToInnermostPixelLayerOutliers.numberOfNextToInnermostPixelLayerSharedHits.numberOfNextToInnermostPixelLayerSplitHits.numberOfGangedPixels.numberOfSCTDoubleHoles.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.numberOfTRTTubeHits.numberOfTRTXenonHits.numberOfOutliersOnTrack.standardDeviationOfChi2OS.eProbabilityHT.eProbabilityComb.TRTTrackOccupancy",
370  "InDetTrackParticles.SUSY20_ptcone20.SUSY20_ptcone30.SUSY20_ptcone40",
371  #"InDetTrackParticles.SUSY20_ptvarcone20.SUSY20_ptvarcone30.SUSY20_ptvarcone40",
372  "InDetTrackParticles.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
373  "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights",
374  "InDetTrackParticles.vertexLink.vz",
375  #"InDetTrackParticles.trackCaloClusEta.trackCaloClusPhi.trackCaloSampleE.trackCaloSampleNumber",
376  #"InDetTrackParticles.SUSY20_trackCaloClusEta_ele.SUSY20_trackCaloClusPhi_ele.SUSY20_trackCaloClusE_ele.SUSY20_trackCaloSampleE_ele.SUSY20_trackCaloSampleNumber_ele",
377  ]
378 
379  # Truth content
380  if flags.Input.isMC:
381 
382  from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddTauAndDownstreamParticlesCfg
383  acc.merge(AddTauAndDownstreamParticlesCfg(flags, generations = 2))
384 
385  SUSY20SlimmingHelper.AllVariables += [
386  'MET_Truth',
387  'TruthEvents',
388  'TruthParticles',
389  'TruthVertices',
390  'TruthElectrons',
391  'TruthMuons',
392  'TruthPhotons',
393  'TruthTaus',
394  'TruthNeutrinos',
395  'TruthBSM',
396  'TruthBosonsWithDecayParticles',
397  'TruthBosonsWithDecayVertices',
398  'TruthBSMWithDecayParticles',
399  'TruthBSMWithDecayVertices',
400  'TruthTausWithDecayParticles',
401  'TruthTausWithDecayVertices',
402  'AntiKt4TruthJets',
403  'AntiKt4TruthDressedWZJets'
404  ]
405  SUSY20SlimmingHelper.ExtraVariables += [
406  "Electrons.TruthLink",
407  "Muons.TruthLink",
408  "Photons.TruthLink",
409  "TruthEvents.Q.XF1.XF2.PDGID1.PDGID2.PDFID1.PDFID2.X1.X2.crossSection",
410  "InDetTrackParticles.TruthLink.truthMatchProbability.truthOrigin.truthType.truthParticleLink"
411  ]
412 
413  StaticContent = []
414 
415  # V0 content
416  for containerName in ["SUSY20RecoV0Candidates","SUSY20RecoKshortCandidates","SUSY20RecoLambdaCandidates","SUSY20RecoLambdabarCandidates"]:
417  StaticContent += [
418  "xAOD::VertexContainer#%s"%containerName,
419  "xAOD::VertexAuxContainer#%sAux"%containerName
420  + ".-vxTrackAtVertex"
421  + ".-vertexType"
422  + ".-neutralParticleLinks"
423  + ".-neutralWeights"
424  + ".-KshortLink"
425  + ".-LambdaLink"
426  + ".-LambdabarLink"
427  + ".-gamma_fit"
428  + ".-gamma_mass"
429  + ".-gamma_massError"
430  + ".-gamma_probability",
431  ]
432 
433  # VSI content
434  VSITrackVars = ["is_selected", "is_associated", "is_svtrk_final", "pt_wrtSV", "eta_wrtSV", "phi_wrtSV", "d0_wrtSV", "z0_wrtSV", "errP_wrtSV", "errd0_wrtSV", "errz0_wrtSV", "chi2_toSV"]
435  SUSY20SlimmingHelper.ExtraVariables += ["InDetTrackParticles." + ".".join( var + "_SUSY20" for var in VSITrackVars )]
436 
437  StaticContent += [
438  'xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices_SUSY20',
439  'xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices_SUSY20Aux'
440  + '.-vxTrackAtVertex'
441  + '.-vertexType'
442  + '.-neutralParticleLinks'
443  + '.-trackParticleLinks'
444  + '.-neutralWeights'
445  ]
446 
447  SUSY20SlimmingHelper.StaticContent = StaticContent
448 
449 
450  from IsolationSelection.IsolationSelectionConfig import setupIsoCloseBySlimmingVariables
451  setupIsoCloseBySlimmingVariables(SUSY20SlimmingHelper)
452 
453  # Trigger content
454  SUSY20SlimmingHelper.IncludeTriggerNavigation = False
455  SUSY20SlimmingHelper.IncludeMuonTriggerContent = False
456  SUSY20SlimmingHelper.IncludeEGammaTriggerContent = False
457  SUSY20SlimmingHelper.IncludeEtMissTriggerContent = False
458  SUSY20SlimmingHelper.IncludeJetTriggerContent = False
459  SUSY20SlimmingHelper.IncludeBJetTriggerContent = False
460  SUSY20SlimmingHelper.IncludeBPhysTriggerContent = False
461  SUSY20SlimmingHelper.IncludeTauTriggerContent = False
462  SUSY20SlimmingHelper.IncludeMinBiasTriggerContent = False
463 
464  # Trigger matching
465  # Run 2
466  if flags.Trigger.EDMVersion == 2:
467  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
469  SlimmingHelper = SUSY20SlimmingHelper,
470  OutputContainerPrefix = "TrigMatch_",
471  TriggerList = SUSY20TriggerListsHelper.Run2TriggerNamesTau
472  )
474  SlimmingHelper = SUSY20SlimmingHelper,
475  OutputContainerPrefix = "TrigMatch_",
476  TriggerList = SUSY20TriggerListsHelper.Run2TriggerNamesNoTau
477  )
478  # Run 3, or Run 2 with navigation conversion
479  if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
480  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
482 
483  # Output stream
484  SUSY20ItemList = SUSY20SlimmingHelper.GetItemList()
485  acc.merge(OutputStreamCfg(flags, "DAOD_SUSY20", ItemList = SUSY20ItemList, AcceptAlgs = ["SUSY20Kernel"]))
486  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_SUSY20", AcceptAlgs = ["SUSY20Kernel"], createMetadata = [MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
487 
488  return acc
TrigNavSlimmingMTConfig.AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
def AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(slimmingHelper)
Definition: TrigNavSlimmingMTConfig.py:98
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.InDetToolsConfig.InDetTrackSelectionToolWrapperCfg
def InDetTrackSelectionToolWrapperCfg(flags, name, CutLevel="TightPrimary", **kwargs)
Definition: InDetToolsConfig.py:426
IsolationSelectionConfig.setupIsoCloseBySlimmingVariables
def setupIsoCloseBySlimmingVariables(slimmingHelper, isLLP1=False)
Definition: IsolationSelectionConfig.py:176
python.MCTruthCommonConfig.AddTauAndDownstreamParticlesCfg
def AddTauAndDownstreamParticlesCfg(flags, generations=-1, rejectHadronChildren=False)
Definition: MCTruthCommonConfig.py:267
python.DerivationFrameworkToolsConfig.FilterCombinationANDCfg
def FilterCombinationANDCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:59
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.TruthDerivationToolsConfig.MenuTruthThinningCfg
def MenuTruthThinningCfg(flags, name, **kwargs)
Definition: TruthDerivationToolsConfig.py:362
VrtSecInclusiveConfig.VrtSecInclusiveCfg
def VrtSecInclusiveCfg(flags, name="VrtSecInclusive", **kwargs)
Definition: VrtSecInclusiveConfig.py:9
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:458
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:49
python.SUSYToolsConfig.SUSY20DTTriggerSkimmingToolCfg
def SUSY20DTTriggerSkimmingToolCfg(flags, name, **kwargs)
Definition: SUSYToolsConfig.py:52
python.SUSY20.SUSY20Cfg
def SUSY20Cfg(flags)
Definition: SUSY20.py:313
python.DerivationFrameworkToolsConfig.xAODStringSkimmingToolCfg
def xAODStringSkimmingToolCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:29
python.SUSYToolsConfig.SUSY20EventCleaningToolCfg
def SUSY20EventCleaningToolCfg(flags, cleaningLevel="TightBad")
Definition: SUSYToolsConfig.py:11
python.DerivationFrameworkToolsConfig.GenericObjectThinningCfg
def GenericObjectThinningCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:20
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:542
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
IsoToolsConfig.CaloIsolationToolCfg
def CaloIsolationToolCfg(flags, **kwargs)
Definition: IsoToolsConfig.py:25
python.TrackIsolationDecoratorConfig.TrackIsolationToolCfg
def TrackIsolationToolCfg(ConfigFlags, name="TrackIsolationTool", **kwargs)
Definition: TrackIsolationDecoratorConfig.py:12
python.InDetToolsConfig.EgammaTrackParticleThinningCfg
def EgammaTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:593
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.PhysCommonConfig.PhysCommonAugmentationsCfg
def PhysCommonAugmentationsCfg(flags, **kwargs)
Definition: PhysCommonConfig.py:14
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.SUSY20.SUSY20KernelCfg
def SUSY20KernelCfg(flags, name="SUSY20Kernel", **kwargs)
Definition: SUSY20.py:13