ATLAS Offline Software
Loading...
Searching...
No Matches
NewVrtSecInclusiveConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2# Author: Vadim Kostyukhin vadim.kostyukhin@cern.ch
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6from TrkConfig.TrkVKalVrtFitterConfig import TrkVKalVrtFitterCfg
7from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
8from TrackToVertex.TrackToVertexConfig import TrackToVertexCfg
9from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
10
11from AthenaCommon.Logging import logging
12mlog = logging.getLogger('Rec__NewVrtSecInclusiveConfig')
13
14
17def SoftBFinderToolCfg(flags, name="SoftBFinderTool", **myargs):
18
19 mlog.info("entering SoftBFinderTool configuration")
20 acc = ComponentAccumulator()
21 acc.merge(BeamSpotCondAlgCfg(flags))
22
23 # Allow overrides (with defaults)
24 iniV2T_cosSVPVCut = myargs.pop("IniV2T_cosSVPVCut", 0.4)
25 iniV2T_v2tBDTCut = myargs.pop("IniV2T_v2tBDTCut", -0.7)
26 finV2T_cosSVPVCut = myargs.pop("FinV2T_cosSVPVCut", 0.4)
27 finV2T_v2tBDTCut = myargs.pop("FinV2T_v2tBDTCut", 0.)
28
29
30 #-- 2-track vertex initial selector
31 iniV2Targs = {}
32 iniV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
33 iniV2Targs.setdefault("useVertexCleaning" , True)
34 iniV2Targs.setdefault("cosSVPVCut" , iniV2T_cosSVPVCut)
35 iniV2Targs.setdefault("v2tBDTCut" , iniV2T_v2tBDTCut)
36 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
37 #-- 2-track vertex final selector
38 finV2Targs = {}
39 finV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
40 finV2Targs.setdefault("useVertexCleaning" , True)
41 finV2Targs.setdefault("cosSVPVCut" , finV2T_cosSVPVCut)
42 finV2Targs.setdefault("v2tBDTCut" , finV2T_v2tBDTCut)
43 finV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("FinV2TSelector",**finV2Targs)
44
45 #-- NVSI track selection cuts
46 myargs.setdefault("CutPt" , 500.)
47 myargs.setdefault("CutBLayHits" , 1 )
48 myargs.setdefault("CutPixelHits" , 3 )
49 myargs.setdefault("CutSiHits" , 8 )
50 myargs.setdefault("CutTRTHits" , 10 )
51 myargs.setdefault("AntiPileupSigRCut" , 2.0)
52 myargs.setdefault("TrkSigCut" , 2.0)
53 #-- NVSI inclusive vertex selection
54 myargs.setdefault("FastZSVCut" , 5.) # Fast universal preselection of 2-track vertices
55 myargs.setdefault("MultiWithOneTrkVrt" , True)
56 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
57 myargs.setdefault("SelVrtSigCut" , 2.5)
58
59 myargs.setdefault("VertexMergeCut" , 4.)
60 myargs.setdefault("MaxSVRadiusCut" , 50.)
61 #-- Tools
62 myargs.setdefault("TwoTrkVtxSelectorIni",iniV2TSelector)
63 myargs.setdefault("TwoTrkVtxSelectorFinal",finV2TSelector)
64 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
65 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
66 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
67
68 SoftBFinder = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
69 acc.setPrivateTools(SoftBFinder)
70 mlog.info("SoftBFinderTool created")
71
72 return acc
73
74
77def InclusiveBFinderToolCfg(flags, name="InclusiveBFinderTool", **myargs):
78
79 mlog.info("entering InclusiveBFinderTool configuration")
80 acc = ComponentAccumulator()
81 acc.merge(BeamSpotCondAlgCfg(flags))
82
83 #-- 2-track vertex initial selector
84 iniV2Targs = {}
85 iniV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
86 iniV2Targs.setdefault("cosSVPVCut" , 0.5)
87 iniV2Targs.setdefault("v2tBDTCut" , -0.7)
88 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
89 #-- 2-track vertex final selector
90 finV2Targs = {}
91 finV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
92 finV2Targs.setdefault("cosSVPVCut" , 0.5)
93 finV2Targs.setdefault("v2tBDTCut" , -0.2)
94 finV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("FinV2TSelector",**finV2Targs)
95
96 #-- NVSI track selection cuts
97 myargs.setdefault("CutPt" , 500.)
98 myargs.setdefault("CutBLayHits" , 0 )
99 myargs.setdefault("CutPixelHits", 2 )
100 myargs.setdefault("CutSiHits" , 8 )
101 myargs.setdefault("CutTRTHits" , 10 )
102 myargs.setdefault("AntiPileupSigRCut" , 2.0)
103 myargs.setdefault("TrkSigCut" , 2.0)
104 #-- NVSI inclusive vertex selection
105 myargs.setdefault("FastZSVCut" , 8.0) # Fast universal preselection of 2-track vertices
106 myargs.setdefault("MultiWithOneTrkVrt" , True)
107 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
108 myargs.setdefault("SelVrtSigCut" , 3.0)
109
110
111 #-- Tools
112 myargs.setdefault("TwoTrkVtxSelectorIni", iniV2TSelector)
113 myargs.setdefault("TwoTrkVtxSelectorFinal",finV2TSelector)
114 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
115 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
116 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
117
118
119 InclusiveBFinder = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
120 acc.setPrivateTools(InclusiveBFinder)
121 mlog.info("InclusiveBFinderTool created")
122
123 return acc
124
125
126
129def HighPtBFinderToolCfg(flags, name="HighPtBFinderTool", **myargs):
130
131 mlog.info("entering HighPtBFinderTool configuration")
132 acc = ComponentAccumulator()
133 acc.merge(BeamSpotCondAlgCfg(flags))
134
135 #-- 2-track vertex initial selector
136 iniV2Targs = {}
137 iniV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
138 iniV2Targs.setdefault("cosSVPVCut" , 0.7)
139 iniV2Targs.setdefault("v2tBDTCut" , -0.6)
140 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
141 #-- 2-track vertex final selector
142 finV2Targs = {}
143 finV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
144 finV2Targs.setdefault("cosSVPVCut" , 0.7)
145 finV2Targs.setdefault("v2tBDTCut" , -0.2)
146 finV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("FinV2TSelector",**finV2Targs)
147
148 #-- NVSI track selection cuts
149 myargs.setdefault("CutPt" , 1000.)
150 myargs.setdefault("CutBLayHits" , 0 )
151 myargs.setdefault("CutPixelHits", 2 )
152 myargs.setdefault("CutSiHits" , 8 )
153 myargs.setdefault("CutTRTHits" , 10 )
154 myargs.setdefault("AntiPileupSigRCut", 2.0)
155 myargs.setdefault("TrkSigCut" , 2.0)
156 #-- NVSI inclusive vertex selection
157 myargs.setdefault("FastZSVCut" , 8.0) # Fast universal preselection of 2-track vertices
158 myargs.setdefault("MultiWithOneTrkVrt" , True)
159 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
160 myargs.setdefault("SelVrtSigCut" , 3.0)
161
162 #-- Tools
163 myargs.setdefault("TwoTrkVtxSelectorIni", iniV2TSelector)
164 myargs.setdefault("TwoTrkVtxSelectorFinal",finV2TSelector)
165 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
166 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
167 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
168
169 HighPtBFinder = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
170 acc.setPrivateTools(HighPtBFinder)
171 mlog.info("HighPtBFinderTool created")
172
173 return acc
174
175
176
179def MaterialSVFinderToolCfg(flags, name="MaterialSVFinderTool", **myargs):
180
181 mlog.info("entering MaterialSVFinderTool configuration")
182 acc = ComponentAccumulator()
183 acc.merge(BeamSpotCondAlgCfg(flags))
184
185 #-- 2-track vertex initial selector
186 iniV2Targs = {}
187 iniV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
188 iniV2Targs.setdefault("cosSVPVCut" , 0.)
189 iniV2Targs.setdefault("useVertexCleaning", False)
190 iniV2Targs.setdefault("v2tBDTCut" , -1.01) #Remove BDT selection
191 iniV2Targs.setdefault("Vrt2TrMassLimit", 8000.)
192 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
193 #-- 2-track vertex final selector
194 finV2Targs = {}
195 finV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
196 finV2Targs.setdefault("cosSVPVCut" , 0.)
197 finV2Targs.setdefault("useVertexCleaning", False)
198 finV2Targs.setdefault("v2tBDTCut" , -1.01) #Remove BDT selection
199 finV2Targs.setdefault("Vrt2TrMassLimit", 8000.)
200 finV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("FinV2TSelector",**finV2Targs)
201
202 #-- NVSI track selection cuts
203 myargs.setdefault("CutPt" , 500.)
204 myargs.setdefault("CutBLayHits" , 0 )
205 myargs.setdefault("CutPixelHits" , 1 )
206 myargs.setdefault("CutSiHits" , 8 )
207 myargs.setdefault("CutTRTHits" , 10 )
208 myargs.setdefault("AntiPileupSigRCut", 5.0)
209 myargs.setdefault("TrkSigCut" , 2.0)
210 #-- NVSI inclusive vertex selection
211 myargs.setdefault("FastZSVCut" , 10.0) # Fast universal preselection of 2-track vertices
212 myargs.setdefault("MultiWithOneTrkVrt" , False)
213 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
214 myargs.setdefault("SelVrtSigCut" , 10.0)
215 myargs.setdefault("VrtMassLimit", 8000.)
216
217 #-- Tools
218 myargs.setdefault("TwoTrkVtxSelectorIni", iniV2TSelector)
219 myargs.setdefault("TwoTrkVtxSelectorFinal",finV2TSelector)
220 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
221 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
222 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
223
224 MaterialSVFinder = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
225 acc.setPrivateTools(MaterialSVFinder)
226 mlog.info("MaterialSVFinderTool created")
227
228 return acc
229
230
233def KsFinderToolCfg(flags, name="KsFinderTool", **myargs):
234
235 mlog.info("entering KsFinderTool configuration")
236 acc = ComponentAccumulator()
237 acc.merge(BeamSpotCondAlgCfg(flags))
238
239 #-- 2-track vertex initial selector
240 iniV2Targs = {}
241 iniV2Targs.setdefault("Vrt2TrPtMin" , 1000.)
242 iniV2Targs.setdefault("cosSVPVCut" , 0.)
243 iniV2Targs.setdefault("v2tBDTCut" , -1.01)
244 iniV2Targs.setdefault("MaxSVRadiusCut", 350.)
245 iniV2Targs.setdefault("Vrt2TrMassLimit", 1000.)
246 iniV2Targs.setdefault("useVertexCleaning" , False)
247 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
248
249 #-- NVSI track selection cuts
250 myargs.setdefault("CutPt" , 1000.)
251 myargs.setdefault("CutBLayHits" , 0 )
252 myargs.setdefault("CutPixelHits", 0 )
253 myargs.setdefault("CutSiHits" , 8 )
254 myargs.setdefault("CutTRTHits" , 0 )
255 myargs.setdefault("AntiPileupSigRCut", 6.0)
256 myargs.setdefault("TrkSigCut" , 10.0)
257 myargs.setdefault("CutD0Max" , 1000.) # Maximal track impact parameter
258 myargs.setdefault("CutD0Min" , 0.) # Minimal track impact parameter
259 myargs.setdefault("MaxZVrt" , 100.)
260 myargs.setdefault("MinZVrt" , 0.)
261 #-- NVSI inclusive vertex selection
262 myargs.setdefault("FastZSVCut" , 30.0) # Fast universal preselection of 2-track vertices
263 myargs.setdefault("MultiWithOneTrkVrt" , False)
264 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
265 myargs.setdefault("SelVrtSigCut" , 8.0)
266 myargs.setdefault("VertexMergeCut" , 10.)
267 myargs.setdefault("VrtMassLimit" , 800000.)
268 myargs.setdefault("MaxSVRadiusCut" , 350.)
269
270 #-- Tools
271 myargs.setdefault("TwoTrkVtxSelectorIni" ,iniV2TSelector)
272 myargs.setdefault("TwoTrkVtxSelectorFinal",iniV2TSelector) #reuse the same tool for final selection
273 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
274 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
275 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
276
277 KsFinder = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
278 acc.setPrivateTools(KsFinder)
279 mlog.info("KsFinderTool created")
280
281 return acc
282
283
286def DVFinderToolCfg(flags, name="DVFinderTool", **myargs):
287
288 mlog.info("entering DVFinderTool configuration")
289 acc = ComponentAccumulator()
290 acc.merge(BeamSpotCondAlgCfg(flags))
291
292 #-- 2-track vertex initial selector
293 iniV2Targs = {}
294 iniV2Targs.setdefault("Vrt2TrPtMin" , 2000.)
295 iniV2Targs.setdefault("cosSVPVCut" , 0.)
296 iniV2Targs.setdefault("v2tBDTCut" , -1.01)
297 iniV2Targs.setdefault("MaxSVRadiusCut", 350.)
298 iniV2Targs.setdefault("Vrt2TrMassLimit", 1000000.)
299 iniV2Targs.setdefault("useVertexCleaning" , False)
300 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
301 #-- 2-track vertex final selector
302 finV2Targs = {}
303 finV2Targs.setdefault("Vrt2TrPtMin" , 2000.)
304 finV2Targs.setdefault("cosSVPVCut" , 0.)
305 finV2Targs.setdefault("v2tBDTCut" , -1.01)
306 finV2Targs.setdefault("MaxSVRadiusCut", 350.)
307 finV2Targs.setdefault("Vrt2TrMassLimit", 1000000.)
308 finV2Targs.setdefault("useVertexCleaning" , False)
309 finV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("FinV2TSelector",**finV2Targs)
310
311 #-- NVSI track selection cuts
312 myargs.setdefault("CutPt" , 1000.)
313 myargs.setdefault("CutBLayHits" , 0 )
314 myargs.setdefault("CutPixelHits", 0 )
315 myargs.setdefault("CutSiHits" , 7 )
316 myargs.setdefault("CutTRTHits" , 0 )
317 myargs.setdefault("AntiPileupSigRCut", 6.0)
318 myargs.setdefault("TrkSigCut" , 10.0)
319 myargs.setdefault("CutD0Max" , 1000.) # Maximal track impact parameter
320 myargs.setdefault("CutD0Min" , 0.) # Minimal track impact parameter
321 myargs.setdefault("MaxZVrt" , 100.)
322 myargs.setdefault("MinZVrt" , 0.)
323 #-- NVSI inclusive vertex selection
324 myargs.setdefault("FastZSVCut" , 30.0) # Fast universal preselection of 2-track vertices
325 myargs.setdefault("MultiWithOneTrkVrt" , False)
326 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
327 myargs.setdefault("SelVrtSigCut" , 8.0)
328 myargs.setdefault("VertexMergeCut" , 10.)
329 myargs.setdefault("VrtMassLimit" , 1000000.)
330 myargs.setdefault("MaxSVRadiusCut" , 350.)
331
332 #-- Tools
333 myargs.setdefault("TwoTrkVtxSelectorIni" ,iniV2TSelector)
334 myargs.setdefault("TwoTrkVtxSelectorFinal",finV2TSelector)
335 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
336 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
337 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
338
339 DVFinder = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
340 acc.setPrivateTools(DVFinder)
341 mlog.info("DVFinderTool created")
342
343 return acc
344
345
349def V2TCalibrationToolCfg(flags, name="V2TCalibrationTool", **myargs):
350
351 mlog.info("entering V2TCalibrationTool configuration")
352 acc = ComponentAccumulator()
353 acc.merge(BeamSpotCondAlgCfg(flags))
354
355 #-- 2-track vertex initial selector
356 iniV2Targs = {}
357 iniV2Targs.setdefault("Vrt2TrPtMin" , 2000.)
358 iniV2Targs.setdefault("cosSVPVCut" , 0.)
359 iniV2Targs.setdefault("v2tBDTCut" , -1.01)
360 iniV2Targs.setdefault("Vrt2TrMassLimit", 4000.)
361 iniV2Targs.setdefault("useVertexCleaning" , False)
362 iniV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("IniV2TSelector",**iniV2Targs)
363 #-- 2-track vertex final selector
364 finV2Targs = {}
365 finV2Targs.setdefault("Vrt2TrPtMin" , 2000.)
366 finV2Targs.setdefault("cosSVPVCut" , 0.)
367 finV2Targs.setdefault("v2tBDTCut" , -1.01)
368 finV2Targs.setdefault("Vrt2TrMassLimit", 4000.)
369 finV2Targs.setdefault("useVertexCleaning" , False)
370 finV2TSelector = CompFactory.Rec.TwoTrackVrtBDTSelector("FinV2TSelector",**finV2Targs)
371
372 myargs.setdefault("FillHist" , True)
373 #-- NVSI track selection cuts
374 myargs.setdefault("CutPt" , 400.)
375 myargs.setdefault("CutBLayHits" , 0 )
376 myargs.setdefault("CutPixelHits", 1 )
377 myargs.setdefault("CutSiHits" , 8 )
378 myargs.setdefault("CutTRTHits" , 10 )
379 myargs.setdefault("AntiPileupSigRCut", 2.0) # Should be less than TrkSigCut
380 myargs.setdefault("TrkSigCut" , 2.0)
381 myargs.setdefault("CutD0Max" , 100.) # Maximal track impact parameter
382 myargs.setdefault("CutD0Min" , 0.) # Minimal track impact parameter
383 myargs.setdefault("MaxZVrt" , 100.)
384 myargs.setdefault("MinZVrt" , 0.)
385 #-- NVSI inclusive vertex selection
386 myargs.setdefault("FastZSVCut" , 15.0) # Fast universal preselection of 2-track vertices
387 myargs.setdefault("MultiWithOneTrkVrt" , False)
388 myargs.setdefault("removeTrkMatSignif" , -1.) # No additional material rejection
389 myargs.setdefault("SelVrtSigCut" , 2.0)
390 myargs.setdefault("VertexMergeCut" , 10.)
391 myargs.setdefault("VrtMassLimit" , 5500.)
392 myargs.setdefault("MaxSVRadiusCut" , 140.)
393
394 #-- Tools
395 myargs.setdefault("TwoTrkVtxSelectorIni" ,iniV2TSelector)
396 myargs.setdefault("TwoTrkVtxSelectorFinal",finV2TSelector)
397 myargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
398 myargs.setdefault("ExtrapolatorName", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
399 myargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
400
401 V2TCalibration = CompFactory.Rec.NewVrtSecInclusiveTool(name,**myargs)
402 acc.setPrivateTools(V2TCalibration)
403 mlog.info("V2TCalibrationTool created")
404
405 return acc
406
407
HighPtBFinderToolCfg(flags, name="HighPtBFinderTool", **myargs)
KsFinderToolCfg(flags, name="KsFinderTool", **myargs)
InclusiveBFinderToolCfg(flags, name="InclusiveBFinderTool", **myargs)
SoftBFinderToolCfg(flags, name="SoftBFinderTool", **myargs)
DVFinderToolCfg(flags, name="DVFinderTool", **myargs)
MaterialSVFinderToolCfg(flags, name="MaterialSVFinderTool", **myargs)
V2TCalibrationToolCfg(flags, name="V2TCalibrationTool", **myargs)
Configuration for creation of calibration ntuples for 2-track vertex classification BDT.