Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
#!/usr/bin/env python
#====================================================================
# DAOD_JETM42.py
#====================================================================
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory
from AthenaCommon.Logging import logging
logJETM42 = logging.getLogger('JETM42')
# Main algorithm config
def JETM42KernelCfg(flags, name='JETM42Kernel', **kwargs):
"""Configure the derivation framework driving algorithm (kernel) for JETM42"""
acc = ComponentAccumulator()
from DerivationFrameworkPhys.PHYS import PHYSKernelCfg
acc.merge(PHYSKernelCfg(flags, name, StreamName = kwargs['StreamName'], TriggerListsHelper = kwargs['TriggerListsHelper'], TauJets_EleRM_in_input=kwargs['TauJets_EleRM_in_input']))
from JetRecConfig.JetRecConfig import JetRecCfg, getInputAlgs
from JetRecConfig.StandardJetConstits import stdConstitDic as cst, standardReco, stdInputExtDic as inpext
from ROOT import xAODType
#=======================================
# CHS R = 0.4 422 jets
#=======================================
from JetRecConfig.JetDefinition import JetDefinition, JetInputConstitSeq, JetInputExternal
from JetRecConfig.StandardSmallRJets import standardghosts, flavourghosts, truthmods, clustermods
inpext["TC422"] = JetInputExternal("CaloTopoClusters422", xAODType.CaloCluster, algoBuilder= standardReco("CaloClusters"))
inpext["TopoTowers"] = JetInputExternal("CaloCalAllTopoTowers", xAODType.CaloCluster, algoBuilder= standardReco("CaloClusters"))
cst["EMTopo422"] = JetInputConstitSeq("EMTopo422", xAODType.CaloCluster, ["EM"],
"CaloTopoClusters422", "EMTopoClusters422", jetinputtype="EMTopo",
)
cst["EMTopo422SK"] = JetInputConstitSeq("EMTopo422SK", xAODType.CaloCluster, ["EM","SK"],
"CaloTopoClusters422", "EMTopoClusters422SK", jetinputtype="EMTopo",
)
cst["TopoTower"] = JetInputConstitSeq("TopoTower", xAODType.CaloCluster, ["EM"],
"CaloCalAllTopoTowers", "TopoTowers", jetinputtype="TopoTower",
)
cst["TopoTowerSK"] = JetInputConstitSeq("TopoTowerSK", xAODType.CaloCluster, ["EM","SK"],
"CaloCalAllTopoTowers", "TopoTowersSK", jetinputtype="TopoTower",
)
algs = getInputAlgs(cst["EMTopo422"], flags=flags)
algs += getInputAlgs(cst["EMTopo422SK"], flags=flags)
algs += getInputAlgs(cst["TopoTower"], flags=flags)
algs += getInputAlgs(cst["TopoTowerSK"], flags=flags)
AntiKt4EMTopo422 = JetDefinition("AntiKt",0.4,cst["EMTopo422"],
ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
modifiers = truthmods+clustermods+("Filter:15000","LArHVCorr",),
lock = True,
)
AntiKt4EMTopo422SK = JetDefinition("AntiKt",0.4,cst["EMTopo422SK"],
ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
modifiers = truthmods+clustermods+("Filter:15000","LArHVCorr",),
lock = True,
)
AntiKt4TopoTowers = JetDefinition("AntiKt",0.4,cst["TopoTower"],
ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
modifiers = truthmods+clustermods+("Filter:15000","LArHVCorr",),
lock = True,
)
AntiKt4TopoTowersSK = JetDefinition("AntiKt",0.4,cst["TopoTowerSK"],
ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
modifiers = truthmods+clustermods+("Filter:15000","LArHVCorr",),
lock = True,
)
jetList = [AntiKt4EMTopo422, AntiKt4EMTopo422SK, AntiKt4TopoTowers, AntiKt4TopoTowersSK]
for jd in jetList:
acc.merge(JetRecCfg(flags,jd))
# augmentation tools
augmentationTools = []
# skimming tools
skimmingTools = []
# thinning tools
thinningTools = []
# Finally the kernel itself
DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
acc.addEventAlgo(DerivationKernel(name, AugmentationTools = augmentationTools, ThinningTools = thinningTools, SkimmingTools = skimmingTools))
return acc
def JETM42CoreCfg(flags, name, StreamName, TriggerListsHelper, TauJets_EleRM_in_input):
acc = ComponentAccumulator()
from DerivationFrameworkPhys.PHYS import PHYSCoreCfg
acc.merge(PHYSCoreCfg(flags, name, StreamName = StreamName, TriggerListsHelper = TriggerListsHelper, TauJets_EleRM_in_input=TauJets_EleRM_in_input))
from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
JETM42SlimmingHelper = SlimmingHelper(name+"SlimmingHelper", flags=flags, NamesAndTypes = flags.Input.TypedCollections)
JETM42SlimmingHelper.AllVariables = ["CaloCalTopoClusters", "CaloCalFwdTopoTowers", "CaloTopoClusters422", "CaloCalAllTopoTowers"
]
jetOutputList = ["AntiKt4EMTopo422Jets","AntiKt4EMTopo422SKJets","AntiKt4TopoTowerJets","AntiKt4TopoTowerSKJets"]
from DerivationFrameworkJetEtMiss.JetCommonConfig import addJetsToSlimmingTool
addJetsToSlimmingTool(JETM42SlimmingHelper, jetOutputList, JETM42SlimmingHelper.SmartCollections)
# Output stream
JETM42ItemList = JETM42SlimmingHelper.GetItemList()
acc.merge(OutputStreamCfg(flags, "DAOD_"+name, ItemList=JETM42ItemList, AcceptAlgs=[name+"Kernel"]))
return acc
def JETM42Cfg(flags):
acc = ComponentAccumulator()
# the name_tag has to consistent between KernelCfg and CoreCfg
JETM42_name_tag = 'JETM42'
# Get the lists of triggers needed for trigger matching.
# This is needed at this scope (for the slimming) and further down in the config chain
# for actually configuring the matching, so we create it here and pass it down
# TODO: this should ideally be called higher up to avoid it being run multiple times in a train
from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
JETM42TriggerListsHelper = TriggerListsHelper(flags)
# for AOD produced before 24.0.17, the electron removal tau is not available
TauJets_EleRM_in_input = (flags.Input.TypedCollections.count('xAOD::TauJetContainer#TauJets_EleRM') > 0)
# Common augmentations
acc.merge(JETM42KernelCfg(flags,
name= JETM42_name_tag + "Kernel",
StreamName = 'StreamDAOD_'+JETM42_name_tag,
TriggerListsHelper = JETM42TriggerListsHelper,
TauJets_EleRM_in_input=TauJets_EleRM_in_input
))
# PHYS content
acc.merge(JETM42CoreCfg(flags,
name=JETM42_name_tag,
StreamName = 'StreamDAOD_'+JETM42_name_tag,
TriggerListsHelper = JETM42TriggerListsHelper,
TauJets_EleRM_in_input=TauJets_EleRM_in_input
))
return acc