6 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory
import CompFactory
8 from AthenaConfiguration.Enums
import MetadataCategory, LHCPeriod
12 """Configure the derivation framework driving algorithm (kernel) for JETM2"""
16 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
21 truthThinningTool = CompFactory.DerivationFramework.MenuTruthThinning(name =
"JETM2TruthThinning",
22 StreamName = kwargs[
'StreamName'],
23 WriteAllStable =
True,
27 WriteCHadrons =
False,
31 acc.addPublicTool(truthThinningTool)
33 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
34 acc.addEventAlgo(
DerivationKernel(name, ThinningTools = [truthThinningTool]
if flags.Input.isMC
else []))
46 from JetRecConfig.JetRecConfig
import JetRecCfg, getInputAlgs, getConstitPJGAlg
47 from JetRecConfig.JetInputConfig
import buildEventShapeAlg
48 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
49 from JetRecConfig.StandardSmallRJets
import AntiKt4UFOCSSKNoPtCut, AntiKt4EMPFlowNoPtCut, AntiKt4EMPFlowML, AntiKt4EMTopoNoPtCut
50 from JetRecConfig.StandardLargeRJets
import AntiKt10TruthDressedWZSoftDrop
58 if isinstance(alg, ComponentAccumulator):
66 jetList = [AntiKt4UFOCSSKNoPtCut,AntiKt4EMPFlowNoPtCut,AntiKt4EMPFlowML,AntiKt4EMTopoNoPtCut]
72 jetList += [AntiKt10TruthDressedWZSoftDrop]
91 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTopQuarkAndDownstreamParticlesCfg, AddTruthCollectionNavigationDecorationsCfg
107 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
108 JETM2TriggerListsHelper = TriggerListsHelper(flags)
111 acc.merge(
JETM2KernelCfg(flags, name=
"JETM2Kernel", StreamName =
'StreamDAOD_JETM2', TriggerListsHelper = JETM2TriggerListsHelper))
116 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
117 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
118 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
120 JETM2SlimmingHelper =
SlimmingHelper(
"JETM2SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
122 JETM2SlimmingHelper.SmartCollections = [
"EventInfo",
"InDetTrackParticles",
"PrimaryVertices",
123 "Electrons",
"Photons",
"Muons",
"TauJets",
124 "MET_Baseline_AntiKt4EMPFlow",
125 "AntiKt4EMTopoNoPtCutJets",
"AntiKt4EMPFlowJets",
126 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
128 JETM2SlimmingHelper.AllVariables = [
"CaloCalFwdTopoTowers",
129 "CHSGChargedParticleFlowObjects",
"CHSGNeutralParticleFlowObjects",
130 "CHSGlobalClusterMLCorrectedChargedParticleFlowObjects",
"CHSGlobalClusterMLCorrectedNeutralParticleFlowObjects",
131 "CSSKGChargedParticleFlowObjects",
"CSSKGNeutralParticleFlowObjects",
132 "Kt4EMTopoOriginEventShape",
"Kt4EMPFlowEventShape",
"Kt4EMPFlowPUSBEventShape",
133 "Kt4EMPFlowNeutEventShape",
"Kt4UFOCSSKEventShape",
"Kt4UFOCSSKNeutEventShape"]
136 from DerivationFrameworkJetEtMiss.CommonJETMXContent
import ClusterVariables, FlowElementVariables, UFOVariables, TrackingVariables, TrackingVariablesHGTD, FELinks
137 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"CaloCalTopoClusters"] + ClusterVariables + [
"clusterE_ML.clusterE_ML_unc"])]
138 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"EMOriginTopoClusters"] + [
'calM'])]
139 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"GlobalChargedParticleFlowObjects"] + FlowElementVariables)]
140 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"GlobalNeutralParticleFlowObjects"] + FlowElementVariables)]
141 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"GlobalClusterMLCorrectedChargedParticleFlowObjects"] + FlowElementVariables)]
142 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"GlobalClusterMLCorrectedNeutralParticleFlowObjects"] + FlowElementVariables)]
143 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"UFO"] + UFOVariables)]
144 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"UFOCSSK"] + UFOVariables)]
145 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"InDetTrackParticles"] + TrackingVariables)]
146 if flags.GeoModel.Run >= LHCPeriod.Run4:
147 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"InDetTrackParticles"] + TrackingVariablesHGTD)]
150 JETM2SlimmingHelper.ExtraVariables += FELinks
153 from DerivationFrameworkJetEtMiss.CommonJETMXContent
import ExtraJSSVariables
154 JETM2SlimmingHelper.ExtraVariables += [
".".
join([
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"] + ExtraJSSVariables)]
157 from DerivationFrameworkJetEtMiss.CommonJETMXContent
import JSSTaggersVariables
158 JETM2SlimmingHelper.ExtraVariables += JSSTaggersVariables
160 JETM2SlimmingHelper.ExtraVariables += [
"AntiKt4EMPFlowJets.GhostTower.IsoFixedCone5Pt.IsoFixedCone5PtPUsub",
161 "AntiKt4EMTopoNoPtCutJets.IsoFixedCone5Pt.IsoFixedCone5PtPUsub",
162 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.SizeParameter.GhostTrack",
163 "GSFTrackParticles.particleHypothesis.vx.vy.vz",
164 "PrimaryVertices.x.y.z.covariance.trackWeights",
165 "TauJets.clusterLinks",
166 "Muons.energyLossType.EnergyLoss.ParamEnergyLoss.MeasEnergyLoss.EnergyLossSigma.MeasEnergyLossSigma.ParamEnergyLossSigmaPlus.ParamEnergyLossSigmaMinus.clusterLinks.FSR_CandidateEnergy",
167 "MuonSegments.x.y.z.px.py.pz"]
169 JETM2SlimmingHelper.AppendToDictionary.update({
'CSSKGNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
170 'CSSKGNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
171 'CSSKGChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
172 'CSSKGChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
173 'CHSGlobalClusterMLCorrectedNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
174 'CHSGlobalClusterMLCorrectedNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
175 'CHSGlobalClusterMLCorrectedChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
176 'CHSGlobalClusterMLCorrectedChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
177 'GlobalClusterMLCorrectedChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
178 'GlobalClusterMLCorrectedChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
179 'GlobalClusterMLCorrectedNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
180 'GlobalClusterMLCorrectedNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
181 'UFO':
'xAOD::FlowElementContainer',
182 'UFOAux':
'xAOD::FlowElementAuxContainer',
183 'Kt4UFOCSSKEventShape':
'xAOD::EventShape',
184 'Kt4UFOCSSKEventShapeAux':
'xAOD::EventShapeAuxInfo',
185 'Kt4UFOCSSKNeutEventShape':
'xAOD::EventShape',
186 'Kt4UFOCSSKNeutEventShapeAux':
'xAOD::EventShapeAuxInfo',
187 'AntiKt4EMTopoNoPtCutJets':
'xAOD::JetContainer',
188 'AntiKt4EMTopoNoPtCutJetsAux':
'xAOD::JetAuxContainer'})
190 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addOriginCorrectedClustersToSlimmingTool
196 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
199 JETM2SlimmingHelper.AppendToDictionary.update({
'TruthParticles':
'xAOD::TruthParticleContainer',
200 'TruthParticlesAux':
'xAOD::TruthParticleAuxContainer'})
202 JETM2SlimmingHelper.AllVariables += [
"TruthTopQuarkWithDecayParticles",
"TruthTopQuarkWithDecayVertices",
"TruthHFWithDecayParticles",
203 "AntiKt4TruthJets",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
204 "TruthParticles",
"TruthVertices",
"TruthEvents"]
205 JETM2SlimmingHelper.ExtraVariables += [
"AntiKt10TruthSoftDropBeta100Zcut10Jets.SizeParameter"]
206 JETM2SlimmingHelper.SmartCollections += [
"AntiKt4TruthJets",
"AntiKt10TruthJets",
"AntiKt4TruthWZJets",
"AntiKt10TruthDressedWZSoftDropBeta100Zcut10Jets"]
208 JETM2SlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.GhostTQuarksFinalCount.GhostHBosonsCount.GhostZBosonsCount.GhostWBosonsCount",
209 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.GhostTQuarksFinalPt.GhostHBosonsPt.GhostZBosonsPt.GhostWBosonsPt",
210 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.GhostBHadronsFinalPt.GhostCHadronsFinalPt",
211 "AntiKt4TruthWZJets.IsoFixedCone5Pt",
212 "AntiKt4TruthDressedWZJets.IsoFixedCone5Pt"]
215 JETM2SlimmingHelper.IncludeTriggerNavigation =
False
216 JETM2SlimmingHelper.IncludeJetTriggerContent =
False
217 JETM2SlimmingHelper.IncludeMuonTriggerContent =
False
218 JETM2SlimmingHelper.IncludeEGammaTriggerContent =
False
219 JETM2SlimmingHelper.IncludeTauTriggerContent =
False
220 JETM2SlimmingHelper.IncludeEtMissTriggerContent =
False
221 JETM2SlimmingHelper.IncludeBJetTriggerContent =
False
222 JETM2SlimmingHelper.IncludeBPhysTriggerContent =
False
223 JETM2SlimmingHelper.IncludeMinBiasTriggerContent =
False
225 jetOutputList = [
"AntiKt4UFOCSSKNoPtCutJets",
"AntiKt4EMPFlowNoPtCutJets",
"AntiKt4EMPFlowMLJets"]
226 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addJetsToSlimmingTool
230 JETM2ItemList = JETM2SlimmingHelper.GetItemList()
231 acc.merge(
OutputStreamCfg(flags,
"DAOD_JETM2", ItemList=JETM2ItemList, AcceptAlgs=[
"JETM2Kernel"]))
232 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_JETM2", AcceptAlgs=[
"JETM2Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))