9 flags, name="InDetIterativePriVxFinderTool", **kwargs):
10 acc = ComponentAccumulator()
12 if "SeedFinder" not in kwargs:
13 if flags.Tracking.PriVertex.useBeamConstraint:
14 from TrkConfig.TrkVertexSeedFinderToolsConfig
import ZScanSeedFinderCfg
15 kwargs.setdefault(
"SeedFinder", acc.popToolsAndMerge(
16 ZScanSeedFinderCfg(flags)))
18 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
19 IVF_CrossDistancesSeedFinderCfg)
20 kwargs.setdefault(
"SeedFinder", acc.popToolsAndMerge(
21 IVF_CrossDistancesSeedFinderCfg(flags)))
23 if "TrackSelector" not in kwargs:
24 from InDetConfig.InDetTrackSelectionToolConfig
import (
25 VtxInDetTrackSelectionCfg)
26 kwargs.setdefault(
"TrackSelector", acc.popToolsAndMerge(
27 VtxInDetTrackSelectionCfg(flags)))
29 if "LinearizedTrackFactory" not in kwargs:
30 from TrkConfig.TrkVertexFitterUtilsConfig
import (
31 FullLinearizedTrackFactoryCfg)
32 kwargs.setdefault(
"LinearizedTrackFactory", acc.popToolsAndMerge(
33 FullLinearizedTrackFactoryCfg(flags)))
35 if "ImpactPoint3dEstimator" not in kwargs:
36 from TrkConfig.TrkVertexFitterUtilsConfig
import (
37 ImpactPoint3dEstimatorCfg)
38 kwargs.setdefault(
"ImpactPoint3dEstimator", acc.popToolsAndMerge(
39 ImpactPoint3dEstimatorCfg(flags)))
41 if "VertexFitterTool" not in kwargs:
42 from TrkConfig.TrkVertexFittersConfig
import AdaptiveVertexFitterCfg
43 kwargs.setdefault(
"VertexFitterTool", acc.popToolsAndMerge(
44 AdaptiveVertexFitterCfg(
46 SeedFinder=kwargs[
"SeedFinder"],
47 LinearizedTrackFactory=kwargs[
"LinearizedTrackFactory"],
48 ImpactPoint3dEstimator=kwargs[
"ImpactPoint3dEstimator"])))
50 kwargs.setdefault(
"useBeamConstraint",
51 flags.Tracking.PriVertex.useBeamConstraint)
52 kwargs.setdefault(
"significanceCutSeeding", 12)
53 kwargs.setdefault(
"maximumChi2cutForSeeding", 49)
54 kwargs.setdefault(
"maxVertices", flags.Tracking.PriVertex.maxVertices)
55 kwargs.setdefault(
"doMaxTracksCut",
56 flags.Tracking.PriVertex.doMaxTracksCut)
57 kwargs.setdefault(
"MaxTracks", flags.Tracking.PriVertex.maxTracks)
60 CompFactory.InDet.InDetIterativePriVxFinderTool(name, **kwargs))
65 flags, name="FastInDetIterativePriVxFinderTool", **kwargs):
66 acc = ComponentAccumulator()
68 if "VertexFitterTool" not in kwargs:
69 from TrkConfig.TrkVertexBilloirToolsConfig
import FastVertexFitterCfg
70 kwargs.setdefault(
"VertexFitterTool", acc.popToolsAndMerge(
71 FastVertexFitterCfg(flags)))
73 acc.setPrivateTools(acc.popToolsAndMerge(
79 flags, name="GaussInDetIterativePriVxFinderTool", **kwargs):
80 acc = ComponentAccumulator()
82 if "SeedFinder" not in kwargs:
83 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
84 TrackDensitySeedFinderCfg)
85 kwargs.setdefault(
"SeedFinder", acc.popToolsAndMerge(
86 TrackDensitySeedFinderCfg(flags)))
88 acc.setPrivateTools(acc.popToolsAndMerge(
94 flags, name="InDetTrigPriVxFinderTool", **kwargs):
95 acc = ComponentAccumulator()
97 if "VertexFitterTool" not in kwargs:
98 from TrkConfig.TrkVertexBilloirToolsConfig
import FastVertexFitterCfg
99 kwargs.setdefault(
"VertexFitterTool", acc.popToolsAndMerge(
100 FastVertexFitterCfg(flags)))
102 if "TrackSelector" not in kwargs:
103 from InDetConfig.InDetTrackSelectionToolConfig
import (
104 TrigVtxInDetTrackSelectionCfg)
105 kwargs.setdefault(
"TrackSelector", acc.popToolsAndMerge(
106 TrigVtxInDetTrackSelectionCfg(flags)))
108 kwargs.setdefault(
"useBeamConstraint",
True)
109 kwargs.setdefault(
"maximumChi2cutForSeeding", 29)
110 kwargs.setdefault(
"createSplitVertices",
False)
111 kwargs.setdefault(
"doMaxTracksCut",
True)
112 kwargs.setdefault(
"MaxTracks", 3000)
114 acc.setPrivateTools(acc.popToolsAndMerge(
116 flags, name+flags.Tracking.ActiveConfig.input_name, **kwargs)))
122 if flags.Tracking.PriVertex.setup == VertexSetup.IVF:
124 elif flags.Tracking.PriVertex.setup == VertexSetup.FastIVF:
126 elif flags.Tracking.PriVertex.setup == VertexSetup.ActsGaussAMVF:
127 from ActsConfig.ActsPriVxFinderConfig
import ActsGaussAdaptiveMultiFindingCfg
128 return ActsGaussAdaptiveMultiFindingCfg(flags, **kwargs)
129 elif flags.Tracking.PriVertex.setup == VertexSetup.ExperimentalActsIVF:
130 from ActsConfig.ActsPriVxFinderConfig
import (
131 ActsIterativeFindingCfg)
132 return ActsIterativeFindingCfg(flags, **kwargs)
134 elif flags.Tracking.PriVertex.setup == VertexSetup.ActsGridDensity:
135 from ActsConfig.ActsPriVxFinderConfig
import ActsGridAdaptiveMultiFindingCfg
136 return ActsGridAdaptiveMultiFindingCfg(flags, **kwargs)