ATLAS Offline Software
Loading...
Searching...
No Matches
TrackIsolationDecoratorConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6# Import the xAOD isolation parameters.
7from xAODPrimitives.xAODIso import xAODIso as isoPar
8deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30]
9deco_topoetcones = [isoPar.topoetcone40, isoPar.topoetcone20]
10deco_prefix = 'MUON_'
11
12def TrackIsolationToolCfg(ConfigFlags,name= "TrackIsolationTool", **kwargs):
13
14 acc = ComponentAccumulator()
15 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import (
16 InDetTrackSelectionTool_TrackTools_Cfg)
17 kwargs.setdefault("TrackSelectionTool",acc.popToolsAndMerge(InDetTrackSelectionTool_TrackTools_Cfg(ConfigFlags,
18 maxZ0SinTheta = 3.,
19 minPt = 1000.,
20 CutLevel = "Loose")))
21
22 TrackIsoTool = CompFactory.xAOD.TrackIsolationTool(name, **kwargs)
23 acc.setPrivateTools(TrackIsoTool)
24 return acc
25
26
28 ConfigFlags, name="MuonTrackIsolationDecorator",
29 ttvaWP = "Nonprompt_All_MaxWeight", trackPt=500., **kwargs):
30
31 result = ComponentAccumulator()
32 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig import isoTTVAToolCfg
33 ttvaTool = result.popToolsAndMerge(
34 isoTTVAToolCfg(ConfigFlags, WorkingPoint=ttvaWP))
35 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import isoTrackSelectionToolCfg
36 trackSelTool = result.popToolsAndMerge(
37 isoTrackSelectionToolCfg(ConfigFlags, minPt=trackPt))
38
39 wpName = "{WP}TTVA_pt{ptCut}".format(WP = ttvaWP, ptCut = trackPt)
40 kwargs.setdefault("customName", wpName)
41
42 kwargs.setdefault("PtMin", 2500.)
43 from IsolationAlgs.IsoToolsConfig import TrackIsolationToolCfg
44 kwargs.setdefault("IsolationTool", result.popToolsAndMerge(
45 TrackIsolationToolCfg(ConfigFlags,
46 TTVATool=ttvaTool,
47 TrackSelectionTool=trackSelTool)))
48 theAlg = CompFactory.DerivationFramework.TrackIsolationDecorAlg(name = name, **kwargs)
49 result.addEventAlgo(theAlg, primary = True)
50 return result
51
52
53def TrackCaloIsolationDecorAlgCfg(ConfigFlags, name = "MuonCaloIsolationDecorator", **kwargs):
54 from IsolationAlgs.IsoToolsConfig import MuonCaloIsolationToolCfg
55 result = ComponentAccumulator()
56 kwargs.setdefault("PtMin", 2500.)
57 kwargs.setdefault("IsolationTool", result.getPrimaryAndMerge(MuonCaloIsolationToolCfg(ConfigFlags,
58 saveOnlyRequestedCorrections=True)))
59 the_alg = CompFactory.DerivationFramework.CaloIsolationDecorAlg(name, **kwargs)
60 result.addEventAlgo(the_alg, primary=True)
61 return result
62
63def TrackPflowIsolationDecorAlgCfg(ConfigFlags, name = "MuonPflowIsolationDecorator", **kwargs):
64 from IsolationAlgs.IsoToolsConfig import MuonCaloIsolationToolCfg
65 result = ComponentAccumulator()
66 kwargs.setdefault("PtMin", 2500.)
67 kwargs.setdefault("IsolationTool", result.getPrimaryAndMerge(MuonCaloIsolationToolCfg(ConfigFlags,
68 saveOnlyRequestedCorrections=True)))
69 the_alg = CompFactory.DerivationFramework.PflowIsolationDecorAlg(name, **kwargs)
70 result.addEventAlgo(the_alg, primary=True)
71 return result
72
73
74def TrackIsolationCfg(ConfigFlags, TrackCollection="InDetTrackParticles", TrackSelections = []):
75 result = ComponentAccumulator()
76 for WP in ['Nonprompt_All_MaxWeight', 'Tight']:
77 for trackPt in 500, 1000:
78 result.merge(MuonTrackIsolationDecorAlgCfg(ConfigFlags,
79 name = "TrackIsoDecorAlg{container}{WP}{Pt}".format(container = TrackCollection,
80 WP = WP, Pt = trackPt),
81 ttvaWP = WP,
82 trackPt = trackPt,
83 TrackCollection = TrackCollection,
84 TrackSelections = TrackSelections))
85 result.merge(TrackCaloIsolationDecorAlgCfg(ConfigFlags,
86 name = "CaloIsoDecorAlg{container}".format(container = TrackCollection),
87 TrackCollection = TrackCollection,
88 TrackSelections = TrackSelections))
89
90 result.merge(TrackPflowIsolationDecorAlgCfg(ConfigFlags,
91 name = "PflowIsoDecorAlg{container}".format(container = TrackCollection),
92 TrackCollection = TrackCollection,
93 TrackSelections = TrackSelections))
94 return result
TrackIsolationCfg(ConfigFlags, TrackCollection="InDetTrackParticles", TrackSelections=[])
TrackPflowIsolationDecorAlgCfg(ConfigFlags, name="MuonPflowIsolationDecorator", **kwargs)
TrackCaloIsolationDecorAlgCfg(ConfigFlags, name="MuonCaloIsolationDecorator", **kwargs)
TrackIsolationToolCfg(ConfigFlags, name="TrackIsolationTool", **kwargs)
MuonTrackIsolationDecorAlgCfg(ConfigFlags, name="MuonTrackIsolationDecorator", ttvaWP="Nonprompt_All_MaxWeight", trackPt=500., **kwargs)