5 '''@file InDetSelectionConfig.py
8 @brief CA-based python configurations for selection tools in this package
11 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
12 from AthenaConfiguration.ComponentFactory
import CompFactory
17 CA-based configuration for the Tool to retrieve and select RoIs
21 kwargs.setdefault(
"RoiKey", flags.PhysVal.IDTPM.currentTrkAna.RoiKey )
22 kwargs.setdefault(
"ChainLeg", flags.PhysVal.IDTPM.currentTrkAna.ChainLeg )
23 kwargs.setdefault(
"doTagNProbe", flags.PhysVal.IDTPM.currentTrkAna.doTagNProbe )
24 kwargs.setdefault(
"RoiKeyTag", flags.PhysVal.IDTPM.currentTrkAna.RoiKeyTag )
25 kwargs.setdefault(
"ChainLegTag", flags.PhysVal.IDTPM.currentTrkAna.ChainLegTag )
26 kwargs.setdefault(
"RoiKeyProbe", flags.PhysVal.IDTPM.currentTrkAna.RoiKeyProbe )
27 kwargs.setdefault(
"ChainLegProbe", flags.PhysVal.IDTPM.currentTrkAna.ChainLegProbe )
29 acc.setPrivateTools( CompFactory.IDTPM.RoiSelectionTool( name, **kwargs ) )
36 kwargs.setdefault(
"TriggerTrkParticleContainerName",
37 flags.PhysVal.IDTPM.currentTrkAna.TrigTrkKey )
39 acc.setPrivateTools( CompFactory.IDTPM.TrackRoiSelectionTool( name, **kwargs ) )
46 kwargs.setdefault(
"TriggerVertexContainerName",
47 flags.PhysVal.IDTPM.currentTrkAna.TrigVtxKey )
49 acc.setPrivateTools( CompFactory.IDTPM.VertexRoiSelectionTool( name, **kwargs ) )
56 objStr = flags.PhysVal.IDTPM.currentTrkAna.SelectOfflineObject
57 objQuality = flags.PhysVal.IDTPM.currentTrkAna.ObjectQuality
58 if objQuality ==
"Medium" and "Jet" in objStr :
60 objQuality =
"DRtruthJet"
61 kwargs.setdefault(
"ObjectType", objStr )
62 kwargs.setdefault(
"ObjectQuality", objQuality )
65 kwargs.setdefault(
"TauType", flags.PhysVal.IDTPM.currentTrkAna.TauType )
66 kwargs.setdefault(
"TauNprongs", flags.PhysVal.IDTPM.currentTrkAna.TauNprongs )
69 kwargs.setdefault(
"MatchingTruthProb", flags.PhysVal.IDTPM.currentTrkAna.TruthProbMin )
71 acc.setPrivateTools( CompFactory.IDTPM.TrackObjectSelectionTool( name, **kwargs ) )
79 minHitsVector = flags.PhysVal.IDTPM.currentTrkAna.offlMinHitsVector
80 minPtVector = flags.PhysVal.IDTPM.currentTrkAna.offlMinPtVector
81 maxD0Vector = flags.PhysVal.IDTPM.currentTrkAna.offlMaxD0Vector
82 maxZ0Vector = flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0Vector
83 etaBins = flags.PhysVal.IDTPM.currentTrkAna.offlEtaBins
84 qualityWP = flags.PhysVal.IDTPM.currentTrkAna.OfflineQualityWP
88 if qualityWP ==
"EFTracking" :
89 etaBins = [-1., 2., 2.6, 9999.]
90 minHitsVector = [9, 8, 7]
91 minPtVector = [900., 400., 400.]
92 maxD0Vector = [2., 2., 10.]
93 maxZ0Vector = [150., 150., 150.]
96 kwargs_InDetTrackSelectionTool = {}
98 if flags.PhysVal.IDTPM.currentTrkAna.offlMinPt!=-9999.:
99 kwargs_InDetTrackSelectionTool.setdefault(
"minPt", flags.PhysVal.IDTPM.currentTrkAna.offlMinPt )
100 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsEta!=-9999.:
101 kwargs_InDetTrackSelectionTool.setdefault(
"maxAbsEta", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsEta )
102 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0SinTheta!=-9999.:
103 kwargs_InDetTrackSelectionTool.setdefault(
"maxZ0SinTheta", flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0SinTheta )
104 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0!=-9999.:
105 kwargs_InDetTrackSelectionTool.setdefault(
"maxZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0 )
106 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxD0!=-9999.:
107 kwargs_InDetTrackSelectionTool.setdefault(
"maxD0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxD0 )
108 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNInnermostLayerHits!=-9999.:
109 kwargs_InDetTrackSelectionTool.setdefault(
"minNInnermostLayerHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNInnermostLayerHits )
110 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNBothInnermostLayersHits!=-9999.:
111 kwargs_InDetTrackSelectionTool.setdefault(
"minNBothInnermostLayersHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNBothInnermostLayersHits )
112 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNInnermostLayerSharedHits!=-9999.:
113 kwargs_InDetTrackSelectionTool.setdefault(
"maxNInnermostLayerSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNInnermostLayerSharedHits )
114 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNSiHits!=-9999.:
115 kwargs_InDetTrackSelectionTool.setdefault(
"minNSiHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNSiHits )
116 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiSharedHits!=-9999.:
117 kwargs_InDetTrackSelectionTool.setdefault(
"maxNSiSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiSharedHits )
118 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiHoles!=-9999.:
119 kwargs_InDetTrackSelectionTool.setdefault(
"maxNSiHoles", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiHoles )
120 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNPixelHits!=-9999.:
121 kwargs_InDetTrackSelectionTool.setdefault(
"minNPixelHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNPixelHits )
122 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelSharedHits!=-9999.:
123 kwargs_InDetTrackSelectionTool.setdefault(
"maxNPixelSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelSharedHits )
124 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelHoles!=-9999.:
125 kwargs_InDetTrackSelectionTool.setdefault(
"maxNPixelHoles", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelHoles )
126 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNSctHits!=-9999.:
127 kwargs_InDetTrackSelectionTool.setdefault(
"minNSctHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNSctHits )
128 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctSharedHits!=-9999.:
129 kwargs_InDetTrackSelectionTool.setdefault(
"maxNSctSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctSharedHits )
130 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctHoles!=-9999.:
131 kwargs_InDetTrackSelectionTool.setdefault(
"maxNSctHoles", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctHoles )
132 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSq!=-9999.:
133 kwargs_InDetTrackSelectionTool.setdefault(
"maxChiSq", flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSq )
134 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSqperNdf!=-9999.:
135 kwargs_InDetTrackSelectionTool.setdefault(
"maxChiSqperNdf", flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSqperNdf )
136 if flags.PhysVal.IDTPM.currentTrkAna.offlMinProb!=-9999.:
137 kwargs_InDetTrackSelectionTool.setdefault(
"minProb", flags.PhysVal.IDTPM.currentTrkAna.offlMinProb )
138 kwargs_InDetTrackSelectionTool.setdefault(
"CutLevel", qualityWP )
140 from InDetConfig.InDetTrackSelectionToolConfig
import InDetTrackSelectionToolCfg
143 kwargs.setdefault(
"offlineTool", offlineSelectionTool )
144 kwargs.setdefault(
"maxPt", flags.PhysVal.IDTPM.currentTrkAna.offlMaxPt )
145 kwargs.setdefault(
"minEta", flags.PhysVal.IDTPM.currentTrkAna.offlMinEta )
146 kwargs.setdefault(
"minPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMinPhi )
147 kwargs.setdefault(
"maxPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMaxPhi )
148 kwargs.setdefault(
"minD0", flags.PhysVal.IDTPM.currentTrkAna.offlMinD0 )
149 kwargs.setdefault(
"minZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMinZ0 )
150 kwargs.setdefault(
"minQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMinQoPT )
151 kwargs.setdefault(
"maxQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMaxQoPT )
152 kwargs.setdefault(
"minAbsEta", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsEta )
153 kwargs.setdefault(
"minAbsPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsPhi )
154 kwargs.setdefault(
"maxAbsPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsPhi )
155 kwargs.setdefault(
"minAbsD0", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsD0 )
156 kwargs.setdefault(
"maxAbsD0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsD0 )
157 kwargs.setdefault(
"minAbsZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsZ0 )
158 kwargs.setdefault(
"maxAbsZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsZ0 )
159 kwargs.setdefault(
"minAbsQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsQoPT )
160 kwargs.setdefault(
"maxAbsQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsQoPT )
161 kwargs.setdefault(
"etaBins", etaBins )
162 kwargs.setdefault(
"minHitsVec", minHitsVector )
163 kwargs.setdefault(
"minPtVec", minPtVector )
164 kwargs.setdefault(
"maxD0Vec", maxD0Vector )
165 kwargs.setdefault(
"maxZ0Vec", maxZ0Vector )
167 acc.setPrivateTools( CompFactory.IDTPM.OfflineTrackQualitySelectionTool( name, **kwargs ) )
174 Copy of InDetPhysValMonitoring.InDetPhysValMonitoringConfig InDetRttTruthSelectionToolCfg
175 to handle flags internally in IDTPM, i.e. not relying on IDPVM's (default) flags
180 kwargs.setdefault(
"requireStable",
True )
181 kwargs.setdefault(
"requireCharged",
True )
182 kwargs.setdefault(
"selectedCharge", 0 )
183 kwargs.setdefault(
"maxEta", 4.0
if flags.Detector.GeometryITk
else 2.5 )
185 kwargs.setdefault(
"requireOnlyPrimary",
True )
186 kwargs.setdefault(
"maxProdVertRadius", 300. )
188 kwargs.setdefault(
"minPt", 1000
if flags.Detector.GeometryITk
else 500 )
189 kwargs.setdefault(
"ancestorList", [] )
190 kwargs.setdefault(
"requireSiHit", 0 )
191 kwargs.setdefault(
"Extrapolator",
None )
193 acc.setPrivateTools( CompFactory.AthTruthSelectionTool( name, **kwargs ) )
202 truthMinPt = flags.PhysVal.IDTPM.currentTrkAna.truthMinPt
203 truthMaxPt = flags.PhysVal.IDTPM.currentTrkAna.truthMaxPt
204 truthMaxAbsEta = flags.PhysVal.IDTPM.currentTrkAna.truthMaxAbsEta
205 truthPdgId = flags.PhysVal.IDTPM.currentTrkAna.truthPdgId
208 if "HighPt" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
211 elif "VeryLowPt" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
214 elif "LowPt" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
219 if "Muon" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
221 if "Electron" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
224 if "HighPt" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
227 if "LowPt" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject :
230 truthIsHadron = (
"Hadron" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject )
231 truthIsPion = (
"Pion" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject )
234 truthIsFromB = (
"FromB" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject )
235 truthIsFromC = (
"FromC" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject )
236 truthIsFromHeavyFlav = (
"FromHeavyFlav" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject )
237 truthIsFromLightFlav = (
"FromLightFlav" in flags.PhysVal.IDTPM.currentTrkAna.SelectTruthObject )
242 if truthMinPt!=-9999. : kwargs_base.setdefault(
"minPt", truthMinPt )
243 if truthMaxPt!=-9999. : kwargs_base.setdefault(
"maxPt", truthMaxPt )
244 if truthMaxAbsEta!=-9999. : kwargs_base.setdefault(
"maxEta", truthMaxAbsEta )
245 if truthPdgId!=-9999. : kwargs_base.setdefault(
"pdgId", truthPdgId )
251 kwargs.setdefault(
"truthTool" ,
256 kwargs.setdefault(
"maxEta", flags.PhysVal.IDTPM.currentTrkAna.truthMaxEta )
257 kwargs.setdefault(
"minEta", flags.PhysVal.IDTPM.currentTrkAna.truthMinEta )
258 kwargs.setdefault(
"minPhi", flags.PhysVal.IDTPM.currentTrkAna.truthMinPhi )
259 kwargs.setdefault(
"maxPhi", flags.PhysVal.IDTPM.currentTrkAna.truthMaxPhi )
260 kwargs.setdefault(
"minD0", flags.PhysVal.IDTPM.currentTrkAna.truthMinD0 )
261 kwargs.setdefault(
"maxD0", flags.PhysVal.IDTPM.currentTrkAna.truthMaxD0 )
262 kwargs.setdefault(
"minZ0", flags.PhysVal.IDTPM.currentTrkAna.truthMinZ0 )
263 kwargs.setdefault(
"maxZ0", flags.PhysVal.IDTPM.currentTrkAna.truthMaxZ0 )
264 kwargs.setdefault(
"minQoPT", flags.PhysVal.IDTPM.currentTrkAna.truthMinQoPT )
265 kwargs.setdefault(
"maxQoPT", flags.PhysVal.IDTPM.currentTrkAna.truthMaxQoPT )
266 kwargs.setdefault(
"minAbsEta", flags.PhysVal.IDTPM.currentTrkAna.truthMinAbsEta )
267 kwargs.setdefault(
"minAbsPhi", flags.PhysVal.IDTPM.currentTrkAna.truthMinAbsPhi )
268 kwargs.setdefault(
"maxAbsPhi", flags.PhysVal.IDTPM.currentTrkAna.truthMaxAbsPhi )
269 kwargs.setdefault(
"minAbsD0", flags.PhysVal.IDTPM.currentTrkAna.truthMinAbsD0 )
270 kwargs.setdefault(
"maxAbsD0", flags.PhysVal.IDTPM.currentTrkAna.truthMaxAbsD0 )
271 kwargs.setdefault(
"minAbsZ0", flags.PhysVal.IDTPM.currentTrkAna.truthMinAbsZ0 )
272 kwargs.setdefault(
"maxAbsZ0", flags.PhysVal.IDTPM.currentTrkAna.truthMaxAbsZ0 )
273 kwargs.setdefault(
"minAbsQoPT", flags.PhysVal.IDTPM.currentTrkAna.truthMinAbsQoPT )
274 kwargs.setdefault(
"maxAbsQoPT", flags.PhysVal.IDTPM.currentTrkAna.truthMaxAbsQoPT )
275 kwargs.setdefault(
"isHadron", truthIsHadron )
276 kwargs.setdefault(
"isPion", truthIsPion )
277 kwargs.setdefault(
"isFromB", truthIsFromB )
278 kwargs.setdefault(
"isFromC", truthIsFromC )
279 kwargs.setdefault(
"isFromHeavyFlav", truthIsFromHeavyFlav )
280 kwargs.setdefault(
"isFromLightFlav", truthIsFromLightFlav )
282 acc.setPrivateTools( CompFactory.IDTPM.TruthQualitySelectionTool( name, **kwargs ) )
291 if flags.PhysVal.IDTPM.currentTrkAna.OfflineQualityWP !=
"" or flags.PhysVal.IDTPM.currentTrkAna.DoOfflineSelection:
292 kwargs.setdefault(
"DoOfflineSelection",
True )
294 kwargs.setdefault(
"OfflineSelectionTool", acc.popToolsAndMerge(
299 kwargs.setdefault(
"DoTruthSelection",
True )
301 kwargs.setdefault(
"TruthSelectionTool", acc.popToolsAndMerge(
305 if flags.PhysVal.IDTPM.currentTrkAna.SelectOfflineObject !=
"":
306 kwargs.setdefault(
"DoObjectSelection",
True )
308 if "TrackObjectSelectionTool" not in kwargs:
309 kwargs.setdefault(
"TrackObjectSelectionTool", acc.popToolsAndMerge(
311 name=
"TrackObjectSelectionTool" + flags.PhysVal.IDTPM.currentTrkAna.anaTag ) ) )
313 acc.setPrivateTools( CompFactory.IDTPM.TrackQualitySelectionTool( name, **kwargs ) )
322 acc.setPrivateTools( CompFactory.IDTPM.VertexQualitySelectionTool( name, **kwargs ) )