19 : ActsExamples::
BareAlgorithm(
"TrackFindingAlgorithm", level),
20 m_cfg(std::move(cfg)) {
22 throw std::invalid_argument(
"Missing input source links collection");
25 throw std::invalid_argument(
26 "Missing input initial track parameters collection");
29 throw std::invalid_argument(
"Missing output trajectories collection");
36 const auto sourceLinks =
39 m_cfg.inputInitialTrackParameters);
43 trajectories.reserve(initialParameters.size());
46 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(
60 for (std::size_t iseed = 0; iseed < initialParameters.size(); ++iseed) {
61 const auto& initialParams = initialParameters[iseed];
63 ACTS_DEBUG(
"Invoke track finding seeded by truth particle " << iseed);
64 auto result = m_cfg.findTracks(sourceLinks, initialParams, ckfOptions);
67 const auto& trackFindingOutput = result.value();
69 trajectories.emplace_back(std::move(trackFindingOutput.fittedStates),
70 std::move(trackFindingOutput.trackTips),
71 std::move(trackFindingOutput.fittedParameters));
74 << iseed <<
" with error" << result.error());
80 ctx.
eventStore.
add(m_cfg.outputTrajectories, std::move(trajectories));