ATLAS Offline Software
HIGG1D1.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_HIGG1D1.py
5 # This defines DAOD_HIGG1D1, an unskimmed DAOD format for Run 3.
6 # It contains the variables and objects needed for the large majority
7 # of physics analyses in ATLAS.
8 # It requires the flag HIGG1D1 in Derivation_tf.py
9 #====================================================================
10 
11 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12 from AthenaConfiguration.ComponentFactory import CompFactory
13 from AthenaConfiguration.Enums import MetadataCategory
14 
15 # Main algorithm config
16 def HIGG1D1KernelCfg(flags, name='HIGG1D1Kernel', **kwargs):
17  """Configure the derivation framework driving algorithm (kernel) for HIGG1D1"""
18  acc = ComponentAccumulator()
19 
20  # Common augmentations
21  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
22  acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
23 
24  # Diphoton Vertex creation
25  from DerivationFrameworkHiggs.HIGG1D1CustomVertexConfig import ZeeVertexRefitterCfg, DiPhotonVertexCfg
26  from DerivationFrameworkHiggs.HIGG1D1CustomJetsConfig import HIGG1D1CustomJetsCfg
27  acc.merge(ZeeVertexRefitterCfg(flags))
28  acc.merge(DiPhotonVertexCfg(flags))
29 
30  #CustomJetsConfig
31  acc.merge(HIGG1D1CustomJetsCfg(flags))
32 
33  from DerivationFrameworkFlavourTag.FtagDerivationConfig import FtagJetCollectionsCfg
34  acc.merge(FtagJetCollectionsCfg(flags, ['AntiKt4EMPFlowCustomVtxJets'], ['HggPrimaryVertices'], trackAugmenterPrefix='btagIpHgg_'))
35 
36  #Custom MET
37  from DerivationFrameworkJetEtMiss.METCommonConfig import METCustomVtxCfg
38  acc.merge(METCustomVtxCfg(flags, 'HggPrimaryVertices', 'AntiKt4EMPFlowCustomVtx', 'CHSGCustomVtxParticleFlowObjects'))
39 
40  # Thinning tools...
41  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg, MuonTrackParticleThinningCfg, TauTrackParticleThinningCfg, DiTauTrackParticleThinningCfg
42  from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import GenericTruthThinningCfg
43  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import GenericObjectThinningCfg
44 
45  thinningTools = []
46 
47  # Truth thinning
48  if flags.Input.isMC:
49  truth_conditions = ["((abs(TruthParticles.pdgId) >= 23) && (abs(TruthParticles.pdgId) <= 25))", # W, Z and Higgs
50  "((abs(TruthParticles.pdgId) >= 11) && (abs(TruthParticles.pdgId) <= 16))", # Leptons
51  "((abs(TruthParticles.pdgId) == 6))", # Top quark
52  "((abs(TruthParticles.pdgId) == 22) && (TruthParticles.pt > 1*GeV))", # Photon
53  "(abs(TruthParticles.pdgId) >= 1000000)", # BSM
54  "(TruthParticles.status == 1 && TruthParticles.barcode < 200000)"] # stable particles
55  truth_expression = f'({" || ".join(truth_conditions)})'
56 
57  HIGG1D1GenericTruthThinningTool = acc.getPrimaryAndMerge(GenericTruthThinningCfg(
58  flags,
59  name = "HIGG1D1GenericTruthThinningTool",
60  StreamName = kwargs['StreamName'],
61  ParticleSelectionString = truth_expression,
62  PreserveDescendants = False,
63  PreserveGeneratorDescendants = True,
64  PreserveAncestors = True))
65  thinningTools.append(HIGG1D1GenericTruthThinningTool)
66 
67  # Inner detector group recommendations for indet tracks in analysis
68  # https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/DaodRecommendations
69  HIGG1D1_thinning_expression = "InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && InDetTrackParticles.pt > 10*GeV"
70  HIGG1D1TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
71  flags,
72  name = "HIGG1D1TrackParticleThinningTool",
73  StreamName = kwargs['StreamName'],
74  SelectionString = HIGG1D1_thinning_expression,
75  InDetTrackParticlesKey = "InDetTrackParticles"))
76 
77  # Include inner detector tracks associated with muons
78  HIGG1D1MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
79  flags,
80  name = "HIGG1D1MuonTPThinningTool",
81  StreamName = kwargs['StreamName'],
82  MuonKey = "Muons",
83  InDetTrackParticlesKey = "InDetTrackParticles"))
84 
85  # Only keep tau tracks (and associated ID tracks) classified as charged tracks
86  HIGG1D1TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
87  flags,
88  name = "HIGG1D1TauTPThinningTool",
89  StreamName = kwargs['StreamName'],
90  TauKey = "TauJets",
91  InDetTrackParticlesKey = "InDetTrackParticles",
92  DoTauTracksThinning = True,
93  TauTracksKey = "TauTracks"))
94 
95  # ID tracks associated with high-pt di-tau
96  HIGG1D1DiTauTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
97  flags,
98  name = "HIGG1D1DiTauTPThinningTool",
99  StreamName = kwargs['StreamName'],
100  DiTauKey = "DiTauJets",
101  InDetTrackParticlesKey = "InDetTrackParticles"))
102 
103 
104  HIGG1D1DiTauLowPtThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
105  name = "PHYSDiTauLowPtThinningTool",
106  StreamName = kwargs['StreamName'],
107  ContainerName = "DiTauJetsLowPt",
108  SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
109 
110  # ID tracks associated with low-pt ditau
111  HIGG1D1DiTauLowPtTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(flags,
112  name = "PHYSDiTauLowPtTPThinningTool",
113  StreamName = kwargs['StreamName'],
114  DiTauKey = "DiTauJetsLowPt",
115  InDetTrackParticlesKey = "InDetTrackParticles",
116  SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
117 
118 
119  # SkimmingTool
120  from DerivationFrameworkHiggs.SkimmingToolHIGG1Config import SkimmingToolHIGG1Cfg
121 
122  # Requires something in this list of triggers
123  SkipTriggerRequirement = (flags.Input.isMC and float(flags.Beam.Energy) == 4000000.0) or not flags.Reco.EnableTrigger
124  # 8 TeV MC does not have trigger information
125  print("HIGG1D1.py SkipTriggerRequirement", SkipTriggerRequirement)
126  TriggerExp = []
127  if not SkipTriggerRequirement:
128  if float(flags.Beam.Energy) == 4000000.0:
129  # 8 TeV data
130  TriggerExp = ["EF_g35_loose_g25_loose"]
131  if float(flags.Beam.Energy) == 6500000.0:
132  # 13 TeV MC
133  TriggerExp = ["HLT_2g50_loose_L12EM20VH","HLT_2g25_loose_g15_loose","HLT_g35_medium_g25_medium_L12EM20VH","HLT_2g25_tight_L12EM20VH","HLT_2g22_tight_L12EM15VHI","HLT_g35_loose_g25_loose","HLT_g35_medium_g25_medium","HLT_2g50_loose","HLT_2g20_tight","HLT_2g22_tight","HLT_2g20_tight_icalovloose_L12EM15VHI","HLT_2g20_tight_icalotight_L12EM15VHI","HLT_2g22_tight_L12EM15VHI","HLT_2g22_tight_icalovloose_L12EM15VHI","HLT_2g22_tight_icalotight_L12EM15VHI","HLT_2g22_tight_icalovloose","HLT_2g25_tight_L12EM20VH","HLT_2g20_loose","HLT_2g20_loose_L12EM15","HLT_g35_medium_g25_medium","HLT_g35_medium_g25_medium_L12EM15VH","HLT_g35_loose_g25_loose","HLT_g35_loose_g25_loose_L12EM15VH", "HLT_2g20_loose_g15_loose", "HLT_3g20_loose", "HLT_3g15_loose", "HLT_2g6_tight_icalotight_L1J100", "HLT_2g6_loose_L1J100", "HLT_2g6_tight_icalotight_L1J50", "HLT_2g6_loose_L1J50","HLT_g120_loose","HLT_g140_loose"]
134  if float(flags.Beam.Energy) == 6800000.0:
135  # 13.6 TeV
136  TriggerExp = ["HLT_2g50_loose_L12EM20VH","HLT_2g25_loose_g15_loose_L12EM20VH","HLT_g35_medium_g25_medium_L12EM20VH","HLT_2g22_tight_L12EM15VHI","HLT_2g20_tight_icaloloose_L12EM15VHI","HLT_2g20_loose_L12EM15VH","HLT_2g9_loose_25dphiAA_invmAA80_L12EM7","HLT_2g15_loose_25dphiAA_invmAA80_L12EM7","HLT_2g15_tight_25dphiAA_invmAA80_L12EM7","HLT_2g15_tight_25dphiAA_L12EM7","HLT_g120_loose_L1EM22VHI","HLT_g140_loose_L1EM22VHI","HLT_2g50_loose_L12eEM24L","HLT_2g25_loose_g15_loose_L12eEM24L","HLT_g35_medium_g25_medium_L12eEM24L","HLT_2g22_tight_L12eEM18M","HLT_2g20_tight_icaloloose_L12eEM18M","HLT_2g20_loose_L12eEM18L","HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9","HLT_2g15_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM15M","HLT_2g15_tight_25dphiAA_L1DPHI-M70-2eEM15M","HLT_2g15_tight_L1DPHI-M70-2eEM15M","HLT_g120_loose_L1eEM26M","HLT_g140_loose_L1eEM26M"]
137  print("HIGG1D1.py Skimming Tool Triggers:", ",".join(TriggerExp))
138  skimmingTool = acc.popToolsAndMerge( SkimmingToolHIGG1Cfg(flags,RequireTrigger=not SkipTriggerRequirement,Triggers=TriggerExp) )
139  acc.addPublicTool(skimmingTool)
140 
141 
142  # Finally the kernel itself
143  thinningTools += [HIGG1D1TrackParticleThinningTool,
144  HIGG1D1MuonTPThinningTool,
145  HIGG1D1TauTPThinningTool,
146  HIGG1D1DiTauTPThinningTool,
147  HIGG1D1DiTauLowPtThinningTool,
148  HIGG1D1DiTauLowPtTPThinningTool]
149 
150  augmentationTools = []
151 
152  #====================================================================
153  # Common calo decoration tools
154  #====================================================================
155 
156  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
157  CaloDecoratorKernelCfg, ClusterEnergyPerLayerDecoratorCfg)
158  acc.merge(CaloDecoratorKernelCfg(flags))
159 
160  # Adding missing cluster energy decorators
161  cluster_sizes = (3,5), (5,7), (7,7)
162  for neta, nphi in cluster_sizes:
163  cename = "ClusterEnergyPerLayerDecorator_%sx%s" % (neta, nphi)
164  ClusterEnergyPerLayerDecorator = acc.popToolsAndMerge( ClusterEnergyPerLayerDecoratorCfg(flags, neta = neta, nphi=nphi, name=cename ))
165  acc.addPublicTool(ClusterEnergyPerLayerDecorator)
166  augmentationTools.append(ClusterEnergyPerLayerDecorator)
167 
168  #====================================================================
169  # Truth categories decoration tool
170  #====================================================================
171  if flags.Input.isMC:
172  from DerivationFrameworkHiggs.TruthCategoriesConfig import TruthCategoriesDecoratorCfg
173  acc.merge(TruthCategoriesDecoratorCfg(flags, name="TruthCategoriesDecorator"))
174 
175  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
176  acc.addEventAlgo(DerivationKernel(name,
177  SkimmingTools = [skimmingTool],
178  ThinningTools = thinningTools,
179  AugmentationTools = augmentationTools))
180  return acc
181 
182 
183 def HIGG1D1Cfg(flags):
184 
185  acc = ComponentAccumulator()
186 
187  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
188  HIGG1D1TriggerListsHelper = TriggerListsHelper(flags)
189 
190  acc.merge(HIGG1D1KernelCfg(flags, name="HIGG1D1Kernel", StreamName = 'StreamDAOD_HIGG1D1', TriggerListsHelper = HIGG1D1TriggerListsHelper))
191 
192 
193  # ============================
194  # Define contents of the format
195  # =============================
196  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
197  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
198  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
199 
200  HIGG1D1SlimmingHelper = SlimmingHelper("HIGG1D1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
201  HIGG1D1SlimmingHelper.SmartCollections = ["EventInfo",
202  "Electrons",
203  "Photons",
204  "Muons",
205  "PrimaryVertices",
206  "InDetTrackParticles",
207  "AntiKt4EMTopoJets",
208  "AntiKt4EMPFlowJets",
209  "BTagging_AntiKt4EMPFlow",
210  "BTagging_AntiKtVR30Rmax4Rmin02Track",
211  "MET_Baseline_AntiKt4EMTopo",
212  "MET_Baseline_AntiKt4EMPFlow",
213  "TauJets",
214  "DiTauJets",
215  "DiTauJetsLowPt",
216  "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
217  "AntiKtVR30Rmax4Rmin02PV0TrackJets"]
218 
219  excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
220  StaticContent = []
221  StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
222  StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
223  StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
224  StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
225  StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
226  StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
227 
228  HIGG1D1SlimmingHelper.StaticContent = StaticContent
229 
230  # Trigger content
231  HIGG1D1SlimmingHelper.IncludeTriggerNavigation = False
232  HIGG1D1SlimmingHelper.IncludeJetTriggerContent = False
233  HIGG1D1SlimmingHelper.IncludeMuonTriggerContent = False
234  HIGG1D1SlimmingHelper.IncludeEGammaTriggerContent = False
235  HIGG1D1SlimmingHelper.IncludeJetTauEtMissTriggerContent = False
236  HIGG1D1SlimmingHelper.IncludeTauTriggerContent = False
237  HIGG1D1SlimmingHelper.IncludeEtMissTriggerContent = False
238  HIGG1D1SlimmingHelper.IncludeBJetTriggerContent = False
239  HIGG1D1SlimmingHelper.IncludeBPhysTriggerContent = False
240  HIGG1D1SlimmingHelper.IncludeMinBiasTriggerContent = False
241 
242  # Truth containers
243  if flags.Input.isMC:
244  HIGG1D1SlimmingHelper.AppendToDictionary = {'TruthEvents':'xAOD::TruthEventContainer','TruthEventsAux':'xAOD::TruthEventAuxContainer',
245  'MET_Truth':'xAOD::MissingETContainer','MET_TruthAux':'xAOD::MissingETAuxContainer',
246  'TruthElectrons':'xAOD::TruthParticleContainer','TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
247  'TruthMuons':'xAOD::TruthParticleContainer','TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
248  'TruthPhotons':'xAOD::TruthParticleContainer','TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
249  'TruthTaus':'xAOD::TruthParticleContainer','TruthTausAux':'xAOD::TruthParticleAuxContainer',
250  'TruthNeutrinos':'xAOD::TruthParticleContainer','TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
251  'TruthBSM':'xAOD::TruthParticleContainer','TruthBSMAux':'xAOD::TruthParticleAuxContainer',
252  'TruthBoson':'xAOD::TruthParticleContainer','TruthBosonAux':'xAOD::TruthParticleAuxContainer',
253  'TruthTop':'xAOD::TruthParticleContainer','TruthTopAux':'xAOD::TruthParticleAuxContainer',
254  'TruthForwardProtons':'xAOD::TruthParticleContainer','TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
255  'BornLeptons':'xAOD::TruthParticleContainer','BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
256  'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer','TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
257  'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer','TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
258  'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer','TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
259  'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer','TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
260  'HardScatterParticles':'xAOD::TruthParticleContainer','HardScatterParticlesAux':'xAOD::TruthParticleAuxContainer',
261  'HardScatterVertices':'xAOD::TruthVertexContainer','HardScatterVerticesAux':'xAOD::TruthVertexAuxContainer',
262  'TruthHFWithDecayParticles':'xAOD::TruthParticleContainer','TruthHFWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
263  'TruthHFWithDecayVertices':'xAOD::TruthVertexContainer','TruthHFWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
264  'TruthCharm':'xAOD::TruthParticleContainer','TruthCharmAux':'xAOD::TruthParticleAuxContainer',
265  'TruthPrimaryVertices':'xAOD::TruthVertexContainer','TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer'
266  }
267 
268  from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
269  addTruth3ContentToSlimmerTool(HIGG1D1SlimmingHelper)
270  HIGG1D1SlimmingHelper.AllVariables += ["TruthHFWithDecayParticles",
271  "TruthHFWithDecayVertices",
272  "TruthCharm",
273  "TruthPileupParticles",
274  "InTimeAntiKt4TruthJets",
275  "OutOfTimeAntiKt4TruthJets",
276  "AntiKt4TruthDressedWZJets",
277  "AntiKt4TruthWZJets",
278  "TruthEvents",
279  "TruthPrimaryVertices",
280  "TruthVertices",
281  "TruthParticles"]
282 
283  HIGG1D1SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
284  "Muons.TruthLink",
285  "Photons.TruthLink",
286  "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
287  "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
288  "TruthPrimaryVertices.t.x.y.z",
289  "EventInfo.hardScatterVertexLink.timeStampNSOffset",
290  "TauJets.dRmax.etOverPtLeadTrk"]
291  if flags.Reco.EnableTrigger:
292  HIGG1D1SlimmingHelper.ExtraVariables += [
293  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
294  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"
295  ]
296 
297  # Additional content for HIGG1D1
298  HIGG1D1SlimmingHelper.AppendToDictionary.update({"AntiKt4EMPFlowCustomVtxJets": "xAOD::JetContainer", "AntiKt4EMPFlowCustomVtxJetsAux":"xAOD::JetAuxContainer",
299  "METAssoc_AntiKt4EMPFlowCustomVtx": "xAOD::MissingETAssociationMap", "METAssoc_AntiKt4EMPFlowCustomVtxAux":"xAOD::MissingETAuxAssociationMap",
300  "MET_Core_AntiKt4EMPFlowCustomVtx": "xAOD::MissingETContainer", "MET_Core_AntiKt4EMPFlowCustomVtxAux":"xAOD::MissingETAuxContainer",
301  "HggPrimaryVertices":"xAOD::VertexContainer", "HggPrimaryVerticesAux":"xAOD::ShallowAuxContainer",
302  "Kt4EMPFlowCustomVtxEventShape":"xAOD::EventShape", "Kt4EMPFlowCustomVtxEventShapeAux":"xAOD::EventShapeAuxInfo",
303  "Kt4EMPFlowEventShape":"xAOD::EventShape", "Kt4EMPFlowEventShapeAux":"xAOD::EventShapeAuxInfo",
304  "ZeeRefittedPrimaryVertices":"xAOD::VertexContainer","ZeeRefittedPrimaryVerticesAux":"xAOD::VertexAuxContainer",
305  "AFPSiHitContainer":"xAOD::AFPSiHitContainer","AFPSiHitContainerAux":"xAOD::AFPSiHitAuxContainer",
306  "AFPToFHitContainer":"xAOD::AFPToFHitContainer","AFPToFHitContainerAux":"xAOD::AFPToFHitAuxContainer",
307  "AFPVertexContainer":"xAOD::AFPVertexContainer", "AFPVertexContainerAux":"xAOD::AFPVertexAuxContainer",
308  "AFPToFTrackContainer":"xAOD::AFPToFTrackContainer", "AFPToFTrackContainerAux":"xAOD::AFPToFTrackAuxContainer",
309  "BTagging_AntiKt4EMPFlowCustomVtx":"xAOD::BTaggingContainer","BTagging_AntiKt4EMPFlowCustomVtxAux":"xAOD::BTaggingAuxContainer"
310  })
311 
312  HIGG1D1SlimmingHelper.AllVariables += ["HggPrimaryVertices","ZeeRefittedPrimaryVertices","AntiKt4EMPFlowCustomVtxJets","Kt4EMPFlowCustomVtxEventShape","Kt4EMPFlowEventShape","METAssoc_AntiKt4EMPFlowCustomVtx","MET_Core_AntiKt4EMPFlowCustomVtx"]
313 
314  # Add AFP information
315  HIGG1D1SlimmingHelper.AllVariables += ["AFPSiHitContainer",
316  "AFPToFHitContainer",
317  "AFPVertexContainer",
318  "AFPToFTrackContainer"]
319  # Add Btagging information
320  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent,BTaggingXbbContent
321  HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent("AntiKt4EMPFlowCustomVtxJets", flags)
322  HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent("AntiKt4EMPFlowJets", flags)
323  HIGG1D1SlimmingHelper.ExtraVariables += BTaggingXbbContent("AntiKt4EMPFlowCustomVtxJets", flags)
324  HIGG1D1SlimmingHelper.ExtraVariables += BTaggingXbbContent("AntiKt4EMPFlowJets", flags)
325 
326  # is this really needed given Photons are in the AllVariables list ?
327  from DerivationFrameworkEGamma.PhotonsCPDetailedContent import PhotonsCPDetailedContent
328  HIGG1D1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
329 
330 
331  # Add the variables for Gain and Cluster energy
332  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
333  getGainDecorations, getClusterEnergyPerLayerDecorations )
334  gainDecorations = getGainDecorations(acc, flags, 'HIGG1D1Kernel')
335  HIGG1D1SlimmingHelper.ExtraVariables.extend(gainDecorations)
336  clusterEnergyDecorations = getClusterEnergyPerLayerDecorations(
337  acc, 'HIGG1D1Kernel' )
338  HIGG1D1SlimmingHelper.ExtraVariables.extend(clusterEnergyDecorations)
339 
340  # Add HTXS variables
341  HIGG1D1SlimmingHelper.ExtraVariables.extend(["EventInfo.HTXS_prodMode",
342  "EventInfo.HTXS_errorCode",
343  "EventInfo.HTXS_Stage0_Category",
344  "EventInfo.HTXS_Stage1_Category_pTjet25",
345  "EventInfo.HTXS_Stage1_Category_pTjet30",
346  "EventInfo.HTXS_Stage1_FineIndex_pTjet30",
347  "EventInfo.HTXS_Stage1_FineIndex_pTjet25",
348  "EventInfo.HTXS_Stage1_2_Category_pTjet25",
349  "EventInfo.HTXS_Stage1_2_Category_pTjet30",
350  "EventInfo.HTXS_Stage1_2_FineIndex_pTjet30",
351  "EventInfo.HTXS_Stage1_2_FineIndex_pTjet25",
352  "EventInfo.HTXS_Stage1_2_Fine_Category_pTjet25",
353  "EventInfo.HTXS_Stage1_2_Fine_Category_pTjet30",
354  "EventInfo.HTXS_Stage1_2_Fine_FineIndex_pTjet30",
355  "EventInfo.HTXS_Stage1_2_Fine_FineIndex_pTjet25",
356  "EventInfo.HTXS_Njets_pTjet25",
357  "EventInfo.HTXS_Njets_pTjet30",
358  "EventInfo.HTXS_isZ2vvDecay",
359  "EventInfo.HTXS_Higgs_eta",
360  "EventInfo.HTXS_Higgs_m",
361  "EventInfo.HTXS_Higgs_phi",
362  "EventInfo.HTXS_Higgs_pt",
363  "EventInfo.HTXS_V_jets30_eta",
364  "EventInfo.HTXS_V_jets30_m",
365  "EventInfo.HTXS_V_jets30_phi",
366  "EventInfo.HTXS_V_jets30_pt",
367  "EventInfo.HTXS_V_pt"])
368 
369  # Add variables from MaxCell decorator and PhotonPointing decorator
370  HIGG1D1SlimmingHelper.ExtraVariables.extend(["Electrons.maxEcell_time",
371  "Electrons.maxEcell_energy",
372  "Electrons.maxEcell_gain",
373  "Electrons.maxEcell_onlId",
374  "Photons.maxEcell_time",
375  "Photons.maxEcell_energy",
376  "Photons.maxEcell_gain",
377  "Photons.maxEcell_onlId",
378  "Photons.zvertex"])
379  # Add TTVA variables
380  HIGG1D1SlimmingHelper.ExtraVariables.extend(["InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers"])
381 
382  # Trigger content
383  HIGG1D1SlimmingHelper.IncludeTriggerNavigation = False
384  HIGG1D1SlimmingHelper.IncludeJetTriggerContent = False
385  HIGG1D1SlimmingHelper.IncludeMuonTriggerContent = False
386  HIGG1D1SlimmingHelper.IncludeEGammaTriggerContent = False
387  HIGG1D1SlimmingHelper.IncludeJetTauEtMissTriggerContent = False
388  HIGG1D1SlimmingHelper.IncludeTauTriggerContent = False
389  HIGG1D1SlimmingHelper.IncludeEtMissTriggerContent = False
390  HIGG1D1SlimmingHelper.IncludeBJetTriggerContent = False
391  HIGG1D1SlimmingHelper.IncludeBPhysTriggerContent = False
392  HIGG1D1SlimmingHelper.IncludeMinBiasTriggerContent = False
393 
394  # Trigger matching
395  # Run 2
396  if flags.Trigger.EDMVersion == 2:
397  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
398  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
399  OutputContainerPrefix = "TrigMatch_",
400  TriggerList = HIGG1D1TriggerListsHelper.Run2TriggerNamesTau)
401  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
402  OutputContainerPrefix = "TrigMatch_",
403  TriggerList = HIGG1D1TriggerListsHelper.Run2TriggerNamesNoTau)
404  # Run 3
405  if flags.Trigger.EDMVersion == 3:
406  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
408  # Run 2 is added here temporarily to allow testing/comparison/debugging
409  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
410  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
411  OutputContainerPrefix = "TrigMatch_",
412  TriggerList = HIGG1D1TriggerListsHelper.Run3TriggerNamesTau)
413  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
414  OutputContainerPrefix = "TrigMatch_",
415  TriggerList = HIGG1D1TriggerListsHelper.Run3TriggerNamesNoTau)
416 
417  # Output stream
418  HIGG1D1ItemList = HIGG1D1SlimmingHelper.GetItemList()
419  acc.merge(OutputStreamCfg(flags, "DAOD_HIGG1D1", ItemList=HIGG1D1ItemList, AcceptAlgs=["HIGG1D1Kernel"]))
420  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HIGG1D1", AcceptAlgs=["HIGG1D1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
421 
422  return acc
TrigNavSlimmingMTConfig.AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
def AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(slimmingHelper)
Definition: TrigNavSlimmingMTConfig.py:97
python.HIGG1D1.HIGG1D1Cfg
def HIGG1D1Cfg(flags)
Definition: HIGG1D1.py:183
python.HIGG1D1.HIGG1D1KernelCfg
def HIGG1D1KernelCfg(flags, name='HIGG1D1Kernel', **kwargs)
Definition: HIGG1D1.py:16
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.SkimmingToolHIGG1Config.SkimmingToolHIGG1Cfg
def SkimmingToolHIGG1Cfg(ConfigFlags, **kwargs)
Definition: SkimmingToolHIGG1Config.py:7
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
python.BTaggingContent.BTaggingXbbContent
def BTaggingXbbContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:182
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:424
python.InDetToolsConfig.DiTauTrackParticleThinningCfg
def DiTauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:515
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:30
python.HIGG1D1CustomVertexConfig.ZeeVertexRefitterCfg
def ZeeVertexRefitterCfg(flags, name="ZeeVertexRefitKernel")
Definition: HIGG1D1CustomVertexConfig.py:41
python.HIGG1D1CustomJetsConfig.HIGG1D1CustomJetsCfg
def HIGG1D1CustomJetsCfg(ConfigFlags)
Definition: HIGG1D1CustomJetsConfig.py:27
python.BTaggingContent.BTaggingStandardContent
def BTaggingStandardContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:168
python.HIGG1D1CustomVertexConfig.DiPhotonVertexCfg
def DiPhotonVertexCfg(flags)
Definition: HIGG1D1CustomVertexConfig.py:81
python.TruthCategoriesConfig.TruthCategoriesDecoratorCfg
def TruthCategoriesDecoratorCfg(ConfigFlags, name="TruthCategoriesDecorator", **kwargs)
Definition: TruthCategoriesConfig.py:5
python.TruthDerivationToolsConfig.GenericTruthThinningCfg
def GenericTruthThinningCfg(flags, name, **kwargs)
Definition: TruthDerivationToolsConfig.py:402
DerivationFrameworkCaloConfig.ClusterEnergyPerLayerDecoratorCfg
def ClusterEnergyPerLayerDecoratorCfg(flags, **kwargs)
Definition: DerivationFrameworkCaloConfig.py:44
python.DerivationFrameworkToolsConfig.GenericObjectThinningCfg
def GenericObjectThinningCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:20
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:494
python.InDetToolsConfig.TauTrackParticleThinningCfg
def TauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:505
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.MCTruthCommonConfig.addTruth3ContentToSlimmerTool
def addTruth3ContentToSlimmerTool(slimmer)
Definition: MCTruthCommonConfig.py:469
DerivationFrameworkCaloConfig.CaloDecoratorKernelCfg
def CaloDecoratorKernelCfg(flags, name="CaloDecoratorKernel", **kwargs)
Definition: DerivationFrameworkCaloConfig.py:77
python.METCommonConfig.METCustomVtxCfg
def METCustomVtxCfg(ConfigFlags, vxColl, jetColl, constituentColl)
Definition: METCommonConfig.py:28
DerivationFrameworkCaloConfig.getClusterEnergyPerLayerDecorations
def getClusterEnergyPerLayerDecorations(acc, kernel)
Definition: DerivationFrameworkCaloConfig.py:154
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
DerivationFrameworkCaloConfig.getGainDecorations
def getGainDecorations(acc, flags, kernel, collections=None, info=["E", "nCells"])
Definition: DerivationFrameworkCaloConfig.py:122
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
readCCLHist.float
float
Definition: readCCLHist.py:83