136def TrackMatchingToolCfg( flags, **kwargs ):
137 '''
138 CA-based configuration for the test-reference matching Tool
139 '''
140 log = logging.getLogger( "TrackMatchingToolCfg" )
141
142
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 :
148 return StableDeltaRMatchingTool_trkTruthCfg(
149 flags, name = "StableDeltaRMatchingTool_trkTruth" +
150 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
151
152
153 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.TestType :
154 return StableDeltaRMatchingTool_truthTrkCfg(
155 flags, name = "StableDeltaRMatchingTool_truthTrk" +
156 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
157
158
159 return StableDeltaRMatchingTool_trkCfg(
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 :
168 return DeltaRMatchingTool_trkTruthCfg(
169 flags, name = "DeltaRMatchingTool_trkTruth" +
170 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
171
172
173 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.TestType :
174 return DeltaRMatchingTool_truthTrkCfg(
175 flags, name = "DeltaRMatchingTool_truthTrk" +
176 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
177
178
179 return DeltaRMatchingTool_trkCfg(
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 :
188 return TrackTruthMatchingToolCfg(
189 flags, name="TrackTruthMatchingTool" +
190 flags.PhysVal.IDTPM.currentTrkAna.anaTag, **kwargs )
191
192
193 if "Truth" in flags.PhysVal.IDTPM.currentTrkAna.TestType :
194 return TruthTrackMatchingToolCfg(
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 ):
211 return EFTrackMatchingToolCfg(
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