ATLAS Offline Software
Loading...
Searching...
No Matches
HIGG1D1.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2#====================================================================
3# DAOD_HIGG1D1.py
4# This defines DAOD_HIGG1D1, an unskimmed DAOD format for Run 3.
5# It contains the variables and objects needed for the large majority
6# of physics analyses in ATLAS.
7# It requires the flag HIGG1D1 in Derivation_tf.py
8#====================================================================
9
10from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
11from AthenaConfiguration.ComponentFactory import CompFactory
12from AthenaConfiguration.Enums import MetadataCategory
13
14# Main algorithm config
15def HIGG1D1KernelCfg(flags, name='HIGG1D1Kernel', **kwargs):
16 """Configure the derivation framework driving algorithm (kernel) for HIGG1D1"""
17 acc = ComponentAccumulator()
18
19 # Common augmentations
20 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
21 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
22
23 # Diphoton Vertex creation
24 from DerivationFrameworkHiggs.HIGG1D1CustomVertexConfig import ZeeVertexRefitterCfg, DiPhotonVertexCfg
25 from DerivationFrameworkHiggs.HIGG1D1CustomJetsConfig import HIGG1D1CustomJetsCfg, HIGG1D1CustomJetsCleaningCfg
26 acc.merge(ZeeVertexRefitterCfg(flags))
27 acc.merge(DiPhotonVertexCfg(flags))
28
29 #CustomJetsConfig
30 acc.merge(HIGG1D1CustomJetsCfg(flags))
31 acc.merge(HIGG1D1CustomJetsCleaningCfg(flags))
32
33 from BTagging.FlavorTaggingConfig import FlavorTaggingCfg
34 acc.merge(FlavorTaggingCfg(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 = ["(TruthParticles.isW || TruthParticles.isZ || TruthParticles.isHiggs)", # W, Z and Higgs
50 "(TruthParticles.isLepton)", # Leptons
51 "(TruthParticles.isTop)", # Top quark
52 "((TruthParticles.isPhoton) && (TruthParticles.pt > 1*GeV))", # Photon
53 "(abs(TruthParticles.pdgId) >= 1000000)", # BSM
54 "(TruthParticles.isGenStable)"] # 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 && \
70 abs(InDetTrackParticles.DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && \
71 InDetTrackParticles.pt > 10*GeV"
72 HIGG1D1TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
73 flags,
74 name = "HIGG1D1TrackParticleThinningTool",
75 StreamName = kwargs['StreamName'],
76 SelectionString = HIGG1D1_thinning_expression,
77 InDetTrackParticlesKey = "InDetTrackParticles"))
78
79 # Include inner detector tracks associated with muons
80 HIGG1D1MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
81 flags,
82 name = "HIGG1D1MuonTPThinningTool",
83 StreamName = kwargs['StreamName'],
84 MuonKey = "Muons",
85 InDetTrackParticlesKey = "InDetTrackParticles"))
86
87 # Only keep tau tracks (and associated ID tracks) classified as charged tracks
88 HIGG1D1TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
89 flags,
90 name = "HIGG1D1TauTPThinningTool",
91 StreamName = kwargs['StreamName'],
92 TauKey = "TauJets",
93 InDetTrackParticlesKey = "InDetTrackParticles",
94 DoTauTracksThinning = True,
95 TauTracksKey = "TauTracks"))
96
97 # ID tracks associated with high-pt di-tau
98 HIGG1D1DiTauTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
99 flags,
100 name = "HIGG1D1DiTauTPThinningTool",
101 StreamName = kwargs['StreamName'],
102 DiTauKey = "DiTauJets",
103 InDetTrackParticlesKey = "InDetTrackParticles"))
104
105
106 HIGG1D1DiTauLowPtThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
107 name = "PHYSDiTauLowPtThinningTool",
108 StreamName = kwargs['StreamName'],
109 ContainerName = "DiTauJetsLowPt",
110 SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
111
112 # ID tracks associated with low-pt ditau
113 HIGG1D1DiTauLowPtTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(flags,
114 name = "PHYSDiTauLowPtTPThinningTool",
115 StreamName = kwargs['StreamName'],
116 DiTauKey = "DiTauJetsLowPt",
117 InDetTrackParticlesKey = "InDetTrackParticles",
118 SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
119
120
121 # SkimmingTool
122 from DerivationFrameworkHiggs.SkimmingToolHIGG1Config import SkimmingToolHIGG1Cfg
123
124 # Requires something in this list of triggers
125 SkipTriggerRequirement = (flags.Input.isMC and float(flags.Beam.Energy) == 4000000.0) or not flags.Reco.EnableTrigger
126 # 8 TeV MC does not have trigger information
127 print("HIGG1D1.py SkipTriggerRequirement", SkipTriggerRequirement)
128 TriggerExp = []
129 if not SkipTriggerRequirement:
130 if float(flags.Beam.Energy) == 4000000.0:
131 # 8 TeV data
132 TriggerExp = ["EF_g35_loose_g25_loose"]
133 if float(flags.Beam.Energy) == 6500000.0:
134 # 13 TeV MC
135 TriggerExp = ["HLT_g35_medium_g25_medium",
136 "HLT_g35_medium_g25_medium_L12EM20VH",
137 "HLT_g35_medium_g25_medium_L12EM15VH",
138 "HLT_g35_loose_g25_loose",
139 "HLT_g35_loose_g25_loose_L12EM15VH",
140 "HLT_g120_loose",
141 "HLT_g140_loose",
142 "HLT_3g20_loose",
143 "HLT_3g15_loose",
144 "HLT_2g6_tight_icalotight_L1J50",
145 "HLT_2g6_tight_icalotight_L1J100",
146 "HLT_2g6_loose_L1J50",
147 "HLT_2g6_loose_L1J100",
148 "HLT_2g50_loose",
149 "HLT_2g25_tight_L12EM20VH",
150 "HLT_2g25_loose_g15_loose",
151 "HLT_2g22_tight",
152 "HLT_2g22_tight_L12EM15VHI",
153 "HLT_2g22_tight_icalovloose",
154 "HLT_2g22_tight_icalovloose_L12EM15VHI",
155 "HLT_2g22_tight_icalotight_L12EM15VHI",
156 "HLT_2g20_tight",
157 "HLT_2g20_tight_icalovloose_L12EM15VHI",
158 "HLT_2g20_tight_icalotight_L12EM15VHI",
159 "HLT_2g20_loose",
160 "HLT_2g20_loose_L12EM15",
161 "HLT_2g20_loose_g15_loose",
162 "HLT_2g50_loose_L12EM20VH"
163 ]
164 if float(flags.Beam.Energy) == 6800000.0:
165 # 13.6 TeV
166 TriggerExp = ["HLT_g35_medium_g25_medium_L12EM20VH",
167 "HLT_g35_medium_g25_medium_L12eEM24L",
168 "HLT_g45_medium_g20_medium_L1eEM40L_2eEM18L",
169 "HLT_g140_loose_L1EM22VHI",
170 "HLT_g140_loose_L1eEM26M",
171 "HLT_g120_loose_L1EM22VHI",
172 "HLT_g120_loose_L1eEM26M",
173 "HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9",
174 "HLT_2g9_loose_25dphiAA_invmAA80_L12EM7",
175 "HLT_2g50_loose_L12EM20VH",
176 "HLT_2g50_loose_L12eEM24L",
177 "HLT_2g25_loose_g15_loose_L12EM20VH",
178 "HLT_2g25_loose_g15_loose_L12eEM24L",
179 "HLT_2g22_tight_L12EM15VHI",
180 "HLT_2g22_tight_L12eEM18M",
181 "HLT_2g20_tight_icaloloose_L12EM15VHI",
182 "HLT_2g20_tight_icaloloose_L12eEM18M",
183 "HLT_2g20_loose_L12EM15VH",
184 "HLT_2g20_loose_L12eEM18L",
185 "HLT_2g15_tight_L1DPHI-M70-2eEM15M",
186 "HLT_2g15_tight_25dphiAA_L1DPHI-M70-2eEM15M",
187 "HLT_2g15_tight_25dphiAA_L12EM7",
188 "HLT_2g15_tight_25dphiAA_invmAA80_L12EM7",
189 "HLT_2g15_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM15M",
190 "HLT_2g15_loose_25dphiAA_invmAA80_L12EM7",
191 ]
192 print("HIGG1D1.py Skimming Tool Triggers:", ",".join(TriggerExp))
193 skimmingTool = acc.popToolsAndMerge( SkimmingToolHIGG1Cfg(flags,RequireTrigger=not SkipTriggerRequirement,Triggers=TriggerExp) )
194 acc.addPublicTool(skimmingTool)
195
196
197 # Finally the kernel itself
198 thinningTools += [HIGG1D1TrackParticleThinningTool,
199 HIGG1D1MuonTPThinningTool,
200 HIGG1D1TauTPThinningTool,
201 HIGG1D1DiTauTPThinningTool,
202 HIGG1D1DiTauLowPtThinningTool,
203 HIGG1D1DiTauLowPtTPThinningTool]
204
205 augmentationTools = []
206
207 #====================================================================
208 # Common calo decoration tools
209 #====================================================================
210
211 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
212 CaloDecoratorKernelCfg, ClusterEnergyPerLayerDecoratorCfg)
213 acc.merge(CaloDecoratorKernelCfg(flags))
214
215 # Adding missing cluster energy decorators
216 cluster_sizes = (3,5), (5,7), (7,7)
217 for neta, nphi in cluster_sizes:
218 cename = "ClusterEnergyPerLayerDecorator_%sx%s" % (neta, nphi)
219 ClusterEnergyPerLayerDecorator = acc.popToolsAndMerge( ClusterEnergyPerLayerDecoratorCfg(flags, neta = neta, nphi=nphi, name=cename ))
220 acc.addPublicTool(ClusterEnergyPerLayerDecorator)
221 augmentationTools.append(ClusterEnergyPerLayerDecorator)
222
223 #====================================================================
224 # Truth categories decoration tool
225 #====================================================================
226 if flags.Input.isMC:
227 from DerivationFrameworkHiggs.TruthCategoriesConfig import TruthCategoriesDecoratorCfg
228 acc.merge(TruthCategoriesDecoratorCfg(flags, name="TruthCategoriesDecorator"))
229
230 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
231 acc.addEventAlgo(DerivationKernel(name,
232 SkimmingTools = [skimmingTool],
233 ThinningTools = thinningTools,
234 AugmentationTools = augmentationTools))
235 return acc
236
237
238def HIGG1D1Cfg(flags):
239
240 acc = ComponentAccumulator()
241
242 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
243 HIGG1D1TriggerListsHelper = TriggerListsHelper(flags)
244
245 acc.merge(HIGG1D1KernelCfg(flags, name="HIGG1D1Kernel", StreamName = 'StreamDAOD_HIGG1D1', TriggerListsHelper = HIGG1D1TriggerListsHelper))
246
247
248 # ============================
249 # Define contents of the format
250 # =============================
251 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
252 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
253 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
254
255 HIGG1D1SlimmingHelper = SlimmingHelper("HIGG1D1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
256 HIGG1D1SlimmingHelper.SmartCollections = ["EventInfo",
257 "Electrons",
258 "Photons",
259 "Muons",
260 "PrimaryVertices",
261 "InDetTrackParticles",
262 "AntiKt4EMTopoJets",
263 "AntiKt4EMPFlowJets",
264 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
265 "MET_Baseline_AntiKt4EMTopo",
266 "MET_Baseline_AntiKt4EMPFlow",
267 "TauJets",
268 "DiTauJets",
269 "DiTauJetsLowPt"]
270
271 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
272 StaticContent = []
273 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
274 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
275 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
276 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
277 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
278 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
279
280 HIGG1D1SlimmingHelper.StaticContent = StaticContent
281
282 # Trigger content
283 HIGG1D1SlimmingHelper.IncludeTriggerNavigation = False
284 HIGG1D1SlimmingHelper.IncludeJetTriggerContent = False
285 HIGG1D1SlimmingHelper.IncludeMuonTriggerContent = False
286 HIGG1D1SlimmingHelper.IncludeEGammaTriggerContent = False
287 HIGG1D1SlimmingHelper.IncludeTauTriggerContent = False
288 HIGG1D1SlimmingHelper.IncludeEtMissTriggerContent = False
289 HIGG1D1SlimmingHelper.IncludeBJetTriggerContent = False
290 HIGG1D1SlimmingHelper.IncludeBPhysTriggerContent = False
291 HIGG1D1SlimmingHelper.IncludeMinBiasTriggerContent = False
292
293 # Truth containers
294 if flags.Input.isMC:
295 HIGG1D1SlimmingHelper.AppendToDictionary = {
296 'TruthEvents':'xAOD::TruthEventContainer',
297 'TruthEventsAux':'xAOD::TruthEventAuxContainer',
298 'MET_Truth':'xAOD::MissingETContainer',
299 'MET_TruthAux':'xAOD::MissingETAuxContainer',
300 'TruthElectrons':'xAOD::TruthParticleContainer',
301 'TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
302 'TruthMuons':'xAOD::TruthParticleContainer',
303 'TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
304 'TruthPhotons':'xAOD::TruthParticleContainer',
305 'TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
306 'TruthTaus':'xAOD::TruthParticleContainer',
307 'TruthTausAux':'xAOD::TruthParticleAuxContainer',
308 'TruthNeutrinos':'xAOD::TruthParticleContainer',
309 'TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
310 'TruthBSM':'xAOD::TruthParticleContainer',
311 'TruthBSMAux':'xAOD::TruthParticleAuxContainer',
312 'TruthBoson':'xAOD::TruthParticleContainer',
313 'TruthBosonAux':'xAOD::TruthParticleAuxContainer',
314 'TruthTop':'xAOD::TruthParticleContainer',
315 'TruthTopAux':'xAOD::TruthParticleAuxContainer',
316 'TruthForwardProtons':'xAOD::TruthParticleContainer',
317 'TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
318 'BornLeptons':'xAOD::TruthParticleContainer',
319 'BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
320 'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer',
321 'TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
322 'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer',
323 'TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
324 'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer',
325 'TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
326 'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer',
327 'TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
328 'TruthHFWithDecayParticles':'xAOD::TruthParticleContainer',
329 'TruthHFWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
330 'TruthHFWithDecayVertices':'xAOD::TruthVertexContainer',
331 'TruthHFWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
332 'TruthCharm':'xAOD::TruthParticleContainer',
333 'TruthCharmAux':'xAOD::TruthParticleAuxContainer',
334 'TruthPrimaryVertices':'xAOD::TruthVertexContainer',
335 'TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer'
336 }
337
338 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
339 addTruth3ContentToSlimmerTool(HIGG1D1SlimmingHelper)
340 HIGG1D1SlimmingHelper.AllVariables += ["TruthHFWithDecayParticles",
341 "TruthHFWithDecayVertices",
342 "TruthCharm",
343 "TruthPileupParticles",
344 "InTimeAntiKt4TruthJets",
345 "OutOfTimeAntiKt4TruthJets",
346 "AntiKt4TruthDressedWZJets",
347 "AntiKt4TruthWZJets",
348 "TruthEvents",
349 "TruthPrimaryVertices",
350 "TruthVertices",
351 "TruthParticles"]
352
353 HIGG1D1SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
354 "Muons.TruthLink",
355 "Photons.TruthLink",
356 "AntiKt4EMTopoJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
357 "AntiKt4EMPFlowJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
358 "TruthPrimaryVertices.t.x.y.z",
359 "EventInfo.DFCommonJetsCustomVtx_eventClean_LooseBad.DFCommonJetsCustomVtx_eventClean_TightBad.hardScatterVertexLink.timeStampNSOffset",
360 "TauJets.dRmax.etOverPtLeadTrk"]
361 if flags.Reco.EnableTrigger:
362 HIGG1D1SlimmingHelper.ExtraVariables += [
363 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
364 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"
365 ]
366
367 # Additional content for HIGG1D1
368 HIGG1D1SlimmingHelper.AppendToDictionary.update({
369 "AntiKt4EMPFlowCustomVtxJets": "xAOD::JetContainer",
370 "AntiKt4EMPFlowCustomVtxJetsAux":"xAOD::JetAuxContainer",
371 "METAssoc_AntiKt4EMPFlowCustomVtx": "xAOD::MissingETAssociationMap",
372 "METAssoc_AntiKt4EMPFlowCustomVtxAux":"xAOD::MissingETAuxAssociationMap",
373 "MET_Core_AntiKt4EMPFlowCustomVtx": "xAOD::MissingETContainer",
374 "MET_Core_AntiKt4EMPFlowCustomVtxAux":"xAOD::MissingETAuxContainer",
375 "HggPrimaryVertices":"xAOD::VertexContainer",
376 "HggPrimaryVerticesAux":"xAOD::ShallowAuxContainer",
377 "Kt4EMPFlowCustomVtxEventShape":"xAOD::EventShape",
378 "Kt4EMPFlowCustomVtxEventShapeAux":"xAOD::EventShapeAuxInfo",
379 "Kt4EMPFlowEventShape":"xAOD::EventShape",
380 "Kt4EMPFlowEventShapeAux":"xAOD::EventShapeAuxInfo",
381 "ZeeRefittedPrimaryVertices":"xAOD::VertexContainer",
382 "ZeeRefittedPrimaryVerticesAux":"xAOD::VertexAuxContainer",
383 "AFPSiHitContainer":"xAOD::AFPSiHitContainer",
384 "AFPSiHitContainerAux":"xAOD::AFPSiHitAuxContainer",
385 "AFPToFHitContainer":"xAOD::AFPToFHitContainer",
386 "AFPToFHitContainerAux":"xAOD::AFPToFHitAuxContainer",
387 "AFPVertexContainer":"xAOD::AFPVertexContainer",
388 "AFPVertexContainerAux":"xAOD::AFPVertexAuxContainer",
389 "AFPToFTrackContainer":"xAOD::AFPToFTrackContainer",
390 "AFPToFTrackContainerAux":"xAOD::AFPToFTrackAuxContainer",
391 })
392
393 HIGG1D1SlimmingHelper.AllVariables += [
394 "HggPrimaryVertices",
395 "ZeeRefittedPrimaryVertices",
396 "AntiKt4EMPFlowCustomVtxJets",
397 "Kt4EMPFlowCustomVtxEventShape",
398 "Kt4EMPFlowEventShape",
399 "METAssoc_AntiKt4EMPFlowCustomVtx",
400 "MET_Core_AntiKt4EMPFlowCustomVtx"
401 ]
402
403 # Add AFP information
404 HIGG1D1SlimmingHelper.AllVariables += ["AFPSiHitContainer",
405 "AFPToFHitContainer",
406 "AFPVertexContainer",
407 "AFPToFTrackContainer"]
408 # Add Btagging information
409 from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
410 HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent(flags, "AntiKt4EMPFlowCustomVtxJets")
411 HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent(flags, "AntiKt4EMPFlowJets")
412
413 # is this really needed given Photons are in the AllVariables list ?
414 from DerivationFrameworkEGamma.PhotonsCPDetailedContent import PhotonsCPDetailedContent
415 HIGG1D1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
416
417
418 # Add the variables for Gain and Cluster energy
419 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
420 getGainDecorations, getClusterEnergyPerLayerDecorations )
421 gainDecorations = getGainDecorations(acc, flags, 'HIGG1D1Kernel')
422 HIGG1D1SlimmingHelper.ExtraVariables.extend(gainDecorations)
423 clusterEnergyDecorations = getClusterEnergyPerLayerDecorations(
424 acc, 'HIGG1D1Kernel' )
425 HIGG1D1SlimmingHelper.ExtraVariables.extend(clusterEnergyDecorations)
426
427 # Add HTXS variables
428 HIGG1D1SlimmingHelper.ExtraVariables.extend(["EventInfo.HTXS_prodMode",
429 "EventInfo.HTXS_errorCode",
430 "EventInfo.HTXS_Stage0_Category",
431 "EventInfo.HTXS_Stage1_Category_pTjet25",
432 "EventInfo.HTXS_Stage1_Category_pTjet30",
433 "EventInfo.HTXS_Stage1_FineIndex_pTjet30",
434 "EventInfo.HTXS_Stage1_FineIndex_pTjet25",
435 "EventInfo.HTXS_Stage1_2_Category_pTjet25",
436 "EventInfo.HTXS_Stage1_2_Category_pTjet30",
437 "EventInfo.HTXS_Stage1_2_FineIndex_pTjet30",
438 "EventInfo.HTXS_Stage1_2_FineIndex_pTjet25",
439 "EventInfo.HTXS_Stage1_2_Fine_Category_pTjet25",
440 "EventInfo.HTXS_Stage1_2_Fine_Category_pTjet30",
441 "EventInfo.HTXS_Stage1_2_Fine_FineIndex_pTjet30",
442 "EventInfo.HTXS_Stage1_2_Fine_FineIndex_pTjet25",
443 "EventInfo.HTXS_Njets_pTjet25",
444 "EventInfo.HTXS_Njets_pTjet30",
445 "EventInfo.HTXS_isZ2vvDecay",
446 "EventInfo.HTXS_Higgs_eta",
447 "EventInfo.HTXS_Higgs_m",
448 "EventInfo.HTXS_Higgs_phi",
449 "EventInfo.HTXS_Higgs_pt",
450 "EventInfo.HTXS_V_jets30_eta",
451 "EventInfo.HTXS_V_jets30_m",
452 "EventInfo.HTXS_V_jets30_phi",
453 "EventInfo.HTXS_V_jets30_pt",
454 "EventInfo.HTXS_V_pt"])
455
456 # Add variables from MaxCell decorator and PhotonPointing decorator
457 HIGG1D1SlimmingHelper.ExtraVariables.extend(["Electrons.maxEcell_time",
458 "Electrons.maxEcell_energy",
459 "Electrons.maxEcell_gain",
460 "Electrons.maxEcell_onlId",
461 "Photons.maxEcell_time",
462 "Photons.maxEcell_energy",
463 "Photons.maxEcell_gain",
464 "Photons.maxEcell_onlId",
465 "Photons.zvertex"])
466 # Add TTVA variables
467 HIGG1D1SlimmingHelper.ExtraVariables.extend(["InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.TTVA_AMVFVertices_forReco.TTVA_AMVFWeights_forReco.TTVA_AMVFVertices_forHiggs.TTVA_AMVFWeights_forHiggs.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers"])
468
469 # Trigger content
470 HIGG1D1SlimmingHelper.IncludeTriggerNavigation = False
471 HIGG1D1SlimmingHelper.IncludeJetTriggerContent = False
472 HIGG1D1SlimmingHelper.IncludeMuonTriggerContent = False
473 HIGG1D1SlimmingHelper.IncludeEGammaTriggerContent = False
474 HIGG1D1SlimmingHelper.IncludeTauTriggerContent = False
475 HIGG1D1SlimmingHelper.IncludeEtMissTriggerContent = False
476 HIGG1D1SlimmingHelper.IncludeBJetTriggerContent = False
477 HIGG1D1SlimmingHelper.IncludeBPhysTriggerContent = False
478 HIGG1D1SlimmingHelper.IncludeMinBiasTriggerContent = False
479
480 # Trigger matching
481 # Run 2
482 if flags.Trigger.EDMVersion == 2:
483 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
484 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
485 OutputContainerPrefix = "TrigMatch_",
486 TriggerList = HIGG1D1TriggerListsHelper.Run2TriggerNamesTau)
487 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
488 OutputContainerPrefix = "TrigMatch_",
489 TriggerList = HIGG1D1TriggerListsHelper.Run2TriggerNamesNoTau)
490 # Run 3, or Run 2 with navigation conversion
491 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
492 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
493 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(HIGG1D1SlimmingHelper)
494
495 # Output stream
496 HIGG1D1ItemList = HIGG1D1SlimmingHelper.GetItemList()
497 acc.merge(OutputStreamCfg(flags, "DAOD_HIGG1D1", ItemList=HIGG1D1ItemList, AcceptAlgs=["HIGG1D1Kernel"]))
498 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HIGG1D1", AcceptAlgs=["HIGG1D1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
499
500 return acc
void print(char *figname, TCanvas *c1)
HIGG1D1KernelCfg(flags, name='HIGG1D1Kernel', **kwargs)
Definition HIGG1D1.py:15
HIGG1D1Cfg(flags)
Definition HIGG1D1.py:238