ATLAS Offline Software
Loading...
Searching...
No Matches
python.HIGG1D1 Namespace Reference

Functions

 HIGG1D1KernelCfg (flags, name='HIGG1D1Kernel', **kwargs)
 HIGG1D1Cfg (flags)

Function Documentation

◆ HIGG1D1Cfg()

python.HIGG1D1.HIGG1D1Cfg ( flags)

Definition at line 237 of file HIGG1D1.py.

237def HIGG1D1Cfg(flags):
238
239 acc = ComponentAccumulator()
240
241 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
242 HIGG1D1TriggerListsHelper = TriggerListsHelper(flags)
243
244 acc.merge(HIGG1D1KernelCfg(flags, name="HIGG1D1Kernel", StreamName = 'StreamDAOD_HIGG1D1', TriggerListsHelper = HIGG1D1TriggerListsHelper))
245
246
247 # ============================
248 # Define contents of the format
249 # =============================
250 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
251 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
252 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
253
254 HIGG1D1SlimmingHelper = SlimmingHelper("HIGG1D1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
255 HIGG1D1SlimmingHelper.SmartCollections = ["EventInfo",
256 "Electrons",
257 "Photons",
258 "Muons",
259 "PrimaryVertices",
260 "InDetTrackParticles",
261 "AntiKt4EMTopoJets",
262 "AntiKt4EMPFlowJets",
263 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
264 "MET_Baseline_AntiKt4EMTopo",
265 "MET_Baseline_AntiKt4EMPFlow",
266 "TauJets",
267 "DiTauJets",
268 "DiTauJetsLowPt"]
269
270 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
271 StaticContent = []
272 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
273 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
274 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
275 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
276 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
277 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
278
279 HIGG1D1SlimmingHelper.StaticContent = StaticContent
280
281 # Trigger content
282 HIGG1D1SlimmingHelper.IncludeTriggerNavigation = False
283 HIGG1D1SlimmingHelper.IncludeJetTriggerContent = False
284 HIGG1D1SlimmingHelper.IncludeMuonTriggerContent = False
285 HIGG1D1SlimmingHelper.IncludeEGammaTriggerContent = False
286 HIGG1D1SlimmingHelper.IncludeTauTriggerContent = False
287 HIGG1D1SlimmingHelper.IncludeEtMissTriggerContent = False
288 HIGG1D1SlimmingHelper.IncludeBJetTriggerContent = False
289 HIGG1D1SlimmingHelper.IncludeBPhysTriggerContent = False
290 HIGG1D1SlimmingHelper.IncludeMinBiasTriggerContent = False
291
292 # Truth containers
293 if flags.Input.isMC:
294 HIGG1D1SlimmingHelper.AppendToDictionary = {
295 'TruthEvents':'xAOD::TruthEventContainer',
296 'TruthEventsAux':'xAOD::TruthEventAuxContainer',
297 'MET_Truth':'xAOD::MissingETContainer',
298 'MET_TruthAux':'xAOD::MissingETAuxContainer',
299 'TruthElectrons':'xAOD::TruthParticleContainer',
300 'TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
301 'TruthMuons':'xAOD::TruthParticleContainer',
302 'TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
303 'TruthPhotons':'xAOD::TruthParticleContainer',
304 'TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
305 'TruthTaus':'xAOD::TruthParticleContainer',
306 'TruthTausAux':'xAOD::TruthParticleAuxContainer',
307 'TruthNeutrinos':'xAOD::TruthParticleContainer',
308 'TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
309 'TruthBSM':'xAOD::TruthParticleContainer',
310 'TruthBSMAux':'xAOD::TruthParticleAuxContainer',
311 'TruthBoson':'xAOD::TruthParticleContainer',
312 'TruthBosonAux':'xAOD::TruthParticleAuxContainer',
313 'TruthTop':'xAOD::TruthParticleContainer',
314 'TruthTopAux':'xAOD::TruthParticleAuxContainer',
315 'TruthForwardProtons':'xAOD::TruthParticleContainer',
316 'TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
317 'BornLeptons':'xAOD::TruthParticleContainer',
318 'BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
319 'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer',
320 'TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
321 'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer',
322 'TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
323 'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer',
324 'TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
325 'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer',
326 'TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
327 'TruthHFWithDecayParticles':'xAOD::TruthParticleContainer',
328 'TruthHFWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
329 'TruthHFWithDecayVertices':'xAOD::TruthVertexContainer',
330 'TruthHFWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
331 'TruthCharm':'xAOD::TruthParticleContainer',
332 'TruthCharmAux':'xAOD::TruthParticleAuxContainer',
333 'TruthPrimaryVertices':'xAOD::TruthVertexContainer',
334 'TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer'
335 }
336
337 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
338 addTruth3ContentToSlimmerTool(HIGG1D1SlimmingHelper)
339 HIGG1D1SlimmingHelper.AllVariables += ["TruthHFWithDecayParticles",
340 "TruthHFWithDecayVertices",
341 "TruthCharm",
342 "TruthPileupParticles",
343 "InTimeAntiKt4TruthJets",
344 "OutOfTimeAntiKt4TruthJets",
345 "AntiKt4TruthDressedWZJets",
346 "AntiKt4TruthWZJets",
347 "TruthEvents",
348 "TruthPrimaryVertices",
349 "TruthVertices",
350 "TruthParticles"]
351
352 HIGG1D1SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
353 "Muons.TruthLink",
354 "Photons.TruthLink",
355 "AntiKt4EMTopoJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
356 "AntiKt4EMPFlowJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
357 "TruthPrimaryVertices.t.x.y.z",
358 "EventInfo.DFCommonJetsCustomVtx_eventClean_LooseBad.DFCommonJetsCustomVtx_eventClean_TightBad.hardScatterVertexLink.timeStampNSOffset",
359 "TauJets.dRmax.etOverPtLeadTrk"]
360 if flags.Reco.EnableTrigger:
361 HIGG1D1SlimmingHelper.ExtraVariables += [
362 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
363 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"
364 ]
365
366 # Additional content for HIGG1D1
367 HIGG1D1SlimmingHelper.AppendToDictionary.update({
368 "AntiKt4EMPFlowCustomVtxJets": "xAOD::JetContainer",
369 "AntiKt4EMPFlowCustomVtxJetsAux":"xAOD::JetAuxContainer",
370 "METAssoc_AntiKt4EMPFlowCustomVtx": "xAOD::MissingETAssociationMap",
371 "METAssoc_AntiKt4EMPFlowCustomVtxAux":"xAOD::MissingETAuxAssociationMap",
372 "MET_Core_AntiKt4EMPFlowCustomVtx": "xAOD::MissingETContainer",
373 "MET_Core_AntiKt4EMPFlowCustomVtxAux":"xAOD::MissingETAuxContainer",
374 "HggPrimaryVertices":"xAOD::VertexContainer",
375 "HggPrimaryVerticesAux":"xAOD::ShallowAuxContainer",
376 "Kt4EMPFlowCustomVtxEventShape":"xAOD::EventShape",
377 "Kt4EMPFlowCustomVtxEventShapeAux":"xAOD::EventShapeAuxInfo",
378 "Kt4EMPFlowEventShape":"xAOD::EventShape",
379 "Kt4EMPFlowEventShapeAux":"xAOD::EventShapeAuxInfo",
380 "ZeeRefittedPrimaryVertices":"xAOD::VertexContainer",
381 "ZeeRefittedPrimaryVerticesAux":"xAOD::VertexAuxContainer",
382 "AFPSiHitContainer":"xAOD::AFPSiHitContainer",
383 "AFPSiHitContainerAux":"xAOD::AFPSiHitAuxContainer",
384 "AFPToFHitContainer":"xAOD::AFPToFHitContainer",
385 "AFPToFHitContainerAux":"xAOD::AFPToFHitAuxContainer",
386 "AFPVertexContainer":"xAOD::AFPVertexContainer",
387 "AFPVertexContainerAux":"xAOD::AFPVertexAuxContainer",
388 "AFPToFTrackContainer":"xAOD::AFPToFTrackContainer",
389 "AFPToFTrackContainerAux":"xAOD::AFPToFTrackAuxContainer",
390 })
391
392 HIGG1D1SlimmingHelper.AllVariables += [
393 "HggPrimaryVertices",
394 "ZeeRefittedPrimaryVertices",
395 "AntiKt4EMPFlowCustomVtxJets",
396 "Kt4EMPFlowCustomVtxEventShape",
397 "Kt4EMPFlowEventShape",
398 "METAssoc_AntiKt4EMPFlowCustomVtx",
399 "MET_Core_AntiKt4EMPFlowCustomVtx"
400 ]
401
402 # Add AFP information
403 HIGG1D1SlimmingHelper.AllVariables += ["AFPSiHitContainer",
404 "AFPToFHitContainer",
405 "AFPVertexContainer",
406 "AFPToFTrackContainer"]
407 # Add Btagging information
408 from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
409 HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent(flags, "AntiKt4EMPFlowCustomVtxJets")
410 HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent(flags, "AntiKt4EMPFlowJets")
411
412 # is this really needed given Photons are in the AllVariables list ?
413 from DerivationFrameworkEGamma.PhotonsCPDetailedContent import PhotonsCPDetailedContent
414 HIGG1D1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
415
416
417 # Add the variables for Gain and Cluster energy
418 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
419 getGainDecorations, getClusterEnergyPerLayerDecorations )
420 gainDecorations = getGainDecorations(acc, flags, 'HIGG1D1Kernel')
421 HIGG1D1SlimmingHelper.ExtraVariables.extend(gainDecorations)
422 clusterEnergyDecorations = getClusterEnergyPerLayerDecorations(
423 acc, 'HIGG1D1Kernel' )
424 HIGG1D1SlimmingHelper.ExtraVariables.extend(clusterEnergyDecorations)
425
426 # Add HTXS variables
427 HIGG1D1SlimmingHelper.ExtraVariables.extend(["EventInfo.HTXS_prodMode",
428 "EventInfo.HTXS_errorCode",
429 "EventInfo.HTXS_Stage0_Category",
430 "EventInfo.HTXS_Stage1_Category_pTjet25",
431 "EventInfo.HTXS_Stage1_Category_pTjet30",
432 "EventInfo.HTXS_Stage1_FineIndex_pTjet30",
433 "EventInfo.HTXS_Stage1_FineIndex_pTjet25",
434 "EventInfo.HTXS_Stage1_2_Category_pTjet25",
435 "EventInfo.HTXS_Stage1_2_Category_pTjet30",
436 "EventInfo.HTXS_Stage1_2_FineIndex_pTjet30",
437 "EventInfo.HTXS_Stage1_2_FineIndex_pTjet25",
438 "EventInfo.HTXS_Stage1_2_Fine_Category_pTjet25",
439 "EventInfo.HTXS_Stage1_2_Fine_Category_pTjet30",
440 "EventInfo.HTXS_Stage1_2_Fine_FineIndex_pTjet30",
441 "EventInfo.HTXS_Stage1_2_Fine_FineIndex_pTjet25",
442 "EventInfo.HTXS_Njets_pTjet25",
443 "EventInfo.HTXS_Njets_pTjet30",
444 "EventInfo.HTXS_isZ2vvDecay",
445 "EventInfo.HTXS_Higgs_eta",
446 "EventInfo.HTXS_Higgs_m",
447 "EventInfo.HTXS_Higgs_phi",
448 "EventInfo.HTXS_Higgs_pt",
449 "EventInfo.HTXS_V_jets30_eta",
450 "EventInfo.HTXS_V_jets30_m",
451 "EventInfo.HTXS_V_jets30_phi",
452 "EventInfo.HTXS_V_jets30_pt",
453 "EventInfo.HTXS_V_pt"])
454
455 # Add variables from MaxCell decorator and PhotonPointing decorator
456 HIGG1D1SlimmingHelper.ExtraVariables.extend(["Electrons.maxEcell_time",
457 "Electrons.maxEcell_energy",
458 "Electrons.maxEcell_gain",
459 "Electrons.maxEcell_onlId",
460 "Photons.maxEcell_time",
461 "Photons.maxEcell_energy",
462 "Photons.maxEcell_gain",
463 "Photons.maxEcell_onlId",
464 "Photons.zvertex"])
465 # Add TTVA variables
466 HIGG1D1SlimmingHelper.ExtraVariables.extend(["InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.TTVA_AMVFVertices_forReco.TTVA_AMVFWeights_forReco.TTVA_AMVFVertices_forHiggs.TTVA_AMVFWeights_forHiggs.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers"])
467
468 # Trigger content
469 HIGG1D1SlimmingHelper.IncludeTriggerNavigation = False
470 HIGG1D1SlimmingHelper.IncludeJetTriggerContent = False
471 HIGG1D1SlimmingHelper.IncludeMuonTriggerContent = False
472 HIGG1D1SlimmingHelper.IncludeEGammaTriggerContent = False
473 HIGG1D1SlimmingHelper.IncludeTauTriggerContent = False
474 HIGG1D1SlimmingHelper.IncludeEtMissTriggerContent = False
475 HIGG1D1SlimmingHelper.IncludeBJetTriggerContent = False
476 HIGG1D1SlimmingHelper.IncludeBPhysTriggerContent = False
477 HIGG1D1SlimmingHelper.IncludeMinBiasTriggerContent = False
478
479 # Trigger matching
480 # Run 2
481 if flags.Trigger.EDMVersion == 2:
482 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
483 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
484 OutputContainerPrefix = "TrigMatch_",
485 TriggerList = HIGG1D1TriggerListsHelper.Run2TriggerNamesTau)
486 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = HIGG1D1SlimmingHelper,
487 OutputContainerPrefix = "TrigMatch_",
488 TriggerList = HIGG1D1TriggerListsHelper.Run2TriggerNamesNoTau)
489 # Run 3, or Run 2 with navigation conversion
490 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
491 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
492 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(HIGG1D1SlimmingHelper)
493
494 # Output stream
495 HIGG1D1ItemList = HIGG1D1SlimmingHelper.GetItemList()
496 acc.merge(OutputStreamCfg(flags, "DAOD_HIGG1D1", ItemList=HIGG1D1ItemList, AcceptAlgs=["HIGG1D1Kernel"]))
497 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HIGG1D1", AcceptAlgs=["HIGG1D1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
498
499 return acc

◆ HIGG1D1KernelCfg()

python.HIGG1D1.HIGG1D1KernelCfg ( flags,
name = 'HIGG1D1Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for HIGG1D1

Definition at line 15 of file HIGG1D1.py.

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 = ["((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.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(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_g140_loose_L1EM22VHI",
169 "HLT_g140_loose_L1eEM26M"
170 "HLT_g120_loose_L1EM22VHI",
171 "HLT_g120_loose_L1eEM26M",
172 "HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9",
173 "HLT_2g9_loose_25dphiAA_invmAA80_L12EM7",
174 "HLT_2g50_loose_L12EM20VH",
175 "HLT_2g50_loose_L12eEM24L",
176 "HLT_2g25_loose_g15_loose_L12EM20VH",
177 "HLT_2g25_loose_g15_loose_L12eEM24L",
178 "HLT_2g22_tight_L12EM15VHI",
179 "HLT_2g22_tight_L12eEM18M",
180 "HLT_2g20_tight_icaloloose_L12EM15VHI",
181 "HLT_2g20_tight_icaloloose_L12eEM18M",
182 "HLT_2g20_loose_L12EM15VH",
183 "HLT_2g20_loose_L12eEM18L",
184 "HLT_2g15_tight_L1DPHI-M70-2eEM15M",
185 "HLT_2g15_tight_25dphiAA_L1DPHI-M70-2eEM15M",
186 "HLT_2g15_tight_25dphiAA_L12EM7",
187 "HLT_2g15_tight_25dphiAA_invmAA80_L12EM7",
188 "HLT_2g15_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM15M",
189 "HLT_2g15_loose_25dphiAA_invmAA80_L12EM7",
190 ]
191 print("HIGG1D1.py Skimming Tool Triggers:", ",".join(TriggerExp))
192 skimmingTool = acc.popToolsAndMerge( SkimmingToolHIGG1Cfg(flags,RequireTrigger=not SkipTriggerRequirement,Triggers=TriggerExp) )
193 acc.addPublicTool(skimmingTool)
194
195
196 # Finally the kernel itself
197 thinningTools += [HIGG1D1TrackParticleThinningTool,
198 HIGG1D1MuonTPThinningTool,
199 HIGG1D1TauTPThinningTool,
200 HIGG1D1DiTauTPThinningTool,
201 HIGG1D1DiTauLowPtThinningTool,
202 HIGG1D1DiTauLowPtTPThinningTool]
203
204 augmentationTools = []
205
206 #====================================================================
207 # Common calo decoration tools
208 #====================================================================
209
210 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
211 CaloDecoratorKernelCfg, ClusterEnergyPerLayerDecoratorCfg)
212 acc.merge(CaloDecoratorKernelCfg(flags))
213
214 # Adding missing cluster energy decorators
215 cluster_sizes = (3,5), (5,7), (7,7)
216 for neta, nphi in cluster_sizes:
217 cename = "ClusterEnergyPerLayerDecorator_%sx%s" % (neta, nphi)
218 ClusterEnergyPerLayerDecorator = acc.popToolsAndMerge( ClusterEnergyPerLayerDecoratorCfg(flags, neta = neta, nphi=nphi, name=cename ))
219 acc.addPublicTool(ClusterEnergyPerLayerDecorator)
220 augmentationTools.append(ClusterEnergyPerLayerDecorator)
221
222 #====================================================================
223 # Truth categories decoration tool
224 #====================================================================
225 if flags.Input.isMC:
226 from DerivationFrameworkHiggs.TruthCategoriesConfig import TruthCategoriesDecoratorCfg
227 acc.merge(TruthCategoriesDecoratorCfg(flags, name="TruthCategoriesDecorator"))
228
229 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
230 acc.addEventAlgo(DerivationKernel(name,
231 SkimmingTools = [skimmingTool],
232 ThinningTools = thinningTools,
233 AugmentationTools = augmentationTools))
234 return acc
235
236
void print(char *figname, TCanvas *c1)