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

Functions

 Muon5MumuSelectionCfg (flags, MuonContainer="Muons", IdTrackContainer="InDetTrackParticles", applyTrigger=False)
 Muon5ElElSelectionCfg (flags)
 MUON5KernelCfg (flags, name='MUON5Kernel', **kwargs)
 MUON5Cfg (flags)

Function Documentation

◆ MUON5Cfg()

python.MUON5.MUON5Cfg ( flags)

Definition at line 312 of file MUON5.py.

312def MUON5Cfg(flags):
313 stream_name = 'StreamDAOD_MUON5'
314 acc = ComponentAccumulator()
315
316 # Get the lists of triggers needed for trigger matching.
317 # This is needed at this scope (for the slimming) and further down in the config chain
318 # for actually configuring the matching, so we create it here and pass it down
319 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
320 MUON5TriggerListsHelper = TriggerListsHelper(flags)
321
322 # J/psi vertexing
323 from DerivationFrameworkMuons.JPsiVertexFitSetupCfg import AddMCPJPsiVertexFitCfg
324 acc.merge(AddMCPJPsiVertexFitCfg(flags, prefix = 'MUON5'))
325
326 # Common augmentations
327 acc.merge(MUON5KernelCfg(flags, name="MUON5Kernel", StreamName = stream_name, TriggerListsHelper = MUON5TriggerListsHelper))
328
329 #Adding Lepton Taggers
330 from LeptonTaggers.LeptonTaggersConfig import DecorateImprovedPromptLeptonAlgsCfg, DecoratePLITAlgsCfg
331 acc.merge(DecorateImprovedPromptLeptonAlgsCfg(flags))
332 acc.merge(DecoratePLITAlgsCfg(flags))
333
334 # ============================
335 # Define contents of the format
336 # =============================
337 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
338 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
339 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
340
341 MUON5SlimmingHelper = SlimmingHelper("MUON5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
342 # Many of these are added to AllVariables below as well. We add
343 # these items in both places in case some of the smart collections
344 # add variables from some other collection.
345 MUON5SlimmingHelper.SmartCollections = ["EventInfo",
346 "PrimaryVertices",
347 "InDetTrackParticles",
348 "Electrons",
349 "Photons",
350 "Muons",
351 "AntiKt4EMPFlowJets",
352 "MET_Baseline_AntiKt4EMPFlow",
353 ]
354
355
356 MUON5SlimmingHelper.AllVariables = [
357 "egammaClusters",
358 "CaloCalTopoClusters",
359 "MuonClusterCollection",
360 "TopoClusterIsoCentralEventShape",
361 "TopoClusterIsoForwardEventShape",
362 "GSFConversionVertices",
363 "GSFTrackParticles"
364 "PrimaryVertices",
365 ]
366
367 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
368 StaticContent = []
369 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
370 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
371 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
372 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
373 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
374 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
375 StaticContent += ["CaloCellContainer#DFMUONCellContainer"]
376 StaticContent += ["CaloClusterCellLinkContainer#MuonClusterCollection_links"]
377
378 MUON5SlimmingHelper.StaticContent = StaticContent
379
380 # Extra content
381 CommonEgammaContent= [
382 "ptcone20","ptcone30","ptcone40", "ptvarcone20", "ptvarcone30", "ptvarcone40", "topoetcone30",
383 "neflowisol20", "neflowisol30", "neflowisol40",
384 "ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt500" ,"ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt1000",
385 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500","ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000",
386 "ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt500","ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
387 "ptcone20_Nonprompt_All_MaxWeightTTVA_pt500", "ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000",
388 "ptcone30_Nonprompt_All_MaxWeightTTVA_pt500", "ptcone30_Nonprompt_All_MaxWeightTTVA_pt1000",
389 "ptcone40_Nonprompt_All_MaxWeightTTVA_pt500", "ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
390 "topoetconecoreConeEnergyCorrection"
391 ]
392 ElectronsExtraContent = [
393 ".".join(
394 [
395 "Electrons",
396 "deltaPhiRescaled2","deltaPhiFromLastMeasurement",
397 "originalTrackParticle"
398 ] + CommonEgammaContent
399 )
400 ]
401
402 PhotonsExtraContent = [
403 ".".join(["Photons"] + CommonEgammaContent )
404 ]
405
406 MuonsExtraContent = [
407 ".".join(
408 [
409 "Muons",
410 "MeasEnergyLoss.MeasEnergyLossSigma.EnergyLossSigma.ParamEnergyLoss",
411 "ParamEnergyLossSigmaMinus.ParamEnergyLossSigmaPlus.clusterLink.scatteringCurvatureSignificance",
412 "deltaPhiRescaled2.deltaPhiFromLastMeasurement.scatteringNeighbourSignificance",
413 "ptcone20.ptcone30.ptcone40.ptvarcone20.ptvarcone30.ptvarcone40.topoetcone30",
414 "neflowisol20.neflowisol30.neflowisol40.ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt500",
415 "ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500",
416 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt500",
417 "ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone20_Nonprompt_All_MaxWeightTTVA_pt500",
418 "ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone30_Nonprompt_All_MaxWeightTTVA_pt500",
419 "ptcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone40_Nonprompt_All_MaxWeightTTVA_pt500",
420 "ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
421 "msInnerMatchChi2",
422 ]
423 )
424 ]
425
426 InDetTrackParticlesExtraContent = [
427 ".".join(
428 [
429 "InDetTrackParticles","TTVA_AMVFVertices.TTVA_AMVFWeights",
430 "btagIp_d0.btagIp_z0SinTheta.btagIp_d0Uncertainty.btagIp_z0SinThetaUncertainty",
431 "numberOfNextToInnermostPixelLayerHits.numberOfInnermostPixelLayerSharedHits",
432 "numberOfInnermostPixelLayerSplitHits.numberOfPixelSplitHits.leptonID"
433 ]
434 )
435 ]
436
437 ExtraVariables = ElectronsExtraContent + PhotonsExtraContent + MuonsExtraContent + InDetTrackParticlesExtraContent
438 MUON5SlimmingHelper.ExtraVariables += ExtraVariables
439 MUON5SlimmingHelper.ExtraVariables += [
440 "CombinedMuonTrackParticles.definingParametersCovMatrix.definingParametersCovMatrix.vertexLink",
441 "ExtrapolatedMuonTrackParticles.definingParametersCovMatrix.vertexLink",
442 "MuonSpectrometerTrackParticles.definingParametersCovMatrix.vertexLink",
443 "CaloCalTopoClusters.calE.calEta.calM.calPhi.e_sampl.rawM.rawPhi.rawEta.rawE",
444 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
445 "TauJets.jetLink",
446 ]
447 from LeptonTaggers.LeptonTaggersConfig import GetExtraImprovedPromptVariablesForDxAOD, GetExtraPLITVariablesForDxAOD
448 MUON5SlimmingHelper.ExtraVariables += GetExtraImprovedPromptVariablesForDxAOD()
449 MUON5SlimmingHelper.ExtraVariables += GetExtraPLITVariablesForDxAOD()
450
451 from DerivationFrameworkEGamma.ElectronsCPDetailedContent import ElectronsCPDetailedContent
452 MUON5SlimmingHelper.ExtraVariables += ElectronsCPDetailedContent
453 from DerivationFrameworkEGamma.ElectronsCPDetailedContent import GSFTracksCPDetailedContent
454 MUON5SlimmingHelper.ExtraVariables += GSFTracksCPDetailedContent
455
456 # Truth content
457 if flags.Input.isMC:
458 MUON5SlimmingHelper.SmartCollections += [
459 "AntiKt4TruthJets",
460 "AntiKt4TruthDressedWZJets",
461 ]
462 MUON5SlimmingHelper.AllVariables += [
463 "TruthBottom",
464 "TruthCharm",
465 "TruthElectrons",
466 "TruthMuons",
467 "TruthNeutrinos",
468 "TruthPhotons",
469 "TruthTaus",
470 "TruthEvents",
471 "TruthPrimaryVertices",
472 "TruthVertices",
473 ]
474 MUON5SlimmingHelper.ExtraVariables+= [
475 "TruthPrimaryVertices.t.x.y.z",
476 "InDetTrackParticles.ftagTruthTypeLabel.ftagTruthOriginLabel.ftagTruthVertexIndex"
477 ]
478
479
480 # Trigger content
481 MUON5SlimmingHelper.IncludeTriggerNavigation = False
482 MUON5SlimmingHelper.IncludeJetTriggerContent = False
483 MUON5SlimmingHelper.IncludeMuonTriggerContent = False
484 MUON5SlimmingHelper.IncludeEGammaTriggerContent = False
485 MUON5SlimmingHelper.IncludeTauTriggerContent = False
486 MUON5SlimmingHelper.IncludeEtMissTriggerContent = False
487 MUON5SlimmingHelper.IncludeBJetTriggerContent = False
488 MUON5SlimmingHelper.IncludeBPhysTriggerContent = False
489 MUON5SlimmingHelper.IncludeMinBiasTriggerContent = False
490
491 # Trigger matching
492 # Run 2
493 if flags.Trigger.EDMVersion == 2:
494 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
495 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = MUON5SlimmingHelper,
496 OutputContainerPrefix = "TrigMatch_",
497 TriggerList = MUON5TriggerListsHelper.Run2TriggerNamesTau)
498 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = MUON5SlimmingHelper,
499 OutputContainerPrefix = "TrigMatch_",
500 TriggerList = MUON5TriggerListsHelper.Run2TriggerNamesNoTau)
501 # Run 3, or Run 2 with navigation conversion
502 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
503 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
504 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(MUON5SlimmingHelper)
505
506 # Output stream
507 MUON5ItemList = MUON5SlimmingHelper.GetItemList()
508 acc.merge(OutputStreamCfg(flags, "DAOD_MUON5", ItemList=MUON5ItemList, AcceptAlgs=["MUON5Kernel"]))
509 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_MUON5", AcceptAlgs=["MUON5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
510 return acc

◆ Muon5ElElSelectionCfg()

python.MUON5.Muon5ElElSelectionCfg ( flags)

Definition at line 53 of file MUON5.py.

53def Muon5ElElSelectionCfg(flags):
54 #copied from EGAM1
55 acc = ComponentAccumulator()
56
57 # ====================================================================
58 # 3. di-electron invariant mass for events passing the Z->ee
59 # selection for the e efficiencies with tag and probe.
60 # Based on single e trigger, for reco (central) and ID SF(central)
61 #
62 # 1 tight e, central, pT>25 GeV
63 # 1 e, central, pT>4 GeV
64 # opposite-sign + same-sign
65 # mee>50 GeV (cut applied in skimming step later)
66 # ====================================================================
67
68 requirement_tag = " && ".join(
69 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 24.5*GeV)"]
70 )
71
72 requirement_probe = " && ".join(
73 ["(Electrons.DFCommonElectronsLHLoose)", "(Electrons.pt > 3.0*GeV)"]
74 )
75
76 acc.setPrivateTools(
77 CompFactory.DerivationFramework.EGInvariantMassTool(
78 name="EGAM1_ZEEMassTool3",
79 Object1Requirements=requirement_tag,
80 Object2Requirements=requirement_probe,
81 StoreGateEntryName="EGAM1_DiElectronMass3",
82 Mass1Hypothesis=0.511 * Units.MeV,
83 Mass2Hypothesis=0.511 * Units.MeV,
84 Container1Name="Electrons",
85 Container2Name="Electrons",
86 CheckCharge=False,
87 DoTransverseMass=False,
88 MinDeltaR=0.0,
89 )
90 )
91
92 return acc
93
94
95# Main algorithm config

◆ MUON5KernelCfg()

python.MUON5.MUON5KernelCfg ( flags,
name = 'MUON5Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for MUON5

Definition at line 96 of file MUON5.py.

96def MUON5KernelCfg(flags, name='MUON5Kernel', **kwargs):
97 """Configure the derivation framework driving algorithm (kernel) for MUON5"""
98 acc = ComponentAccumulator()
99
100 stream_name= 'StreamDAOD_MUON5'
101
102 kwargs.setdefault("MuonContainer", "Muons")
103 kwargs.setdefault("IdTrkContainer", "InDetTrackParticles")
104 kwargs.setdefault("MsTrkContainer", "ExtrapolatedMuonTrackParticles")
105 kwargs.setdefault("scheduleThinning", True)
106
107 # --------------------
108 # Common augmentations
109 # --------------------
110 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
111 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
112
113
114 diMuonSelAcc = Muon5MumuSelectionCfg(flags,
115 MuonContainer= kwargs["MuonContainer"],
116 IdTrackContainer=kwargs["IdTrkContainer"])
117 # ------------
118 # Augmentation
119 # ------------
120 # Strings for applying cuts based on augmentations
121 dimuon_flags = ["pass{flag}".format(flag = algo.BranchPrefix) for algo in diMuonSelAcc.getEventAlgos()]
122 skimmingORs = [f"DIMU_{flag} > 0" for flag in dimuon_flags ]
123 acc.merge(diMuonSelAcc)
124
125 # ------------
126 # Augmentation
127 # ------------
128
129 # Augmentation tools
130 MUON5AugmentTools = []
131 muonThinFlags = []
132 trkThinFlags = []
133
134 Muon5ElElSelectionTool = acc.popToolsAndMerge(Muon5ElElSelectionCfg(flags))
135 acc.addPublicTool(Muon5ElElSelectionTool)
136 MUON5AugmentTools.append(Muon5ElElSelectionTool)
137 skimmingORs.append("(count( EGAM1_DiElectronMass3 > 60.0*GeV ) >= 1)")
138
139
140
141 from DerivationFrameworkMuons.TrackIsolationDecoratorConfig import TrackIsolationCfg
142 acc.merge(TrackIsolationCfg(flags, TrackCollection="InDetTrackParticles"))
143 acc.merge(TrackIsolationCfg(flags, TrackCollection="ExtrapolatedMuonTrackParticles"))
144
145 from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
146 contNames = [ "Muons", "Electrons", "Photons" ]
147 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite = False, containerNames = contNames, useSelTools = True, stream_name = stream_name))
148
149
150 from DerivationFrameworkMuons.MuonsToolsConfig import MuonCaloDepositAlgCfg
151 acc.merge(MuonCaloDepositAlgCfg(flags,
152 name = "MuonCaloDepositAlg",
153 ContainerKey="Muons"))
154 acc.merge(MuonCaloDepositAlgCfg(flags,
155 name = "IdTrkCaloDepositDecorator",
156 ContainerKey="InDetTrackParticles"))
158 from BTagging.BTagTrackAugmenterAlgConfig import BTagTrackAugmenterAlgCfg
159 acc.merge(BTagTrackAugmenterAlgCfg(
160 flags,
161 prefix="btagIp_",
162 TrackCollection="InDetTrackParticles",
163 PrimaryVertexCollectionName="PrimaryVertices"
164 ))
165
166 # --------
167 # Skimming
168 # --------
169
170 #we are applying a Zmumu, Zee and a ttbar emu selection. At the moment tauJets selection is not included
171 #emu selection
172 elReq1 = '(Electrons.pt > 25*GeV && abs(Electrons.eta) < 2.5 && Electrons.DFCommonElectronsLHMedium)'
173 elReq2 = '(Electrons.pt > 3*GeV && abs(Electrons.eta) < 2.8 && Electrons.DFCommonElectronsLHLoose)'
174 muReq1 = '(Muons.DFCommonMuonPassPreselection && Muons.DFCommonMuonPassIDCuts && Muons.pt>25*GeV && abs(Muons.eta) <2.5)'
175 muReq2 = '(Muons.DFCommonMuonPassPreselection && Muons.DFCommonMuonPassIDCuts && Muons.pt>3*GeV && abs(Muons.eta) <2.8)'
176
177 el1 = '(count('+elReq1+') >= 1)'
178 el2 = '(count('+elReq2+') >= 1)'
179 mu1 = '(count('+muReq1+') >= 1)'
180 mu2 = '(count('+muReq2+') >= 1)'
181
182 emuSel='(('+el1+"&&"+mu2+')'+'||'+'('+el2+"&&"+mu1+'))'
183 skimmingORs.append(emuSel)
184
185 lepSelection = '||'.join(skimmingORs)
186
187 MUON5SkimmingTools = []
188 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import xAODStringSkimmingToolCfg
189 # if we are running on upgrade MC (no trigger), we disable the TDT inside the skimming tool.
190 # The TDT is not actually used as we skim only on offline objects.
191 SkimArgs={}
192 if not (flags.Reco.EnableTrigger or flags.Trigger.triggerConfig == 'INFILE'):
193 SkimArgs["TrigDecisionTool"] = ""
194 MUON5SkimmingTool1 = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(flags,
195 name = "MUON5SkimmingTool1",
196 expression = lepSelection,
197 **SkimArgs))
198 MUON5SkimmingTools.append(MUON5SkimmingTool1)
199
200 # --------
201 # Thinning
202 # --------
203
204 MUON5ThinningTools = []
205
206 # Track thinning: only keep tracks with |z0| at primary vertex < 10 mm
207 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
208 MUON5TrackThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(flags,
209 name = "MUON5TrackThinningTool",
210 StreamName = stream_name,
211 SelectionString = "abs(DFCommonInDetTrackZ0AtPV) < 35.0 && abs(InDetTrackParticles.eta) < 3.2",
212 InDetTrackParticlesKey = "InDetTrackParticles")
213 )
214
215 MUON5ThinningTools.append(MUON5TrackThinningTool)
216
217 # Thinning tools
218 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import CaloClusterThinningCfg
219 from DerivationFrameworkMuons.MuonsToolsConfig import AnalysisMuonThinningAlgCfg
220
221 # protect against missing forward tracks in Upgrade
222 fwdTracks = "InDetForwardTrackParticles"
223 if fwdTracks not in flags.Input.Collections:
224 fwdTracks = ""
225 acc.merge(AnalysisMuonThinningAlgCfg(flags,
226 name = "AnalysisMuonThinningAlgMUON5",
227 MuonPassFlags = muonThinFlags,
228 TrkPassFlags = trkThinFlags,
229 StreamName = stream_name,
230 IdTrkFwdThinning=fwdTracks))
231
232
233 # keep topoclusters around muons
234 MUON5ThinningTool1 = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
235 name = "MUON5ThinningTool1",
236 StreamName = stream_name,
237 SGKey = "Muons",
238 SelectionString = "Muons.pt>4*GeV",
239 TopoClCollectionSGKey = "CaloCalTopoClusters",
240 ConeSize = 0.5))
241 MUON5ThinningTools.append(MUON5ThinningTool1)
242
243 # keep egammaclusters around electrons
244 MUON5ThinningTool2 = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
245 name = "MUON5ThinningTool2",
246 StreamName = stream_name,
247 SGKey = "Electrons",
248 SelectionString = "Electrons.pt>4*GeV",
249 CaloClCollectionSGKey = "egammaClusters",
250 ConeSize = 0.4))
251 MUON5ThinningTools.append(MUON5ThinningTool2)
252
253 # keep egammaclusters around photons
254 MUON5ThinningTool3 = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
255 name = "MUON5ThinningTool3",
256 StreamName = stream_name,
257 SGKey = "Photons",
258 SelectionString = "Photons.pt>4*GeV",
259 CaloClCollectionSGKey = "egammaClusters",
260 ConeSize = 0.4))
261 MUON5ThinningTools.append(MUON5ThinningTool3)
262
263
264 muon5CellThinAlg = CompFactory.CaloThinCellsByClusterAlg(
265 'MUON5_CaloThinCellsByClusterAlg_MuonClusterCollection',
266 StreamName = stream_name,
267 Clusters = 'MuonClusterCollection',
268 Cells = 'AllCalo')
269 acc.addEventAlgo(muon5CellThinAlg)
270
271
272 if flags.Input.isMC:
273 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import MenuTruthThinningCfg
274 MUON5TruthThinningTool = acc.getPrimaryAndMerge(MenuTruthThinningCfg(flags,
275 name = "MUON5TruthThinningTool",
276 StreamName = stream_name,
277 WritePartons = False,
278 WriteHadrons = False,
279 WriteCHadrons = True,
280 WriteBHadrons = True,
281 WriteGeant = False,
282 WriteTauHad = True,
283 PartonPtThresh = -1.0,
284 WriteBSM = True,
285 WriteBosons = True,
286 WriteBosonProducts = True,
287 WriteBSMProducts = True,
288 WriteTopAndDecays = True,
289 WriteEverything = False,
290 WriteAllLeptons = True,
291 WriteLeptonsNotFromHadrons = False,
292 WriteNotPhysical = False,
293 WriteFirstN = -1,
294 PreserveAncestors = False,
295 PreserveParentsSiblingsChildren = True,
296 PreserveGeneratorDescendants = False))
297 # Not sure what this should be set to nowadays
298 #SimBarcodeOffset = DerivationFrameworkSimBarcodeOffset)
299 MUON5ThinningTools.append(MUON5TruthThinningTool)
300
301 # --------------------
302 # The kernel algorithm
303 # --------------------
304 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
305 acc.addEventAlgo(DerivationKernel(name,
306 AugmentationTools = MUON5AugmentTools,
307 SkimmingTools = MUON5SkimmingTools,
308 ThinningTools = MUON5ThinningTools))
309 return acc
310
311

◆ Muon5MumuSelectionCfg()

python.MUON5.Muon5MumuSelectionCfg ( flags,
MuonContainer = "Muons",
IdTrackContainer = "InDetTrackParticles",
applyTrigger = False )

Definition at line 13 of file MUON5.py.

16 applyTrigger = False):
17 #copied from MUON1
18 acc = ComponentAccumulator()
19 from DerivationFrameworkMuons.MuonsToolsConfig import DiMuonTaggingAlgCfg
20
21 acc.merge(DiMuonTaggingAlgCfg(flags,
22 name = "DiMuonTaggingZmumuOC5",
23 Mu1PtMin = 24*Units.GeV,
24 Mu1AbsEtaMax = 2.5,
25 Mu1RequireQual = True,
26 Mu2PtMin = 3.0*Units.GeV,
27 Mu2RequireQual = True,
28 UseTrackProbe = False,
29 MuonContainerKey = MuonContainer,
30 TrackContainerKey = IdTrackContainer,
31 InvariantMassLow = 60*Units.GeV,
32 IDTrackThinningConeSize = 0.4,
33 applyTrigger = applyTrigger,
34 BranchPrefix = "Muon5ZmumuOC"))
35
36
37 acc.merge(DiMuonTaggingAlgCfg(flags,
38 name = "DiMuonTaggingZmumuSC5",
39 Mu1PtMin = 24*Units.GeV,
40 Mu1AbsEtaMax = 2.5,
41 Mu1RequireQual = True,
42 Mu2PtMin = 3.0*Units.GeV,
43 Mu2RequireQual = True,
44 UseTrackProbe = False,
45 MuonContainerKey = MuonContainer,
46 TrackContainerKey = IdTrackContainer,
47 OppositeCharge = False,
48 applyTrigger = applyTrigger,
49 InvariantMassLow = 60*Units.GeV,
50 BranchPrefix = "Muon5ZmumuSC"))
51 return acc
52