3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from TrkConfig.VertexFindingFlags
import VertexSetup
9 flags, name="InDetIterativePriVxFinderTool", **kwargs):
12 if "SeedFinder" not in kwargs:
13 if flags.Tracking.PriVertex.useBeamConstraint:
14 from TrkConfig.TrkVertexSeedFinderToolsConfig
import ZScanSeedFinderCfg
15 kwargs.setdefault(
"SeedFinder", acc.popToolsAndMerge(
18 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
19 IVF_CrossDistancesSeedFinderCfg)
20 kwargs.setdefault(
"SeedFinder", acc.popToolsAndMerge(
23 if "TrackSelector" not in kwargs:
24 from InDetConfig.InDetTrackSelectionToolConfig
import (
25 VtxInDetTrackSelectionCfg)
26 kwargs.setdefault(
"TrackSelector", acc.popToolsAndMerge(
29 if "LinearizedTrackFactory" not in kwargs:
30 from TrkConfig.TrkVertexFitterUtilsConfig
import (
31 FullLinearizedTrackFactoryCfg)
32 kwargs.setdefault(
"LinearizedTrackFactory", acc.popToolsAndMerge(
35 if "ImpactPoint3dEstimator" not in kwargs:
36 from TrkConfig.TrkVertexFitterUtilsConfig
import (
37 ImpactPoint3dEstimatorCfg)
38 kwargs.setdefault(
"ImpactPoint3dEstimator", acc.popToolsAndMerge(
41 if "VertexFitterTool" not in kwargs:
42 from TrkConfig.TrkVertexFittersConfig
import AdaptiveVertexFitterCfg
43 kwargs.setdefault(
"VertexFitterTool", acc.popToolsAndMerge(
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):
68 if "VertexFitterTool" not in kwargs:
69 from TrkConfig.TrkVertexBilloirToolsConfig
import FastVertexFitterCfg
70 kwargs.setdefault(
"VertexFitterTool", acc.popToolsAndMerge(
73 acc.setPrivateTools(acc.popToolsAndMerge(
79 flags, name="GaussInDetIterativePriVxFinderTool", **kwargs):
82 if "SeedFinder" not in kwargs:
83 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
84 TrackDensitySeedFinderCfg)
85 kwargs.setdefault(
"SeedFinder", acc.popToolsAndMerge(
88 acc.setPrivateTools(acc.popToolsAndMerge(
94 flags, name="InDetTrigPriVxFinderTool", **kwargs):
97 if "VertexFitterTool" not in kwargs:
98 from TrkConfig.TrkVertexBilloirToolsConfig
import FastVertexFitterCfg
99 kwargs.setdefault(
"VertexFitterTool", acc.popToolsAndMerge(
102 if "TrackSelector" not in kwargs:
103 from InDetConfig.InDetTrackSelectionToolConfig
import (
104 TrigVtxInDetTrackSelectionCfg)
105 kwargs.setdefault(
"TrackSelector", acc.popToolsAndMerge(
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
129 elif flags.Tracking.PriVertex.setup == VertexSetup.ExperimentalActsIVF:
130 from ActsConfig.ActsPriVxFinderConfig
import (
131 ActsIterativeFindingCfg)
136 if flags.Tracking.ActiveConfig.adaptiveVertex:
137 from ActsConfig.ActsPriVxFinderConfig
import (
138 TrigActsGaussAdaptiveMultiFindingCfg)