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 307 of file MUON5.py.

307def MUON5Cfg(flags):
308 stream_name = 'StreamDAOD_MUON5'
309 acc = ComponentAccumulator()
310
311 # Get the lists of triggers needed for trigger matching.
312 # This is needed at this scope (for the slimming) and further down in the config chain
313 # for actually configuring the matching, so we create it here and pass it down
314 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
315 MUON5TriggerListsHelper = TriggerListsHelper(flags)
316
317 # J/psi vertexing
318 from DerivationFrameworkMuons.JPsiVertexFitSetupCfg import AddMCPJPsiVertexFitCfg
319 acc.merge(AddMCPJPsiVertexFitCfg(flags, prefix = 'MUON5'))
320
321 # Common augmentations
322 acc.merge(MUON5KernelCfg(flags, name="MUON5Kernel", StreamName = stream_name, TriggerListsHelper = MUON5TriggerListsHelper))
323
324 #Adding Lepton Taggers
325 from LeptonTaggers.LeptonTaggersConfig import DecorateImprovedPromptLeptonAlgsCfg, DecoratePLITAlgsCfg
326 acc.merge(DecorateImprovedPromptLeptonAlgsCfg(flags))
327 acc.merge(DecoratePLITAlgsCfg(flags))
328
329 # ============================
330 # Define contents of the format
331 # =============================
332 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
333 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
334 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
335
336 MUON5SlimmingHelper = SlimmingHelper("MUON5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
337 # Many of these are added to AllVariables below as well. We add
338 # these items in both places in case some of the smart collections
339 # add variables from some other collection.
340 MUON5SlimmingHelper.SmartCollections = ["EventInfo",
341 "PrimaryVertices",
342 "InDetTrackParticles",
343 "Electrons",
344 "Photons",
345 "Muons",
346 "AntiKt4EMPFlowJets",
347 "MET_Baseline_AntiKt4EMPFlow",
348 ]
349
350
351 MUON5SlimmingHelper.AllVariables = [
352 "egammaClusters",
353 "CaloCalTopoClusters",
354 "MuonClusterCollection",
355 "TopoClusterIsoCentralEventShape",
356 "TopoClusterIsoForwardEventShape",
357 "GSFConversionVertices",
358 "GSFTrackParticles"
359 "PrimaryVertices",
360 ]
361
362 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
363 StaticContent = []
364 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
365 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
366 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
367 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
368 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
369 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
370 StaticContent += ["CaloCellContainer#DFMUONCellContainer"]
371 StaticContent += ["CaloClusterCellLinkContainer#MuonClusterCollection_links"]
372
373 MUON5SlimmingHelper.StaticContent = StaticContent
374
375 # Extra content
376 CommonEgammaContent= [
377 "ptcone20","ptcone30","ptcone40", "ptvarcone20", "ptvarcone30", "ptvarcone40", "topoetcone30",
378 "neflowisol20", "neflowisol30", "neflowisol40",
379 "ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt500" ,"ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt1000",
380 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500","ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000",
381 "ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt500","ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
382 "ptcone20_Nonprompt_All_MaxWeightTTVA_pt500", "ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000",
383 "ptcone30_Nonprompt_All_MaxWeightTTVA_pt500", "ptcone30_Nonprompt_All_MaxWeightTTVA_pt1000",
384 "ptcone40_Nonprompt_All_MaxWeightTTVA_pt500", "ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
385 "topoetconecoreConeEnergyCorrection"
386 ]
387 ElectronsExtraContent = [
388 ".".join(
389 [
390 "Electrons",
391 "deltaPhiRescaled2","deltaPhiFromLastMeasurement",
392 "originalTrackParticle"
393 ] + CommonEgammaContent
394 )
395 ]
396
397 PhotonsExtraContent = [
398 ".".join(["Photons"] + CommonEgammaContent )
399 ]
400
401 MuonsExtraContent = [
402 ".".join(
403 [
404 "Muons",
405 "MeasEnergyLoss.MeasEnergyLossSigma.EnergyLossSigma.ParamEnergyLoss",
406 "ParamEnergyLossSigmaMinus.ParamEnergyLossSigmaPlus.clusterLink.scatteringCurvatureSignificance",
407 "deltaPhiRescaled2.deltaPhiFromLastMeasurement.scatteringNeighbourSignificance",
408 "ptcone20.ptcone30.ptcone40.ptvarcone20.ptvarcone30.ptvarcone40.topoetcone30",
409 "neflowisol20.neflowisol30.neflowisol40.ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt500",
410 "ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500",
411 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt500",
412 "ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone20_Nonprompt_All_MaxWeightTTVA_pt500",
413 "ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone30_Nonprompt_All_MaxWeightTTVA_pt500",
414 "ptcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone40_Nonprompt_All_MaxWeightTTVA_pt500",
415 "ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
416 "msInnerMatchChi2",
417 ]
418 )
419 ]
420
421 InDetTrackParticlesExtraContent = [
422 ".".join(
423 [
424 "InDetTrackParticles","TTVA_AMVFVertices.TTVA_AMVFWeights",
425 "btagIp_d0.btagIp_z0SinTheta.btagIp_d0Uncertainty.btagIp_z0SinThetaUncertainty",
426 "numberOfNextToInnermostPixelLayerHits.numberOfInnermostPixelLayerSharedHits",
427 "numberOfInnermostPixelLayerSplitHits.numberOfPixelSplitHits.leptonID"
428 ]
429 )
430 ]
431
432 ExtraVariables = ElectronsExtraContent + PhotonsExtraContent + MuonsExtraContent + InDetTrackParticlesExtraContent
433 MUON5SlimmingHelper.ExtraVariables += ExtraVariables
434 MUON5SlimmingHelper.ExtraVariables += [
435 "CombinedMuonTrackParticles.definingParametersCovMatrix.definingParametersCovMatrix.vertexLink",
436 "ExtrapolatedMuonTrackParticles.definingParametersCovMatrix.vertexLink",
437 "MuonSpectrometerTrackParticles.definingParametersCovMatrix.vertexLink",
438 "CaloCalTopoClusters.calE.calEta.calM.calPhi.e_sampl.rawM.rawPhi.rawEta.rawE",
439 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
440 "TauJets.jetLink",
441 ]
442 from LeptonTaggers.LeptonTaggersConfig import GetExtraImprovedPromptVariablesForDxAOD, GetExtraPLITVariablesForDxAOD
443 MUON5SlimmingHelper.ExtraVariables += GetExtraImprovedPromptVariablesForDxAOD()
444 MUON5SlimmingHelper.ExtraVariables += GetExtraPLITVariablesForDxAOD()
445
446 from DerivationFrameworkEGamma.ElectronsCPDetailedContent import ElectronsCPDetailedContent
447 MUON5SlimmingHelper.ExtraVariables += ElectronsCPDetailedContent
448 from DerivationFrameworkEGamma.ElectronsCPDetailedContent import GSFTracksCPDetailedContent
449 MUON5SlimmingHelper.ExtraVariables += GSFTracksCPDetailedContent
450
451 # Truth content
452 if flags.Input.isMC:
453 MUON5SlimmingHelper.SmartCollections += [
454 "AntiKt4TruthJets",
455 "AntiKt4TruthDressedWZJets",
456 ]
457 MUON5SlimmingHelper.AllVariables += [
458 "TruthBottom",
459 "TruthCharm",
460 "TruthElectrons",
461 "TruthMuons",
462 "TruthNeutrinos",
463 "TruthPhotons",
464 "TruthTaus",
465 "TruthEvents",
466 "TruthPrimaryVertices",
467 "TruthVertices",
468 ]
469 MUON5SlimmingHelper.ExtraVariables+= [
470 "TruthPrimaryVertices.t.x.y.z",
471 "InDetTrackParticles.ftagTruthTypeLabel.ftagTruthOriginLabel.ftagTruthVertexIndex"
472 ]
473
474
475 # Trigger content
476 MUON5SlimmingHelper.IncludeTriggerNavigation = False
477 MUON5SlimmingHelper.IncludeJetTriggerContent = False
478 MUON5SlimmingHelper.IncludeMuonTriggerContent = False
479 MUON5SlimmingHelper.IncludeEGammaTriggerContent = False
480 MUON5SlimmingHelper.IncludeTauTriggerContent = False
481 MUON5SlimmingHelper.IncludeEtMissTriggerContent = False
482 MUON5SlimmingHelper.IncludeBJetTriggerContent = False
483 MUON5SlimmingHelper.IncludeBPhysTriggerContent = False
484 MUON5SlimmingHelper.IncludeMinBiasTriggerContent = False
485
486 # Trigger matching
487 # Run 2
488 if flags.Trigger.EDMVersion == 2:
489 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
490 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = MUON5SlimmingHelper,
491 OutputContainerPrefix = "TrigMatch_",
492 TriggerList = MUON5TriggerListsHelper.Run2TriggerNamesTau)
493 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = MUON5SlimmingHelper,
494 OutputContainerPrefix = "TrigMatch_",
495 TriggerList = MUON5TriggerListsHelper.Run2TriggerNamesNoTau)
496 # Run 3, or Run 2 with navigation conversion
497 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
498 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
499 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(MUON5SlimmingHelper)
500
501 # Output stream
502 MUON5ItemList = MUON5SlimmingHelper.GetItemList()
503 acc.merge(OutputStreamCfg(flags, "DAOD_MUON5", ItemList=MUON5ItemList, AcceptAlgs=["MUON5Kernel"]))
504 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_MUON5", AcceptAlgs=["MUON5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
505 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 kwargs.setdefault("MuonContainer", "Muons")
101 kwargs.setdefault("IdTrkContainer", "InDetTrackParticles")
102 kwargs.setdefault("MsTrkContainer", "ExtrapolatedMuonTrackParticles")
103 kwargs.setdefault("scheduleThinning", True)
104
105 # --------------------
106 # Common augmentations
107 # --------------------
108 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
109 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
110
111
112 diMuonSelAcc = Muon5MumuSelectionCfg(flags,
113 MuonContainer= kwargs["MuonContainer"],
114 IdTrackContainer=kwargs["IdTrkContainer"])
115 # ------------
116 # Augmentation
117 # ------------
118 # Strings for applying cuts based on augmentations
119 dimuon_flags = ["pass{flag}".format(flag = algo.BranchPrefix) for algo in diMuonSelAcc.getEventAlgos()]
120 skimmingORs = [f"DIMU_{flag} > 0" for flag in dimuon_flags ]
121 acc.merge(diMuonSelAcc)
122
123 # ------------
124 # Augmentation
125 # ------------
126
127 # Augmentation tools
128 MUON5AugmentTools = []
129 muonThinFlags = []
130 trkThinFlags = []
131
132 Muon5ElElSelectionTool = acc.popToolsAndMerge(Muon5ElElSelectionCfg(flags))
133 acc.addPublicTool(Muon5ElElSelectionTool)
134 MUON5AugmentTools.append(Muon5ElElSelectionTool)
135 skimmingORs.append("(count( EGAM1_DiElectronMass3 > 60.0*GeV ) >= 1)")
136
137
138
139 from DerivationFrameworkMuons.TrackIsolationDecoratorConfig import TrackIsolationCfg
140 acc.merge(TrackIsolationCfg(flags,TrackCollection="InDetTrackParticles", TrackSelections = trkThinFlags))
141 acc.merge(TrackIsolationCfg(flags,TrackCollection="ExtrapolatedMuonTrackParticles"))
142
143 from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
144 contNames = [ "Muons", "Electrons", "Photons" ]
145 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite = False, containerNames = contNames, useSelTools = True, stream_name = kwargs['StreamName']))
146
147
148 from DerivationFrameworkMuons.MuonsToolsConfig import MuonCaloDepositAlgCfg
149 acc.merge(MuonCaloDepositAlgCfg(flags,
150 ContainerKey="Muons"))
151 acc.merge(MuonCaloDepositAlgCfg(flags,
152 name = "IdTrkCaloDepsitDecorator",
153 ContainerKey="InDetTrackParticles"))
155 from BTagging.BTagTrackAugmenterAlgConfig import BTagTrackAugmenterAlgCfg
156 acc.merge(BTagTrackAugmenterAlgCfg(
157 flags,
158 prefix="btagIp_",
159 TrackCollection="InDetTrackParticles",
160 PrimaryVertexCollectionName="PrimaryVertices"
161 ))
162
163 # --------
164 # Skimming
165 # --------
166
167 #we are applying a Zmumu, Zee and a ttbar emu selection. At the moment tauJets selection is not included
168 #emu selection
169 elReq1 = '(Electrons.pt > 25*GeV && abs(Electrons.eta) < 2.5 && Electrons.DFCommonElectronsLHMedium)'
170 elReq2 = '(Electrons.pt > 3*GeV && abs(Electrons.eta) < 2.8 && Electrons.DFCommonElectronsLHLoose)'
171 muReq1 = '(Muons.DFCommonMuonPassPreselection && Muons.DFCommonMuonPassIDCuts && Muons.pt>25*GeV && abs(Muons.eta) <2.5)'
172 muReq2 = '(Muons.DFCommonMuonPassPreselection && Muons.DFCommonMuonPassIDCuts && Muons.pt>3*GeV && abs(Muons.eta) <2.8)'
173
174 el1 = '(count('+elReq1+') >= 1)'
175 el2 = '(count('+elReq2+') >= 1)'
176 mu1 = '(count('+muReq1+') >= 1)'
177 mu2 = '(count('+muReq2+') >= 1)'
178
179 emuSel='(('+el1+"&&"+mu2+')'+'||'+'('+el2+"&&"+mu1+'))'
180 skimmingORs.append(emuSel)
181
182 lepSelection = '||'.join(skimmingORs)
183
184 MUON5SkimmingTools = []
185 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import xAODStringSkimmingToolCfg
186 # if we are running on upgrade MC (no trigger), we disable the TDT inside the skimming tool.
187 # The TDT is not actually used as we skim only on offline objects.
188 SkimArgs={}
189 if not (flags.Reco.EnableTrigger or flags.Trigger.triggerConfig == 'INFILE'):
190 SkimArgs["TrigDecisionTool"] = ""
191 MUON5SkimmingTool1 = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(flags,
192 name = "MUON5SkimmingTool1",
193 expression = lepSelection,
194 **SkimArgs))
195 MUON5SkimmingTools.append(MUON5SkimmingTool1)
196
197 # --------
198 # Thinning
199 # --------
200
201 MUON5ThinningTools = []
202
203 # Track thinning: only keep tracks with |z0| at primary vertex < 10 mm
204 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
205 MUON5TrackThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(flags,
206 name = "MUON5TrackThinningTool",
207 StreamName = kwargs['StreamName'],
208 SelectionString = "abs(DFCommonInDetTrackZ0AtPV) < 35.0 && abs(InDetTrackParticles.eta) < 3.2",
209 InDetTrackParticlesKey = "InDetTrackParticles")
210 )
211
212 MUON5ThinningTools.append(MUON5TrackThinningTool)
213
214 # Thinning tools
215 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import CaloClusterThinningCfg
216 from DerivationFrameworkCalo.CaloCellDFGetterConfig import thinCaloCellsForDFCfg
217 from DerivationFrameworkMuons.MuonsToolsConfig import AnalysisMuonThinningAlgCfg
218
219 # protect against missing forward tracks in Upgrade
220 fwdTracks = "InDetForwardTrackParticles"
221 if fwdTracks not in flags.Input.Collections:
222 fwdTracks = ""
223 acc.merge(AnalysisMuonThinningAlgCfg(flags,
224 MuonPassFlags = muonThinFlags,
225 TrkPassFlags = trkThinFlags,
226 StreamName = kwargs['StreamName'],
227 IdTrkFwdThinning=fwdTracks))
228
229
230 # keep topoclusters around muons
231 MUON5ThinningTool1 = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
232 name = "MUON5ThinningTool1",
233 StreamName = kwargs['StreamName'],
234 SGKey = "Muons",
235 SelectionString = "Muons.pt>4*GeV",
236 TopoClCollectionSGKey = "CaloCalTopoClusters",
237 ConeSize = 0.5))
238 MUON5ThinningTools.append(MUON5ThinningTool1)
239
240 # keep egammaclusters around electrons
241 MUON5ThinningTool2 = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
242 name = "MUON5ThinningTool2",
243 StreamName = kwargs['StreamName'],
244 SGKey = "Electrons",
245 SelectionString = "Electrons.pt>4*GeV",
246 CaloClCollectionSGKey = "egammaClusters",
247 ConeSize = 0.4))
248 MUON5ThinningTools.append(MUON5ThinningTool2)
249
250 # keep egammaclusters around photons
251 MUON5ThinningTool3 = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
252 name = "MUON5ThinningTool3",
253 StreamName = kwargs['StreamName'],
254 SGKey = "Photons",
255 SelectionString = "Photons.pt>4*GeV",
256 CaloClCollectionSGKey = "egammaClusters",
257 ConeSize = 0.4))
258 MUON5ThinningTools.append(MUON5ThinningTool3)
259
260
261 acc.merge(thinCaloCellsForDFCfg(flags,
262 inputClusterKeys = ["MuonClusterCollection"],
263 streamName = kwargs['StreamName'],
264 outputCellKey = "DFMUONCellContainer"))
265
266
267 if flags.Input.isMC:
268 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import MenuTruthThinningCfg
269 MUON5TruthThinningTool = acc.getPrimaryAndMerge(MenuTruthThinningCfg(flags,
270 name = "MUON5TruthThinningTool",
271 StreamName = kwargs['StreamName'],
272 WritePartons = False,
273 WriteHadrons = False,
274 WriteCHadrons = True,
275 WriteBHadrons = True,
276 WriteGeant = False,
277 WriteTauHad = True,
278 PartonPtThresh = -1.0,
279 WriteBSM = True,
280 WriteBosons = True,
281 WriteBosonProducts = True,
282 WriteBSMProducts = True,
283 WriteTopAndDecays = True,
284 WriteEverything = False,
285 WriteAllLeptons = True,
286 WriteLeptonsNotFromHadrons = False,
287 WriteNotPhysical = False,
288 WriteFirstN = -1,
289 PreserveAncestors = False,
290 PreserveParentsSiblingsChildren = True,
291 PreserveGeneratorDescendants = False))
292 # Not sure what this should be set to nowadays
293 #SimBarcodeOffset = DerivationFrameworkSimBarcodeOffset)
294 MUON5ThinningTools.append(MUON5TruthThinningTool)
295
296 # --------------------
297 # The kernel algorithm
298 # --------------------
299 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
300 acc.addEventAlgo(DerivationKernel(name,
301 AugmentationTools = MUON5AugmentTools,
302 SkimmingTools = MUON5SkimmingTools,
303 ThinningTools = MUON5ThinningTools))
304 return acc
305
306

◆ 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 = "DiMuonTaggingZmumuOC",
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 = "Muon1ZmumuOC"))
35
36
37 acc.merge(DiMuonTaggingAlgCfg(flags,
38 name = "DiMuonTaggingZmumuSC",
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 = "Muon1ZmumuSC"))
51 return acc
52