ATLAS Offline Software
Loading...
Searching...
No Matches
InDetMatchingConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3#
4
5'''@file InDetMatchingConfig.py
6@author M. Aparo
7@date 28-03-2024
8@brief CA-based python configurations for matching tools in this package
9'''
10
11from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12from AthenaConfiguration.ComponentFactory import CompFactory
13from AthenaCommon.Logging import logging
14
15
16def DeltaRMatchingTool_trkTruthCfg( flags, name="DeltaRMatchingTool_trkTruth", **kwargs ):
17 '''
18 Tool for Track->Truth matching via DeltaR (and/or pT resolution)
19 '''
20 acc = ComponentAccumulator()
21
22 kwargs.setdefault( "dRmax", flags.PhysVal.IDTPM.currentTrkAna.dRmax )
23 kwargs.setdefault( "pTResMax", flags.PhysVal.IDTPM.currentTrkAna.pTResMax )
24
25 acc.setPrivateTools(
26 CompFactory.IDTPM.DeltaRMatchingTool_trkTruth( name, **kwargs ) )
27 return acc
28
29
30def DeltaRMatchingTool_truthTrkCfg( flags, name="DeltaRMatchingTool_truthTrk", **kwargs ):
31 '''
32 Tool for Truth->Track matching via DeltaR (and/or pT resolution)
33 '''
34 acc = ComponentAccumulator()
35
36 kwargs.setdefault( "dRmax", flags.PhysVal.IDTPM.currentTrkAna.dRmax )
37 kwargs.setdefault( "pTResMax", flags.PhysVal.IDTPM.currentTrkAna.pTResMax )
38
39 acc.setPrivateTools(
40 CompFactory.IDTPM.DeltaRMatchingTool_truthTrk( name, **kwargs ) )
41 return acc
42
43
44def DeltaRMatchingTool_trkCfg( flags, name="DeltaRMatchingTool_trk", **kwargs ):
45 '''
46 Tool for Track->Track matching via DeltaR (and/or pT resolution)
47 '''
48 acc = ComponentAccumulator()
49
50 kwargs.setdefault( "dRmax", flags.PhysVal.IDTPM.currentTrkAna.dRmax )
51 kwargs.setdefault( "pTResMax", flags.PhysVal.IDTPM.currentTrkAna.pTResMax )
52
53 acc.setPrivateTools(
54 CompFactory.IDTPM.DeltaRMatchingTool_trk( name, **kwargs ) )
55 return acc
56
57
58def StableDeltaRMatchingTool_trkTruthCfg( flags, name="StableDeltaRMatchingTool_trkTruth", **kwargs ):
59 '''
60 Tool for Track->Truth matching via DeltaR using the stable matching algorithm
61 '''
62 acc = ComponentAccumulator()
63
64 kwargs.setdefault( "dRmax", flags.PhysVal.IDTPM.currentTrkAna.dRmax )
65
66 acc.setPrivateTools(
67 CompFactory.IDTPM.StableDeltaRMatchingTool_trkTruth( name, **kwargs ) )
68 return acc
69
70
71def StableDeltaRMatchingTool_truthTrkCfg( flags, name="StableDeltaRMatchingTool_truthTrk", **kwargs ):
72 '''
73 Tool for Truth->Track matching via DeltaR using the stable matching algorithm
74 '''
75 acc = ComponentAccumulator()
76
77 kwargs.setdefault( "dRmax", flags.PhysVal.IDTPM.currentTrkAna.dRmax )
78
79 acc.setPrivateTools(
80 CompFactory.IDTPM.StableDeltaRMatchingTool_truthTrk( name, **kwargs ) )
81 return acc
82
83
84def StableDeltaRMatchingTool_trkCfg( flags, name="StableDeltaRMatchingTool_trk", **kwargs ):
85 '''
86 Tool for Track->Track matching via DeltaR using the stable matching algorithm
87 '''
88 acc = ComponentAccumulator()
89
90 kwargs.setdefault( "dRmax", flags.PhysVal.IDTPM.currentTrkAna.dRmax )
91
92 acc.setPrivateTools(
93 CompFactory.IDTPM.StableDeltaRMatchingTool_trk( name, **kwargs ) )
94 return acc
95
96
97def TrackTruthMatchingToolCfg( flags, name="TrackTruthMatchingTool", **kwargs ):
98 '''
99 Tool for Track->Truth matching via 'truthParticleLink' decorations
100 '''
101 acc = ComponentAccumulator()
102
103 kwargs.setdefault( "MatchingTruthProb", flags.PhysVal.IDTPM.currentTrkAna.truthProbCut )
104
105 acc.setPrivateTools(
106 CompFactory.IDTPM.TrackTruthMatchingTool( name, **kwargs ) )
107 return acc
108
109
110def TruthTrackMatchingToolCfg( flags, name="TruthTrackMatchingTool", **kwargs ):
111 '''
112 Tool for Truth->Track matching via 'truthParticleLink' decorations
113 '''
114 acc = ComponentAccumulator()
115
116 kwargs.setdefault( "MatchingTruthProb", flags.PhysVal.IDTPM.currentTrkAna.truthProbCut )
117
118 acc.setPrivateTools(
119 CompFactory.IDTPM.TruthTrackMatchingTool( name, **kwargs ) )
120 return acc
121
122
123def EFTrackMatchingToolCfg( flags, name="EFTrackMatchingTool", **kwargs ):
124 '''
125 Tool for Track->Truth matching via 'truthParticleLink' decorations
126 '''
127 acc = ComponentAccumulator()
128
129 kwargs.setdefault( "MatchingTruthProb", flags.PhysVal.IDTPM.currentTrkAna.truthProbCut )
130
131 acc.setPrivateTools(
132 CompFactory.IDTPM.EFTrackMatchingTool( name, **kwargs ) )
133 return acc
134
135
136def TrackMatchingToolCfg( flags, **kwargs ):
137 '''
138 CA-based configuration for the test-reference matching Tool
139 '''
140 log = logging.getLogger( "TrackMatchingToolCfg" )
141
142 # Stable SeltaR matching
143 if flags.PhysVal.IDTPM.currentTrkAna.MatchingType == "StableDeltaRMatch":
144 log.debug( "Stable deltaR matching configuration chosen." )
145
146
147 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.RefType :
149 flags, name = "StableDeltaRMatchingTool_trkTruth" +
150 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
151
152
153 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.TestType :
155 flags, name = "StableDeltaRMatchingTool_truthTrk" +
156 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
157
158
160 flags, name="StableDeltaRMatchingTool_trk" +
161 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
162
163
164 if flags.PhysVal.IDTPM.currentTrkAna.MatchingType == "DeltaRMatch":
165
166
167 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.RefType :
169 flags, name = "DeltaRMatchingTool_trkTruth" +
170 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
171
172
173 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.TestType :
175 flags, name = "DeltaRMatchingTool_truthTrk" +
176 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
177
178
180 flags, name="DeltaRMatchingTool_trk" +
181 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
182
183
184 if flags.PhysVal.IDTPM.currentTrkAna.MatchingType == "TruthMatch":
185
186
187 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.RefType :
189 flags, name="TrackTruthMatchingTool" +
190 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
191
192
193 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.TestType :
195 flags, name="TruthTrackMatchingTool" +
196 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
197
198 log.warning( "TruthMatch via decorations not configurable if Test or Ref isn't Truth" )
199 log.warning( "Matching will not be executed for TrkAnalysis %s",
200 flags.PhysVal.IDTPM.currentTrkAna.anaTag )
201 return None
202
203
204 if flags.PhysVal.IDTPM.currentTrkAna.MatchingType == "EFTruthMatch":
205 if not flags.Input.isMC:
206 log.error( "Matching EFTruthMatch not available for non-MC samples" )
207 return None
208
209 if ( "Trigger" in flags.PhysVal.IDTPM.currentTrkAna.TestType and
210 "Offline" in flags.PhysVal.IDTPM.currentTrkAna.RefType ):
212 flags, name="EFTrackMatchingTool" +
213 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
214 log.warning( "EFTruthMatch via decorations configurable only with Trigger as Test Offline as Ref" )
215 log.warning( "Matching will not be executed for TrkAnalysis %s",
216 flags.PhysVal.IDTPM.currentTrkAna.anaTag )
217 return None
218
219 log.warning( "Requested not supported matching type: %s",
220 flags.PhysVal.IDTPM.currentTrkAna.MatchingType )
221 log.warning( "Matching will not be executed for TrkAnalysis %s",
222 flags.PhysVal.IDTPM.currentTrkAna.anaTag )
223 return None
TrackMatchingToolCfg(flags, **kwargs)
TruthTrackMatchingToolCfg(flags, name="TruthTrackMatchingTool", **kwargs)
TrackTruthMatchingToolCfg(flags, name="TrackTruthMatchingTool", **kwargs)
StableDeltaRMatchingTool_trkTruthCfg(flags, name="StableDeltaRMatchingTool_trkTruth", **kwargs)
StableDeltaRMatchingTool_trkCfg(flags, name="StableDeltaRMatchingTool_trk", **kwargs)
DeltaRMatchingTool_truthTrkCfg(flags, name="DeltaRMatchingTool_truthTrk", **kwargs)
DeltaRMatchingTool_trkCfg(flags, name="DeltaRMatchingTool_trk", **kwargs)
StableDeltaRMatchingTool_truthTrkCfg(flags, name="StableDeltaRMatchingTool_truthTrk", **kwargs)
EFTrackMatchingToolCfg(flags, name="EFTrackMatchingTool", **kwargs)
DeltaRMatchingTool_trkTruthCfg(flags, name="DeltaRMatchingTool_trkTruth", **kwargs)