File indexing completed on 2026-05-07 07:59:15
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Geometry/GeometryIdentifier.hpp"
0012 #include "Acts/Propagator/EigenStepper.hpp"
0013 #include "Acts/Propagator/Navigator.hpp"
0014 #include "Acts/Propagator/Propagator.hpp"
0015 #include "Acts/Propagator/detail/SteppingLogger.hpp"
0016 #include "Acts/TrackFitting/KalmanFitter.hpp"
0017 #include "ActsAlignment/Kernel/Alignment.hpp"
0018 #include "ActsExamples/Framework/DataHandle.hpp"
0019 #include "ActsExamples/Framework/IAlgorithm.hpp"
0020
0021 #include <memory>
0022
0023 namespace Acts {
0024 class MagneticFieldProvider;
0025 }
0026
0027 namespace ActsExamples {
0028
0029
0030
0031
0032 class ActsSolverFromMille final : public IAlgorithm {
0033 public:
0034 using SteppingLogger = Acts::detail::SteppingLogger;
0035 using EndOfWorld = Acts::EndOfWorldReached;
0036 using Stepper = Acts::EigenStepper<>;
0037 using Propagator = Acts::Propagator<Stepper, Acts::Navigator>;
0038 using Fitter = Acts::KalmanFitter<Propagator, Acts::VectorMultiTrajectory>;
0039 using Alignment = ActsAlignment::Alignment<Fitter>;
0040
0041 using AlignmentParameters =
0042 std::unordered_map<Acts::SurfacePlacementBase*, Acts::Transform3>;
0043
0044
0045 struct Config {
0046
0047
0048
0049
0050 std::string milleInput;
0051
0052 std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry;
0053
0054 std::shared_ptr<const Acts::MagneticFieldProvider> magneticField;
0055
0056 std::set<Acts::GeometryIdentifier> fixModules;
0057 };
0058
0059
0060
0061
0062 explicit ActsSolverFromMille(
0063 Config cfg, std::unique_ptr<const Acts::Logger> logger = nullptr);
0064
0065
0066
0067
0068
0069 ProcessCode execute(const AlgorithmContext& ctx) const override;
0070 ProcessCode finalize() override;
0071
0072
0073 const Config& config() const { return m_cfg; }
0074
0075 private:
0076
0077 Config m_cfg;
0078
0079
0080 std::shared_ptr<Alignment> m_align;
0081
0082 std::shared_ptr<const Acts::TrackingGeometry> m_trackingGeometry;
0083 };
0084
0085 }