39 : ActsExamples::
BareAlgorithm(
"IterativeVertexFinder", lvl), m_cfg(cfg) {
41 throw std::invalid_argument(
"Missing input track parameters collection");
44 throw std::invalid_argument(
"Missing output proto vertices collection");
51 const auto& inputTrackParameters =
53 const auto& inputTrackPointers =
63 using ImpactPointEstimator =
67 using VertexFinderOptions =
71 MagneticField
bField(m_cfg.bField);
73 auto propagator = std::make_shared<Propagator>(
Stepper(bField));
81 Linearizer linearizer(std::move(linearizerCfg));
84 ImpactPointEstimator ipEst(std::move(ipEstCfg));
86 VertexSeeder seeder(std::move(seederCfg));
89 std::move(seeder), ipEst);
90 finderCfg.maxVertices = 200;
91 finderCfg.reassignTracksAfterFirstFit =
true;
97 auto result = finder.find(inputTrackPointers, finderOpts, state);
98 if (not result.ok()) {
99 ACTS_ERROR(
"Error in vertex finder: " << result.error().message());
100 return ProcessCode::ABORT;
102 auto vertices = *result;
105 ACTS_INFO(
"Found " << vertices.size() <<
" vertices in event");
106 for (
const auto&
vtx : vertices) {
107 ACTS_INFO(
"Found vertex at " <<
vtx.fullPosition().transpose() <<
" with "
108 <<
vtx.tracks().size() <<
" tracks.");