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