49 using ValueType =
typename CollectionType::value_type;
52 Acts::detail::RefHolder>;
58 std::size_t size_impl()
const {
return storage().size(); }
59 float x_impl(std::size_t idx)
const {
return storage()[idx]->x(); }
60 float y_impl(std::size_t idx)
const {
return storage()[idx]->y(); }
61 float z_impl(std::size_t idx)
const {
return storage()[idx]->z(); }
62 float varianceR_impl(std::size_t idx)
const {
return storage()[idx]->varianceR(); }
63 float varianceZ_impl(std::size_t idx)
const {
return storage()[idx]->varianceZ(); }
64 const ValueType& get_impl(std::size_t idx)
const {
return storage()[idx]; }
65 std::any component_impl(Acts::HashedString , std::size_t )
const {
66 throw std::runtime_error(
67 "SpacePointContainerAdapter does not support detailed double measurement "
68 "information (useDetailedDoubleMeasurementInfo). Use Acts::SpacePointContainer2 "
69 "if this feature is required.");
74 Acts::detail::RefHolder<CollectionType> m_storage;
85#if __has_include(<ActsExamples/EventData/SpacePointContainer.hpp>)
92 Acts::detail::RefHolder>::SpacePointProxyType;
97 {
"outputTrackParameters"},
98 "create track seeds from tracker hits"} {}
101 void process(const Input&, const Output&) const final;
104 const
algorithms::ActsSvc& m_actsSvc{algorithms::ActsSvc::instance()};
105 const std::shared_ptr<const ActsGeometryProvider> m_geoSvc{m_actsSvc.acts_geometry_provider()};
107 Acts::SeedFilterConfig m_seedFilterConfig;
108 Acts::SeedFinderOptions m_seedFinderOptions;
109 Acts::SeedFinderOrthogonalConfig<proxy_type> m_seedFinderConfig;
111 static int determineCharge(std::vector<std::pair<float, float>>& positions,
112 const std::pair<float, float>& PCA,
113 std::tuple<float, float, float>& RX0Y0);
114 static std::pair<float, float> findPCA(std::tuple<float, float, float>& circleParams);
115 static std::vector<const eicrecon::SpacePoint*>
116 getSpacePoints(
const edm4eic::TrackerHitCollection& trk_hits);
117 std::optional<edm4eic::MutableTrackParameters>
118 estimateTrackParamsFromSeed(
const Acts::Seed<SpacePoint>& seed)
const;
120 static std::tuple<float, float, float> circleFit(std::vector<std::pair<float, float>>& positions);
121 static std::tuple<float, float> lineFit(std::vector<std::pair<float, float>>& positions);
algorithms::Algorithm< algorithms::Input< edm4eic::TrackerHitCollection >, algorithms::Output< edm4eic::TrackSeedCollection, edm4eic::TrackParametersCollection > > TrackSeedingAlgorithm
Definition TrackSeeding.h:80