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 #========================================================================
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  # Track selection augmentation need for InDetTrackParticles thinning
153  from DerivationFrameworkInDet.InDetToolsConfig import InDetTrackSelectionToolWrapperCfg
154  SUSY20TrackSelection = acc.getPrimaryAndMerge(InDetTrackSelectionToolWrapperCfg(
155  flags,
156  name = "SUSY20TrackSelection",
157  ContainerName = "InDetTrackParticles",
158  DecorationName = "DFLoose"
159  ))
160  SUSY20TrackSelection.TrackSelectionTool.CutLevel = "Loose"
161  acc.addPublicTool(SUSY20TrackSelection)
162  augmentationTools.append(SUSY20TrackSelection)
163 
164  #
165  # Thinning tools
166  #
167  thinningTools = []
168  thinningExpression = "InDetTrackParticles.DFLoose && (InDetTrackParticles.pt > 0.5*GeV) && (abs( DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta) ) < 3.0*mm)"
169 
170  # TrackParticles directly
171  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
172  SUSY20TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
173  flags,
174  name = "SUSY20TrackParticleThinningTool",
175  StreamName = kwargs['StreamName'],
176  SelectionString = thinningExpression,
177  InDetTrackParticlesKey = "InDetTrackParticles"
178  ))
179  acc.addPublicTool(SUSY20TrackParticleThinningTool)
180  thinningTools.append(SUSY20TrackParticleThinningTool)
181 
182  # TrackParticles associated with Muons
183  from DerivationFrameworkInDet.InDetToolsConfig import MuonTrackParticleThinningCfg
184  SUSY20MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
185  flags,
186  name = "SUSY20MuonTPThinningTool",
187  StreamName = kwargs['StreamName'],
188  MuonKey = "Muons",
189  InDetTrackParticlesKey = "InDetTrackParticles"
190  ))
191  acc.addPublicTool(SUSY20MuonTPThinningTool)
192  thinningTools.append(SUSY20MuonTPThinningTool)
193 
194  # TrackParticles associated with Electrons
195  from DerivationFrameworkInDet.InDetToolsConfig import EgammaTrackParticleThinningCfg
196  SUSY20ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
197  flags,
198  name = "SUSY20ElectronTPThinningTool",
199  StreamName = kwargs['StreamName'],
200  SGKey = "Electrons",
201  InDetTrackParticlesKey = "InDetTrackParticles"
202  ))
203  acc.addPublicTool(SUSY20ElectronTPThinningTool)
204  thinningTools.append(SUSY20ElectronTPThinningTool)
205 
206  # Photon thinning
207  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import GenericObjectThinningCfg
208  SUSY20PhotonThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(
209  flags,
210  name = "SUSY20PhotonThinningTool",
211  StreamName = kwargs['StreamName'],
212  ContainerName = "Photons",
213  SelectionString = "Photons.pt > 10*GeV"
214  ))
215  acc.addPublicTool(SUSY20PhotonThinningTool)
216  thinningTools.append(SUSY20PhotonThinningTool)
217 
218  # TrackParticles associated with photons
219  SUSY20PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
220  flags,
221  name = "SUSY20PhotonTPThinningTool",
222  StreamName = kwargs['StreamName'],
223  SGKey = "Photons",
224  InDetTrackParticlesKey = "InDetTrackParticles",
225  GSFConversionVerticesKey = "GSFConversionVertices"
226  ))
227  acc.addPublicTool(SUSY20PhotonTPThinningTool)
228  thinningTools.append(SUSY20PhotonTPThinningTool)
229 
230  # Truth thinning
231  if flags.Input.isMC:
232  from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import MenuTruthThinningCfg
233  SUSY20TruthThinningTool = acc.getPrimaryAndMerge(MenuTruthThinningCfg(
234  flags,
235  name = "SUSY20TruthThinningTool",
236  WritePartons = False,
237  WriteHadrons = True,
238  WriteBHadrons = True,
239  WriteGeant = False,
240  GeantPhotonPtThresh = 20000,
241  WriteTauHad = True,
242  PartonPtThresh = -1.0,
243  WriteBSM = True,
244  WriteBosons = True,
245  WriteBosonProducts = False,
246  WriteBSMProducts = True,
247  WriteTopAndDecays = True,
248  WriteEverything = False,
249  WriteAllLeptons = True,
250  WriteLeptonsNotFromHadrons = False,
251  WriteNotPhysical = False,
252  WriteFirstN = 10,
253  PreserveAncestors = True,
254  PreserveGeneratorDescendants = True
255  ))
256  acc.addPublicTool(SUSY20TruthThinningTool)
257  thinningTools.append(SUSY20TruthThinningTool)
258 
259  #
260  # Skimming
261  #
262  skimmingTools = []
263 
264  # DT-specific trigger skimming
265  from DerivationFrameworkSUSY.SUSYToolsConfig import SUSY20DTTriggerSkimmingToolCfg
266  SUSY20TriggerSkimmingTool_DT = acc.getPrimaryAndMerge(SUSY20DTTriggerSkimmingToolCfg(
267  flags,
268  name = "SUSY20TriggerSkimmingTool"
269  ))
270  acc.addPublicTool(SUSY20TriggerSkimmingTool_DT)
271 
272  # DT-specific jet skimming
273  jetRequirements_DT = "AntiKt4EMPFlowJets.pt > 200*GeV && abs(AntiKt4EMPFlowJets.eta) < 2.8"
274  jetSelection_DT = "(count(" + jetRequirements_DT + ") >= 1)"
275 
276  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import xAODStringSkimmingToolCfg
277  SUSY20JetSkimmingTool_DT = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
278  flags,
279  name = "SUSY20JetSkimmingTool_DT",
280  expression = jetSelection_DT
281  ))
282  acc.addPublicTool(SUSY20JetSkimmingTool_DT)
283 
284  # DT-specific final skim selection, with trigger selection AND jet selection
285  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import FilterCombinationANDCfg
286  SUSY20xAODSkimmingTool_DT = acc.getPrimaryAndMerge(FilterCombinationANDCfg(
287  flags,
288  name = "SUSY20SkimmingTool_DT",
289  FilterList = [SUSY20JetSkimmingTool_DT, SUSY20TriggerSkimmingTool_DT]
290  ))
291  acc.addPublicTool(SUSY20xAODSkimmingTool_DT)
292  skimmingTools.append(SUSY20xAODSkimmingTool_DT)
293 
294  #
295  # The kernel algorithm itself
296  #
297  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
298  acc.addEventAlgo(DerivationKernel(
299  name,
300  SkimmingTools = skimmingTools,
301  ThinningTools = thinningTools,
302  AugmentationTools = augmentationTools,
303  RunSkimmingFirst = True
304  ))
305 
306  return acc
307 
308 def SUSY20Cfg(flags):
309 
310  stream_name = 'StreamDAOD_SUSY20'
311  acc = ComponentAccumulator()
312 
313  # Get the lists of triggers needed for trigger matching.
314  # This is needed at this scope (for the slimming) and further down in the config chain
315  # for actually configuring the matching, so we create it here and pass it down
316  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
317  SUSY20TriggerListsHelper = TriggerListsHelper(flags)
318 
319  # SUSY20 augmentations
320  acc.merge(SUSY20KernelCfg(flags, name = "SUSY20Kernel", StreamName = stream_name, TriggerListsHelper = SUSY20TriggerListsHelper))
321 
322 
324  from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
325  acc.merge(IsoCloseByAlgsCfg(flags, suff = "_SUSY20", isPhysLite = False, containerNames = ["Muons", "Electrons", "Photons"], useSelTools = True, stream_name = stream_name))
326 
327  # =============================
328  # Define contents of the format
329  # =============================
330  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
331  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
332  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
333 
334  SUSY20SlimmingHelper = SlimmingHelper("SUSY20SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
335 
336  # Containers that we slim
337  SUSY20SlimmingHelper.SmartCollections = [
338  "EventInfo",
339  "Electrons",
340  "Photons",
341  "Muons",
342  "InDetTrackParticles",
343  "PrimaryVertices",
344  "TauJets",
345  "AntiKt4EMPFlowJets",
346  "BTagging_AntiKt4EMPFlow",
347  "MET_Baseline_AntiKt4EMPFlow",
348  ]
349 
350  # Extra content
351  # Commented out variables not needed by current analyses but still included in r21 SUSY20_DAODs
352  SUSY20SlimmingHelper.ExtraVariables += [
353  "EventInfo.DFCommonJets_eventClean_TightBad.DFCommonJets_jetClean_TightBad",
354  "AntiKt4EMPFlowJets.DFCommonJets_jetClean_LooseBad.DFCommonJets_jetClean_TightBad",
355  "Electrons.DFCommonElectronsLHVeryLoose.DFCommonElectronsLHLoose.DFCommonElectronsLHLooseBL.DFCommonElectronsLHMedium.DFCommonElectronsLHTight.DFCommonElectronsLHVeryLooseIsEMValue.DFCommonElectronsLHLooseIsEMValue.DFCommonElectronsLHLooseBLIsEMValue.DFCommonElectronsLHMediumIsEMValue.DFCommonElectronsLHTightIsEMValue",
356  #"Electrons.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
357  "Muons.ptcone40.ptcone30.ptcone20.charge.quality.InnerDetectorPt.MuonSpectrometerPt.CaloLRLikelihood.CaloMuonIDTag.eta_sampl.phi_sampl",
358  #"Muons.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
359  "Photons.DFCommonPhotonsIsEMLoose.DFCommonPhotonsIsEMTight",
360  #"Photons.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
361  "InDetTrackParticles.TRTdEdx.TRTdEdxUsedHits.hitPattern.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfIBLOverflowsdEdx.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits.numberOfSCTOutliers.numberOfSCTSpoiltHits.numberOfTRTDeadStraws.numberOfTRTHits.numberOfTRTHoles.numberOfTRTOutliers.numberOfTRTSharedHits.numberOfUsedHitsdEdx.pixeldEdx",
362  "InDetTrackParticles.chiSquared.d0.definingParametersCovMatrix.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberDoF.numberOfInnermostPixelLayerHits.numberOfNextToInnermostPixelLayerHits.numberOfPixelDeadSensors.numberOfPixelHits.numberOfPixelHoles.numberOfPixelSharedHits.numberOfSCTDeadSensors.numberOfSCTHits.numberOfSCTHoles.numberOfSCTSharedHits.phi.qOverP.theta.z0",
363  "InDetTrackParticles.numberOfInnermostPixelLayerOutliers.numberOfInnermostPixelLayerSharedHits.numberOfInnermostPixelLayerSplitHits.numberOfNextToInnermostPixelLayerOutliers.numberOfNextToInnermostPixelLayerSharedHits.numberOfNextToInnermostPixelLayerSplitHits.numberOfGangedPixels.numberOfSCTDoubleHoles.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.numberOfTRTTubeHits.numberOfTRTXenonHits.numberOfOutliersOnTrack.standardDeviationOfChi2OS.eProbabilityHT.eProbabilityComb.TRTTrackOccupancy",
364  "InDetTrackParticles.SUSY20_ptcone20.SUSY20_ptcone30.SUSY20_ptcone40",
365  #"InDetTrackParticles.SUSY20_ptvarcone20.SUSY20_ptvarcone30.SUSY20_ptvarcone40",
366  "InDetTrackParticles.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
367  "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights",
368  "InDetTrackParticles.vertexLink.vz",
369  #"InDetTrackParticles.trackCaloClusEta.trackCaloClusPhi.trackCaloSampleE.trackCaloSampleNumber",
370  #"InDetTrackParticles.SUSY20_trackCaloClusEta_ele.SUSY20_trackCaloClusPhi_ele.SUSY20_trackCaloClusE_ele.SUSY20_trackCaloSampleE_ele.SUSY20_trackCaloSampleNumber_ele",
371  ]
372 
373  # Truth content
374  if flags.Input.isMC:
375 
376  from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddTauAndDownstreamParticlesCfg
377  acc.merge(AddTauAndDownstreamParticlesCfg(flags, generations = 2))
378 
379  SUSY20SlimmingHelper.AllVariables += [
380  'MET_Truth',
381  'TruthEvents',
382  'TruthParticles',
383  'TruthVertices',
384  'TruthElectrons',
385  'TruthMuons',
386  'TruthPhotons',
387  'TruthTaus',
388  'TruthNeutrinos',
389  'TruthBSM',
390  'TruthBosonsWithDecayParticles',
391  'TruthBosonsWithDecayVertices',
392  'TruthBSMWithDecayParticles',
393  'TruthBSMWithDecayVertices',
394  'TruthTausWithDecayParticles',
395  'TruthTausWithDecayVertices',
396  'AntiKt4TruthJets',
397  'AntiKt4TruthDressedWZJets'
398  ]
399  SUSY20SlimmingHelper.ExtraVariables += [
400  "Electrons.TruthLink",
401  "Muons.TruthLink",
402  "Photons.TruthLink",
403  "TruthEvents.Q.XF1.XF2.PDGID1.PDGID2.PDFID1.PDFID2.X1.X2.crossSection",
404  "InDetTrackParticles.TruthLink.truthMatchProbability.truthOrigin.truthType.truthParticleLink"
405  ]
406 
407  StaticContent = []
408 
409  # V0 content
410  for containerName in ["SUSY20RecoV0Candidates","SUSY20RecoKshortCandidates","SUSY20RecoLambdaCandidates","SUSY20RecoLambdabarCandidates"]:
411  StaticContent += [
412  "xAOD::VertexContainer#%s"%containerName,
413  "xAOD::VertexAuxContainer#%sAux"%containerName
414  + ".-vxTrackAtVertex"
415  + ".-vertexType"
416  + ".-neutralParticleLinks"
417  + ".-neutralWeights"
418  + ".-KshortLink"
419  + ".-LambdaLink"
420  + ".-LambdabarLink"
421  + ".-gamma_fit"
422  + ".-gamma_mass"
423  + ".-gamma_massError"
424  + ".-gamma_probability",
425  ]
426 
427  # VSI content
428  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"]
429  SUSY20SlimmingHelper.ExtraVariables += ["InDetTrackParticles." + ".".join( var + "_SUSY20" for var in VSITrackVars )]
430 
431  StaticContent += [
432  'xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices_SUSY20',
433  'xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices_SUSY20Aux'
434  + '.-vxTrackAtVertex'
435  + '.-vertexType'
436  + '.-neutralParticleLinks'
437  + '.-trackParticleLinks'
438  + '.-neutralWeights'
439  ]
440 
441  SUSY20SlimmingHelper.StaticContent = StaticContent
442 
443 
444  from IsolationSelection.IsolationSelectionConfig import setupIsoCloseBySlimmingVariables
445  setupIsoCloseBySlimmingVariables(SUSY20SlimmingHelper)
446 
447  # Trigger content
448  SUSY20SlimmingHelper.IncludeTriggerNavigation = False
449  SUSY20SlimmingHelper.IncludeMuonTriggerContent = False
450  SUSY20SlimmingHelper.IncludeEGammaTriggerContent = False
451  SUSY20SlimmingHelper.IncludeEtMissTriggerContent = False
452  SUSY20SlimmingHelper.IncludeJetTriggerContent = False
453  SUSY20SlimmingHelper.IncludeBJetTriggerContent = False
454  SUSY20SlimmingHelper.IncludeBPhysTriggerContent = False
455  SUSY20SlimmingHelper.IncludeTauTriggerContent = False
456  SUSY20SlimmingHelper.IncludeMinBiasTriggerContent = False
457 
458  # Trigger matching
459  # Run 2
460  if flags.Trigger.EDMVersion == 2:
461  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
463  SlimmingHelper = SUSY20SlimmingHelper,
464  OutputContainerPrefix = "TrigMatch_",
465  TriggerList = SUSY20TriggerListsHelper.Run2TriggerNamesTau
466  )
468  SlimmingHelper = SUSY20SlimmingHelper,
469  OutputContainerPrefix = "TrigMatch_",
470  TriggerList = SUSY20TriggerListsHelper.Run2TriggerNamesNoTau
471  )
472  # Run 3, or Run 2 with navigation conversion
473  if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
474  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
476 
477  # Output stream
478  SUSY20ItemList = SUSY20SlimmingHelper.GetItemList()
479  acc.merge(OutputStreamCfg(flags, "DAOD_SUSY20", ItemList = SUSY20ItemList, AcceptAlgs = ["SUSY20Kernel"]))
480  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_SUSY20", AcceptAlgs = ["SUSY20Kernel"], createMetadata = [MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
481 
482  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:484
IsolationSelectionConfig.setupIsoCloseBySlimmingVariables
def setupIsoCloseBySlimmingVariables(slimmingHelper, isLLP1=False)
Definition: IsolationSelectionConfig.py:176
python.MCTruthCommonConfig.AddTauAndDownstreamParticlesCfg
def AddTauAndDownstreamParticlesCfg(flags, generations=-1, rejectHadronChildren=False)
Definition: MCTruthCommonConfig.py:266
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:516
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:49
python.SUSYToolsConfig.SUSY20DTTriggerSkimmingToolCfg
def SUSY20DTTriggerSkimmingToolCfg(flags, name, **kwargs)
Definition: SUSYToolsConfig.py:53
python.SUSY20.SUSY20Cfg
def SUSY20Cfg(flags)
Definition: SUSY20.py:308
python.DerivationFrameworkToolsConfig.xAODStringSkimmingToolCfg
def xAODStringSkimmingToolCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:29
python.DerivationFrameworkToolsConfig.GenericObjectThinningCfg
def GenericObjectThinningCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:20
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:600
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:651
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:13
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:505
python.SUSY20.SUSY20KernelCfg
def SUSY20KernelCfg(flags, name="SUSY20Kernel", **kwargs)
Definition: SUSY20.py:13