ATLAS Offline Software
Loading...
Searching...
No Matches
TrkVertexSeedFinderToolsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2# Configuration of TrkVertexSeedFinderTools package
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def DummySeedFinderCfg(flags, name="DummySeedFinder", **kwargs):
7 acc = ComponentAccumulator()
8 acc.setPrivateTools(CompFactory.Trk.DummySeedFinder(name, **kwargs))
9 return acc
10
11def TrackDensitySeedFinderCfg(flags, name="TrackDensitySeedFinder", **kwargs):
12 acc = ComponentAccumulator()
13 acc.setPrivateTools(CompFactory.Trk.TrackDensitySeedFinder(name, **kwargs))
14 return acc
15
16def MCTrueSeedFinderCfg(flags, name="MCTrueSeedFinder", **kwargs):
17 acc = ComponentAccumulator()
18 acc.setPrivateTools(CompFactory.Trk.MCTrueSeedFinder(name, **kwargs))
19 return acc
20
21def ZScanSeedFinderCfg(flags, name="ZScanSeedFinder", **kwargs):
22 acc = ComponentAccumulator()
23
24 if "IPEstimator" not in kwargs:
25 from TrkConfig.TrkVertexFitterUtilsConfig import (
26 TrackToVertexIPEstimatorCfg)
27 kwargs.setdefault("IPEstimator", acc.popToolsAndMerge(
28 TrackToVertexIPEstimatorCfg(flags)))
29
30 acc.setPrivateTools(CompFactory.Trk.ZScanSeedFinder(name, **kwargs))
31 return acc
32
33def CrossDistancesSeedFinderCfg(flags, name="CrossDistancesSeedFinder", **kwargs):
34 acc = ComponentAccumulator()
35
36 if "TrkDistanceFinder" not in kwargs:
37 from TrkConfig.TrkVertexSeedFinderUtilsConfig import (
38 SeedNewtonTrkDistanceFinderCfg)
39 kwargs.setdefault("TrkDistanceFinder", acc.popToolsAndMerge(
40 SeedNewtonTrkDistanceFinderCfg(flags)))
41
42 acc.setPrivateTools(CompFactory.Trk.CrossDistancesSeedFinder(name, **kwargs))
43 return acc
44
45def IVF_CrossDistancesSeedFinderCfg(flags, name="IVF_CrossDistancesSeedFinder",
46 **kwargs):
47 kwargs.setdefault("trackdistcutoff", 1.0)
48 return CrossDistancesSeedFinderCfg(flags, name, **kwargs)
49
51 flags, name='IndexedCrossDistancesSeedFinder', **kwargs):
52 acc = ComponentAccumulator()
53
54 if "Mode3dFinder" not in kwargs:
55 from TrkConfig.TrkVertexSeedFinderUtilsConfig import (
56 Mode3dFromFsmw1dFinderCfg)
57 kwargs.setdefault("Mode3dFinder", acc.popToolsAndMerge(
58 Mode3dFromFsmw1dFinderCfg(flags)))
59
60 if "TrkDistanceFinder" not in kwargs:
61 from TrkConfig.TrkVertexSeedFinderUtilsConfig import (
62 SeedNewtonTrkDistanceFinderCfg)
63 kwargs.setdefault("TrkDistanceFinder", acc.popToolsAndMerge(
64 SeedNewtonTrkDistanceFinderCfg(flags)))
65
66 kwargs.setdefault("trackdistcutoff", 0.01)
67 kwargs.setdefault("maximumTracksNoCut", 30)
68 kwargs.setdefault("maximumDistanceCut", 7.5)
69
70 acc.setPrivateTools(
71 CompFactory.Trk.IndexedCrossDistancesSeedFinder(name, **kwargs))
72 return acc
73
74
75if __name__ == "__main__":
76
77 from argparse import ArgumentParser
78 parser = ArgumentParser()
79 parser.add_argument("--finder")
80 args = parser.parse_args()
81
82 from AthenaConfiguration.AllConfigFlags import initConfigFlags
83 flags = initConfigFlags()
84
85 from AthenaConfiguration.TestDefaults import defaultTestFiles
86 flags.Input.Files = defaultTestFiles.RDO_RUN2
87
88 flags.lock()
89 flags.dump()
90
91 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
92 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
93 cfg=MainServicesCfg(flags)
94 cfg.merge(PoolReadCfg(flags))
95
96 alg = CompFactory.Trk.VertexSeedFinderTestAlg
97
98 if args.finder=="DummySeedFinder":
99 finder = cfg.popToolsAndMerge(DummySeedFinderCfg(flags))
100 cfg.addEventAlgo(alg(name='testalg1',
101 VertexSeedFinderTool = finder,
102 Expected1 = [0, 0, 0],
103 Expected2 = [0, 0, 0],
104 Expected3 = [0, 0, 0]))
105
106 elif args.finder=="ZScanSeedFinder":
107 finder = cfg.popToolsAndMerge(ZScanSeedFinderCfg(flags))
108 cfg.addEventAlgo(alg(name='testalg1',
109 VertexSeedFinderTool = finder,
110 Expected1 = [ 0, 0, -8.14159],
111 Expected2 = [1.7, 1.3, -7.82529],
112 Expected3 = [0, 0, 11.6246]))
113
114 elif args.finder=="CrossDistancesSeedFinder":
115 finder = cfg.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags))
116 cfg.addEventAlgo(alg(name='testalg1',
117 VertexSeedFinderTool = finder,
118 Expected1 = [8.58978, 8.67507, -6.4581],
119 Expected2 = [3.44328, 3.25688, -7.88419],
120 Expected3 = [1.23398, -1.18171, 11.9419]))
121
122 elif args.finder=="IndexedCrossDistancesSeedFinder":
123 finder = cfg.popToolsAndMerge(IndexedCrossDistancesSeedFinderCfg(flags))
124 cfg.addEventAlgo(alg(name='testalg1',
125 VertexSeedFinderTool = finder,
126 PriVert = [0.3, 0.1],
127 Expected1 = [8.50042, 8.55733, -6.48532],
128 Expected2 = [3.44958, 3.26644, -7.06138],
129 Expected3 = [-0.155833, -1.84918, 12.5667],
130 Expected1PhiModes = [0.525193, 0.785398, 0.967545],
131 Expected1RModes = [3.61433, 12.4693, 7.05322],
132 Expected1ZModes = [-7.88629, -6.5, -5.61236],
133 Expected1Weights = [0.139025, 7.26331, 0.345227],
134 Expected1Indices = [0, 1, 2],
135 Expected1CorrDist = [-9.9, -9.9]))
136
137 elif args.finder=="TrackDensitySeedFinder":
138 finder = cfg.popToolsAndMerge(TrackDensitySeedFinderCfg(flags))
139 cfg.addEventAlgo(alg(name='testalg1',
140 VertexSeedFinderTool = finder,
141 Expected1 = [0, 0, -7.01305],
142 Expected2 = [1.7, 1.3, -13.013],
143 Expected3 = [0, 0, 11.9761]))
144
145 elif args.finder=="MCTrueSeedFinder":
146 finder = cfg.popToolsAndMerge(MCTrueSeedFinderCfg(flags))
147 cfg.addEventAlgo(alg(name='testalg1',
148 VertexSeedFinderTool = finder,
149 McEventCollectionKey = 'G4Truth',
150 Expected3 = [1, 2, 12,
151 0.3, -0.7, -3,
152 0.6, 0.2, 7]))
153
154 cfg.run(2)
IndexedCrossDistancesSeedFinderCfg(flags, name='IndexedCrossDistancesSeedFinder', **kwargs)
CrossDistancesSeedFinderCfg(flags, name="CrossDistancesSeedFinder", **kwargs)
IVF_CrossDistancesSeedFinderCfg(flags, name="IVF_CrossDistancesSeedFinder", **kwargs)
MCTrueSeedFinderCfg(flags, name="MCTrueSeedFinder", **kwargs)
ZScanSeedFinderCfg(flags, name="ZScanSeedFinder", **kwargs)
DummySeedFinderCfg(flags, name="DummySeedFinder", **kwargs)
TrackDensitySeedFinderCfg(flags, name="TrackDensitySeedFinder", **kwargs)