ATLAS Offline Software
Loading...
Searching...
No Matches
TOPQ7 Namespace Reference

Functions

 BoostedTTbarSkimmingToolCfg (flags)
 TOPQ7KernelCfg (flags, name='TOPQ7Kernel', **kwargs)
 TOPQ7CoreCfg (flags, name_tag='TOPQ7', StreamName='StreamDAOD_TOPQ7', TriggerListsHelper=None, addExtraVariables=None)
 TOPQ7Cfg (flags)

Variables

 logTOPQ7 = logging.getLogger('TOPQ7')

Function Documentation

◆ BoostedTTbarSkimmingToolCfg()

TOPQ7.BoostedTTbarSkimmingToolCfg ( flags)

Definition at line 17 of file TOPQ7.py.

17def BoostedTTbarSkimmingToolCfg(flags):
18 acc = ComponentAccumulator()
19 acc.addPublicTool(
20 CompFactory.DerivationFramework.BoostedTTbarSkimmingToolAlg(
21 name="TOPQ7BoostedTTbarSkimmingTool",
22 ttbarCut = 700000.0
23 ),
24 primary=True
25 )
26 return acc
27
28
29# Main algorithm config

◆ TOPQ7Cfg()

TOPQ7.TOPQ7Cfg ( flags)

Definition at line 288 of file TOPQ7.py.

288def TOPQ7Cfg(flags):
289
290 logTOPQ7.info('****************** STARTING TOPQ7 *****************')
291
292 stream_name = 'StreamDAOD_TOPQ7'
293 acc = ComponentAccumulator()
294
295 # Get the lists of triggers needed for trigger matching.
296 # This is needed at this scope (for the slimming) and further down in the config chain
297 # for actually configuring the matching, so we create it here and pass it down
298 # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
299 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
300 TOPQ7TriggerListsHelper = TriggerListsHelper(flags)
301
302 # Common augmentations
303 acc.merge(TOPQ7KernelCfg(
304 flags,
305 name="TOPQ7Kernel",
306 StreamName = stream_name,
307 TriggerListsHelper = TOPQ7TriggerListsHelper
308 ))
309 # TOPQ7 content
310 acc.merge(TOPQ7CoreCfg(
311 flags,
312 "TOPQ7",
313 StreamName = stream_name,
314 TriggerListsHelper = TOPQ7TriggerListsHelper
315 ))
316
317 return acc

◆ TOPQ7CoreCfg()

TOPQ7.TOPQ7CoreCfg ( flags,
name_tag = 'TOPQ7',
StreamName = 'StreamDAOD_TOPQ7',
TriggerListsHelper = None,
addExtraVariables = None )

Definition at line 98 of file TOPQ7.py.

98def TOPQ7CoreCfg(flags, name_tag='TOPQ7', StreamName='StreamDAOD_TOPQ7', TriggerListsHelper=None, addExtraVariables=None):
99
100 if TriggerListsHelper is None:
101 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
102 TriggerListsHelper = TriggerListsHelper(flags)
103
104 acc = ComponentAccumulator()
105
106
107 from DerivationFrameworkHiggs.HiggsPhysContent import HiggsAugmentationAlgsCfg
108 acc.merge(HiggsAugmentationAlgsCfg(flags))
109
110
112 from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
113 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite = False, stream_name = StreamName))
114
115
116 from LeptonTaggers.LeptonTaggersConfig import DecoratePLITAlgsCfg
117 acc.merge(DecoratePLITAlgsCfg(flags))
118
119 #===================================================
120 # HEAVY FLAVOR CLASSIFICATION FOR ttbar+jets EVENTS
121 #===================================================
122 from DerivationFrameworkMCTruth.HFClassificationCommonConfig import HFClassificationCommonCfg
123 acc.merge(HFClassificationCommonCfg(flags))
124
125 # ============================
126 # Define contents of the format
127 # =============================
128 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
129 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
130 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
131
132 TOPQ7SlimmingHelper = SlimmingHelper(name_tag+"SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
133 TOPQ7SlimmingHelper.SmartCollections = ["EventInfo",
134 "Electrons",
135 "Photons",
136 "Muons",
137 "PrimaryVertices",
138 "InDetTrackParticles",
139 "AntiKt4EMTopoJets",
140 "AntiKt4EMPFlowJets",
141 "MET_Baseline_AntiKt4EMTopo",
142 "MET_Baseline_AntiKt4EMPFlow",
143 "TauJets",
144 "TauJets_MuonRM",
145 "DiTauJets",
146 "DiTauJetsLowPt",
147 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
148 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
149 ]
150 if flags.Tau.TauEleRM_isAvailable:
151 TOPQ7SlimmingHelper.SmartCollections.append("TauJets_EleRM")
152
153 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
154 StaticContent = []
155 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
156 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
157 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
158 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
159 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
160 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
161 StaticContent += ["xAOD::VertexContainer#NVSI_SecVrt_Tight"]
162 StaticContent += ["xAOD::VertexAuxContainer#NVSI_SecVrt_TightAux."+excludedVertexAuxData]
163
164 TOPQ7SlimmingHelper.StaticContent = StaticContent
165
166 # Extra content
167 TOPQ7SlimmingHelper.ExtraVariables += ["AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.IsoFixedCone5PtPUsub",
168 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.isJvtHS.isJvtPU.IsoFixedCone5PtPUsub",
169 "TruthPrimaryVertices.t.x.y.z",
170 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
171 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification.HF_ClassificationC5J20.HF_ClassificationC5J25.HF_ClassificationC15J20.HF_ClassificationC15J25",
172 "TauJets.dRmax.etOverPtLeadTrk",
173 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
174 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
175 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey",
176 "HLT_AnomDet_ComboHypo.adScore"]
177
178 if addExtraVariables:
179 TOPQ7SlimmingHelper.ExtraVariables += addExtraVariables
180
181 if flags.Tau.TauEleRM_isAvailable:
182 TOPQ7SlimmingHelper.ExtraVariables += ["TauJets_EleRM.dRmax.etOverPtLeadTrk"]
183
184 # IFF extra content
185 from LeptonTaggers.LeptonTaggersConfig import GetExtraPLITVariablesForDxAOD
186 TOPQ7SlimmingHelper.ExtraVariables += GetExtraPLITVariablesForDxAOD()
187
188 # boosted jet taggers
189 TOPQ7SlimmingHelper.ExtraVariables += ["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthJetMass",
190 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthJetPt",
191 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthGroomedJetMass",
192 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthGroomedJetPt",
193 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthJetMass",
194 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthJetPt",
195 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthGroomedJetMass",
196 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthGroomedJetPt"]
197
198 # Truth extra content
199 if flags.Input.isMC:
200
201 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
202 addTruth3ContentToSlimmerTool(TOPQ7SlimmingHelper)
203 TOPQ7SlimmingHelper.AllVariables += ['TruthLHEParticles','InTimeAntiKt4TruthJets','OutOfTimeAntiKt4TruthJets']
204 TOPQ7SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
205 "Muons.TruthLink",
206 "Photons.TruthLink",
207 "AntiKt4TruthDressedWZJets.IsoFixedCone5Pt.HFHadronOriginID",
208 "TruthHFWithDecayParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.parentLinks.childLinks.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status",
209 "TruthHFWithDecayVertices.incomingParticleLinks.outgoingParticleLinks.uid.status.x.y.z.t",
210 "TruthCharm.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.parentLinks.childLinks.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status.barcode.polarizationPhi.polarizationTheta",
211 "TruthPileupParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status.barcode.PVz.pileupEventNumber.parentHadronID"]
212
213 from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddTauAndDownstreamParticlesCfg
214 acc.merge(AddTauAndDownstreamParticlesCfg(flags))
215 TOPQ7SlimmingHelper.ExtraVariables += ["TruthTausWithDecayParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status",
216 "TruthTausWithDecayVertices.incomingParticleLinks.outgoingParticleLinks.uid.status.x.y.z.t"]
217
218 #parton jets
219 TOPQ7SlimmingHelper.AppendToDictionary.update({
220 "PartonJets": "xAOD::JetContainer",
221 "PartonJetsAux": "xAOD::JetAuxContainer"
222 })
223
224 TOPQ7SlimmingHelper.AllVariables += ["PartonJets"]
225
226
227
228 from DerivationFrameworkHiggs.HiggsPhysContent import setupHiggsSlimmingVariables
229 setupHiggsSlimmingVariables(flags, TOPQ7SlimmingHelper)
230
231
232 TOPQ7SlimmingHelper.AllVariables += [ 'AFPSiHitContainer', 'AFPToFHitContainer' ]
233
234
235 TOPQ7SlimmingHelper.AppendToDictionary.update({'MET_Core_AntiKt4EMPFlowHR':'xAOD::MissingETContainer', 'MET_Core_AntiKt4EMPFlowHRAux':'xAOD::MissingETAuxContainer',
236 'METAssoc_AntiKt4EMPFlowHR':'xAOD::MissingETAssociationMap', 'METAssoc_AntiKt4EMPFlowHRAux':'xAOD::MissingETAuxAssociationMap'})
237
238 TOPQ7SlimmingHelper.AllVariables += ['METAssoc_AntiKt4EMPFlowHR']
239
240 TOPQ7SlimmingHelper.ExtraVariables += ['Muons.UEcorr_Pt','Electrons.UEcorr_Pt','MET_Core_AntiKt4EMPFlowHR.name.mpx.mpy.sumet.source']
241
242 # Trigger content
243 TOPQ7SlimmingHelper.IncludeTriggerNavigation = False
244 TOPQ7SlimmingHelper.IncludeJetTriggerContent = False
245 TOPQ7SlimmingHelper.IncludeMuonTriggerContent = False
246 TOPQ7SlimmingHelper.IncludeEGammaTriggerContent = False
247 TOPQ7SlimmingHelper.IncludeTauTriggerContent = False
248 TOPQ7SlimmingHelper.IncludeEtMissTriggerContent = False
249 TOPQ7SlimmingHelper.IncludeBJetTriggerContent = False
250 TOPQ7SlimmingHelper.IncludeBPhysTriggerContent = False
251 TOPQ7SlimmingHelper.IncludeMinBiasTriggerContent = False
252 # Compact b-jet trigger matching info
253 TOPQ7SlimmingHelper.IncludeBJetTriggerByYearContent = True
254
255 # Trigger matching
256 # Run 2
257 if flags.Trigger.EDMVersion == 2:
258 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
259 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper,
260 OutputContainerPrefix = "TrigMatch_",
261 TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
262 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper,
263 OutputContainerPrefix = "TrigMatch_",
264 TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
265 # Run 3, or Run 2 with navigation conversion
266 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
267 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
268 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(TOPQ7SlimmingHelper)
269
270 # L1 trigger objects
271 from Campaigns.Utils import getDataYear
272 if getDataYear(flags) >= 2024:
273 # Run 3 with Phase I jet RoIs.
274 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddjFexRoIsToSlimmingHelper
275 AddjFexRoIsToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper)
276 elif getDataYear(flags) >= 2015:
277 # Run 2 and early Run 3, legacy L1 RoIs
278 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddLegacyL1JetRoIsToSlimmingHelper
279 AddLegacyL1JetRoIsToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper)
280
281 # Output stream
282 TOPQ7ItemList = TOPQ7SlimmingHelper.GetItemList()
283 acc.merge(OutputStreamCfg(flags, "DAOD_"+name_tag, ItemList=TOPQ7ItemList, AcceptAlgs=[name_tag+"Kernel"]))
284 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_"+name_tag, AcceptAlgs=[name_tag+"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
285
286 return acc
287

◆ TOPQ7KernelCfg()

TOPQ7.TOPQ7KernelCfg ( flags,
name = 'TOPQ7Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for TOPQ7

Definition at line 30 of file TOPQ7.py.

30def TOPQ7KernelCfg(flags, name='TOPQ7Kernel', **kwargs):
31 """Configure the derivation framework driving algorithm (kernel) for TOPQ7"""
32 acc = ComponentAccumulator()
33
34 from TrkConfig.VertexFindingFlags import VertexSortingSetup
35 if flags.Tracking.PriVertex.sortingSetup is VertexSortingSetup.GNNSorting:
36 from DerivationFrameworkPhys.GNNVertexConfig import GNNVertexCfg
37 acc.merge(GNNVertexCfg(flags))
38
39 # Common augmentations
40 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
41 acc.merge(PhysCommonAugmentationsCfg(
42 flags,
43 TriggerListsHelper = kwargs['TriggerListsHelper']
44 ))
45
46 # Thinning tools
47 # These are set up in PhysCommonThinningConfig. Only thing needed here the list of tools to schedule
48 nametag = name.replace('Kernel', '') #get the name to label the tools below such that other formats can use this KernelCfg
49 thinningToolsArgs = {
50 'TrackParticleThinningToolName' : nametag+"TrackParticleThinningTool",
51 'MuonTPThinningToolName' : nametag+"MuonTPThinningTool",
52 'TauJetThinningToolName' : nametag+"TauJetThinningTool",
53 'TauJets_MuonRMThinningToolName' : nametag+"TauJets_MuonRMThinningTool",
54 'DiTauThinningToolName' : nametag+"DiTauThinningTool",
55 'DiTauTPThinningToolName' : nametag+"DiTauTPThinningTool",
56 'DiTauLowPtThinningToolName' : nametag+"DiTauLowPtThinningTool",
57 'DiTauLowPtTPThinningToolName' : nametag+"DiTauLowPtTPThinningTool",
58 }
59 # for AOD produced before 24.0.17, the electron removal tau is not available
60 if flags.Tau.TauEleRM_isAvailable:
61 thinningToolsArgs['TauJets_EleRMThinningToolName'] = nametag+"TauJets_EleRMThinningTool"
62 # Configure the thinning tools
63 from DerivationFrameworkPhys.PhysCommonThinningConfig import PhysCommonThinningCfg
64 acc.merge(PhysCommonThinningCfg(flags, StreamName = kwargs['StreamName'], **thinningToolsArgs))
65 # Get them from the CA so they can be added to the kernel
66 thinningTools = []
67 for key in thinningToolsArgs:
68 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
69
70
71 #Skimming tool and augmentation - boosted ttbar semilep selection and building parton jets
72 skimmingTools = []
73 augmentationTools = []
74
75 if flags.Input.isMC:
76 # Skimming
77 skimmingTool = acc.getPrimaryAndMerge(BoostedTTbarSkimmingToolCfg(flags))
78 skimmingTools.append(skimmingTool)
79
80 # Parton jet augmentation
81 partonTool = CompFactory.DerivationFramework.PartonJetAugmentationTool("TOPQ7PartonJetTool")
82 acc.addPublicTool(partonTool)
83 augmentationTools.append(partonTool)
84
85
86 # The kernel algorithm itself
87 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
88 acc.addEventAlgo(
89 DerivationKernel(
90 name,
91 ThinningTools = thinningTools,
92 SkimmingTools=skimmingTools,
93 AugmentationTools=augmentationTools
94 ))
95 return acc
96
97

Variable Documentation

◆ logTOPQ7

TOPQ7.logTOPQ7 = logging.getLogger('TOPQ7')

Definition at line 15 of file TOPQ7.py.