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

Functions

 JETM2KernelCfg (flags, name='JETM2Kernel', **kwargs)
 JETM2ExtraContentCfg (flags)
 JETM2Cfg (flags)

Function Documentation

◆ JETM2Cfg()

python.JETM2.JETM2Cfg ( flags)

Definition at line 103 of file JETM2.py.

103def JETM2Cfg(flags):
104
105 acc = ComponentAccumulator()
106
107 # Get the lists of triggers needed for trigger matching.
108 # This is needed at this scope (for the slimming) and further down in the config chain
109 # for actually configuring the matching, so we create it here and pass it down
110 # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
111 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
112 JETM2TriggerListsHelper = TriggerListsHelper(flags)
113
114 # Skimming, thinning, augmentation, extra content
115 acc.merge(JETM2KernelCfg(flags, name="JETM2Kernel", StreamName = 'StreamDAOD_JETM2', TriggerListsHelper = JETM2TriggerListsHelper))
116
117 # ============================
118 # Define contents of the format
119 # =============================
120 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
121 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
122 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
123
124 JETM2SlimmingHelper = SlimmingHelper("JETM2SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
125
126 JETM2SlimmingHelper.SmartCollections = ["EventInfo","InDetTrackParticles", "PrimaryVertices",
127 "Electrons", "Photons", "Muons", "TauJets",
128 "MET_Baseline_AntiKt4EMPFlow",
129 "AntiKt4EMTopoNoPtCutJets", "AntiKt4EMPFlowJets",
130 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
131
132 JETM2SlimmingHelper.AllVariables = ["CaloCalFwdTopoTowers",
133 "CHSGChargedParticleFlowObjects","CHSGNeutralParticleFlowObjects",
134 "CHSGlobalClusterMLCorrectedChargedParticleFlowObjects","CHSGlobalClusterMLCorrectedNeutralParticleFlowObjects",
135 "CSSKGChargedParticleFlowObjects","CSSKGNeutralParticleFlowObjects",
136 "Kt4EMTopoOriginEventShape","Kt4EMPFlowEventShape","Kt4EMPFlowNeutEventShape",
137 "Kt4UFOCSSKEventShape","Kt4UFOCSSKNeutEventShape"]
138
139 # Low-level inputs
140 from DerivationFrameworkJetEtMiss.CommonJETMXContent import ClusterVariables, FlowElementVariables, UFOVariables, TrackingVariables, TrackingVariablesHGTD, FELinks
141 JETM2SlimmingHelper.ExtraVariables += [".".join(["CaloCalTopoClusters"] + ClusterVariables + ["clusterE_ML.clusterE_ML_unc"])]
142 JETM2SlimmingHelper.ExtraVariables += [".".join(["EMOriginTopoClusters"] + ['calM'])]
143 JETM2SlimmingHelper.ExtraVariables += [".".join(["GlobalChargedParticleFlowObjects"] + FlowElementVariables)]
144 JETM2SlimmingHelper.ExtraVariables += [".".join(["GlobalNeutralParticleFlowObjects"] + FlowElementVariables)]
145 JETM2SlimmingHelper.ExtraVariables += [".".join(["GlobalClusterMLCorrectedChargedParticleFlowObjects"] + FlowElementVariables)]
146 JETM2SlimmingHelper.ExtraVariables += [".".join(["GlobalClusterMLCorrectedNeutralParticleFlowObjects"] + FlowElementVariables)]
147 JETM2SlimmingHelper.ExtraVariables += [".".join(["UFO"] + UFOVariables)]
148 JETM2SlimmingHelper.ExtraVariables += [".".join(["UFOCSSK"] + UFOVariables)]
149 JETM2SlimmingHelper.ExtraVariables += [".".join(["InDetTrackParticles"] + TrackingVariables)]
150 if flags.GeoModel.Run >= LHCPeriod.Run4:
151 JETM2SlimmingHelper.ExtraVariables += [".".join(["InDetTrackParticles"] + TrackingVariablesHGTD)]
152
153 # Links of physics objects to FlowElements
154 JETM2SlimmingHelper.ExtraVariables += FELinks
155
156 # Detailed substructure information
157 from DerivationFrameworkJetEtMiss.CommonJETMXContent import ExtraJSSVariables
158 JETM2SlimmingHelper.ExtraVariables += [".".join(["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"] + ExtraJSSVariables)]
159
160 JETM2SlimmingHelper.ExtraVariables += ["AntiKt4EMPFlowJets.GhostTower.IsoFixedCone5Pt.IsoFixedCone5PtPUsub.constituentLinks",
161 "AntiKt4EMTopoNoPtCutJets.IsoFixedCone5Pt.IsoFixedCone5PtPUsub.constituentLinks",
162 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.SizeParameter.GhostTrack.constituentLinks",
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"]
168
169 JETM2SlimmingHelper.AppendToDictionary.update({
170 "FEAssociationMap" : "xAOD::MissingETAssociationMap",
171 "FEAssociationMapAux": "xAOD::AuxContainerBase",
172 })
173 JETM2SlimmingHelper.AllVariables += ["FEAssociationMap"]
174
175 JETM2SlimmingHelper.AppendToDictionary.update({'CSSKGNeutralParticleFlowObjects': 'xAOD::FlowElementContainer',
176 'CSSKGNeutralParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
177 'CSSKGChargedParticleFlowObjects': 'xAOD::FlowElementContainer',
178 'CSSKGChargedParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
179 'CHSGlobalClusterMLCorrectedNeutralParticleFlowObjects': 'xAOD::FlowElementContainer',
180 'CHSGlobalClusterMLCorrectedNeutralParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
181 'CHSGlobalClusterMLCorrectedChargedParticleFlowObjects': 'xAOD::FlowElementContainer',
182 'CHSGlobalClusterMLCorrectedChargedParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
183 'GlobalClusterMLCorrectedChargedParticleFlowObjects': 'xAOD::FlowElementContainer',
184 'GlobalClusterMLCorrectedChargedParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
185 'GlobalClusterMLCorrectedNeutralParticleFlowObjects': 'xAOD::FlowElementContainer',
186 'GlobalClusterMLCorrectedNeutralParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
187 'UFO': 'xAOD::FlowElementContainer',
188 'UFOAux': 'xAOD::FlowElementAuxContainer',
189 'Kt4UFOCSSKEventShape': 'xAOD::EventShape',
190 'Kt4UFOCSSKEventShapeAux': 'xAOD::EventShapeAuxInfo',
191 'Kt4UFOCSSKNeutEventShape': 'xAOD::EventShape',
192 'Kt4UFOCSSKNeutEventShapeAux': 'xAOD::EventShapeAuxInfo',
193 'AntiKt4EMTopoNoPtCutJets': 'xAOD::JetContainer',
194 'AntiKt4EMTopoNoPtCutJetsAux': 'xAOD::JetAuxContainer',
195 })
196
197 from DerivationFrameworkJetEtMiss.JetCommonConfig import addOriginCorrectedClustersToSlimmingTool
198 addOriginCorrectedClustersToSlimmingTool(JETM2SlimmingHelper,writeLC=True,writeEM=True)
199
200 # Truth containers
201 if flags.Input.isMC:
202
203 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
204 addTruth3ContentToSlimmerTool(JETM2SlimmingHelper)
205
206 JETM2SlimmingHelper.AppendToDictionary.update({'TruthParticles': 'xAOD::TruthParticleContainer',
207 'TruthParticlesAux': 'xAOD::TruthParticleAuxContainer'})
208
209 JETM2SlimmingHelper.AllVariables += ["TruthTopQuarkWithDecayParticles","TruthTopQuarkWithDecayVertices","TruthHFWithDecayParticles",
210 "AntiKt4TruthJets", "InTimeAntiKt4TruthJets", "OutOfTimeAntiKt4TruthJets",
211 "TruthParticles", "TruthVertices","TruthEvents"]
212
213 JETM2SlimmingHelper.SmartCollections += ["AntiKt4TruthJets","AntiKt4TruthWZJets",
214 "AntiKt10TruthJets","AntiKt10TruthDressedWZSoftDropBeta100Zcut10Jets"]
215
216 JETM2SlimmingHelper.ExtraVariables += ["AntiKt10TruthSoftDropBeta100Zcut10Jets.SizeParameter.constituentLinks",
217 "AntiKt10TruthDressedWZSoftDropBeta100Zcut10Jets.constituentLinks",
218 "AntiKt10TruthDressedWZJets.constituentLinks",
219 "AntiKt10TruthJets.constituentLinks",
220 "AntiKt4TruthJets.constituentLinks",
221 "AntiKt4TruthWZJets.IsoFixedCone5Pt.constituentLinks",
222 "AntiKt4TruthDressedWZJets.IsoFixedCone5Pt.constituentLinks",
223 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.GhostTQuarksFinalCount.GhostHBosonsCount.GhostZBosonsCount.GhostWBosonsCount",
224 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.GhostTQuarksFinalPt.GhostHBosonsPt.GhostZBosonsPt.GhostWBosonsPt",
225 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.GhostBHadronsFinalPt.GhostCHadronsFinalPt"]
226
227 # Trigger content
228 JETM2SlimmingHelper.IncludeTriggerNavigation = False
229 JETM2SlimmingHelper.IncludeJetTriggerContent = False
230 JETM2SlimmingHelper.IncludeMuonTriggerContent = False
231 JETM2SlimmingHelper.IncludeEGammaTriggerContent = False
232 JETM2SlimmingHelper.IncludeTauTriggerContent = False
233 JETM2SlimmingHelper.IncludeEtMissTriggerContent = False
234 JETM2SlimmingHelper.IncludeBJetTriggerContent = False
235 JETM2SlimmingHelper.IncludeBPhysTriggerContent = False
236 JETM2SlimmingHelper.IncludeMinBiasTriggerContent = False
237
238 jetOutputList = ["AntiKt4UFOCSSKNoPtCutJets","AntiKt4EMPFlowNoPtCutJets", "AntiKt4EMPFlowMLJets", "AntiKt4MLTopoJets"]
239 from DerivationFrameworkJetEtMiss.JetCommonConfig import addJetsToSlimmingTool
240 addJetsToSlimmingTool(JETM2SlimmingHelper, jetOutputList, JETM2SlimmingHelper.SmartCollections)
241
242 # Output stream
243 JETM2ItemList = JETM2SlimmingHelper.GetItemList()
244 acc.merge(OutputStreamCfg(flags, "DAOD_JETM2", ItemList=JETM2ItemList, AcceptAlgs=["JETM2Kernel"]))
245 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_JETM2", AcceptAlgs=["JETM2Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
246
247 return acc
248

◆ JETM2ExtraContentCfg()

python.JETM2.JETM2ExtraContentCfg ( flags)

Definition at line 46 of file JETM2.py.

46def JETM2ExtraContentCfg(flags):
47
48 acc = ComponentAccumulator()
49
50 from JetRecConfig.JetRecConfig import JetRecCfg, getInputAlgs, getConstitPJGAlg
51 from JetRecConfig.JetInputConfig import buildEventShapeAlg
52 from JetRecConfig.StandardJetConstits import stdConstitDic as cst
53 from JetRecConfig.StandardSmallRJets import AntiKt4UFOCSSKNoPtCut, AntiKt4EMPFlowNoPtCut, AntiKt4EMPFlowML, AntiKt4EMTopoNoPtCut, AntiKt4MLTopo
54 from JetRecConfig.StandardLargeRJets import AntiKt10TruthDressedWZSoftDrop
55
56 #=======================================
57 # CHS R = 0.4 UFO jets
58 #=======================================
59
60 algs = getInputAlgs(cst.UFO, flags=flags)
61 for alg in algs:
62 if isinstance(alg, ComponentAccumulator):
63 acc.merge(alg)
64 else:
65 acc.addEventAlgo(alg)
66
67 #=======================================
68 # NoPtCut containers
69 #=======================================
70 jetList = [AntiKt4UFOCSSKNoPtCut,AntiKt4EMPFlowNoPtCut,AntiKt4EMPFlowML,AntiKt4EMTopoNoPtCut, AntiKt4MLTopo]
71
72 #=======================================
73 # R = 1.0 truth WZ Dressed jets
74 #=======================================
75 if flags.Input.isMC:
76 jetList += [AntiKt10TruthDressedWZSoftDrop]
77
78
79 for jd in jetList:
80 acc.merge(JetRecCfg(flags,jd))
81
82 #=======================================
83 # UFO CSSK event shape
84 #=======================================
85
86 acc.addEventAlgo(buildEventShapeAlg(cst.UFOCSSK,'', suffix=None))
87 acc.addEventAlgo(getConstitPJGAlg(cst.UFOCSSK, suffix='Neut'))
88 acc.addEventAlgo(buildEventShapeAlg(cst.UFOCSSK,'', suffix='Neut'))
89
90 #=======================================
91 # More detailed truth information
92 #=======================================
93
94 if flags.Input.isMC:
95 from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddTopQuarkAndDownstreamParticlesCfg, AddTruthCollectionNavigationDecorationsCfg
96 acc.merge(AddTopQuarkAndDownstreamParticlesCfg(flags))
97 acc.merge(AddTruthCollectionNavigationDecorationsCfg(flags, TruthCollections=["TruthTopQuarkWithDecayParticles","TruthBosonsWithDecayParticles"],prefix='Top'))
98
99
100 return acc
101
102

◆ JETM2KernelCfg()

python.JETM2.JETM2KernelCfg ( flags,
name = 'JETM2Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for JETM2

Definition at line 11 of file JETM2.py.

11def JETM2KernelCfg(flags, name='JETM2Kernel', **kwargs):
12 """Configure the derivation framework driving algorithm (kernel) for JETM2"""
13 acc = ComponentAccumulator()
14
15 # Common augmentations
16 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
17 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
18
19
20 from AssociationUtils.AssociationUtilsConfig import FEAssociationCfg
21 acc.merge(FEAssociationCfg(flags))
22
23 if flags.Input.isMC:
24 # thinning tools:
25 truthThinningTool = CompFactory.DerivationFramework.MenuTruthThinning(name = "JETM2TruthThinning",
26 StreamName = kwargs['StreamName'],
27 WriteAllStable = True,
28 WritePartons = False,
29 WriteHadrons = False,
30 WriteBHadrons = True,
31 WriteCHadrons = False,
32 WriteGeant = False,
33 WriteFirstN = 10)
34
35 acc.addPublicTool(truthThinningTool)
36
37 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
38 acc.addEventAlgo(DerivationKernel(name, ThinningTools = [truthThinningTool] if flags.Input.isMC else []))
39
40 # Extra jet content:
41 acc.merge(JETM2ExtraContentCfg(flags))
42
43 return acc
44
45