Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:08

0001 
0002 #ifndef TRACKBASE_CALIBRATOR_H
0003 #define TRACKBASE_CALIBRATOR_H
0004 
0005 #include "ActsSourceLink.h"
0006 #include "TrkrDefs.h"
0007 #include "alignmentTransformationContainer.h"
0008 
0009 #include <Acts/EventData/Measurement.hpp>
0010 #include <Acts/EventData/MultiTrajectory.hpp>
0011 #include <Acts/EventData/VectorMultiTrajectory.hpp>
0012 
0013 
0014 class Calibrator
0015 {
0016  public:
0017   using Measurement = ::Acts::BoundVariantMeasurement;
0018   /// Container of measurements.
0019   ///
0020   /// In contrast to the source links, the measurements themself must not be
0021   /// orderable. The source links stored in the measurements are treated
0022   /// as opaque here and no ordering is enforced on the stored measurements.
0023   using MeasurementContainer = std::vector<Measurement>;
0024 
0025   void calibrate(const MeasurementContainer& measurements,
0026                  const Acts::GeometryContext& gctx,
0027                  const Acts::CalibrationContext&,
0028                  const Acts::SourceLink& sourceLink,
0029                  Acts::VectorMultiTrajectory::TrackStateProxy& trackState) const;
0030   virtual ~Calibrator() = default;
0031 };
0032 
0033 class CalibratorAdapter
0034 {
0035  public:
0036   /// Construct using a user-provided container to chose measurements from.
0037   CalibratorAdapter(const Calibrator& calibrator,
0038                     const Calibrator::MeasurementContainer& measurements)
0039     : m_calibrator{calibrator}
0040     , m_measurements{measurements}
0041   {
0042   }
0043 
0044   CalibratorAdapter() = delete;
0045 
0046   void calibrate(const Acts::GeometryContext& gctx,
0047                  const Acts::CalibrationContext& cctx,
0048                  const Acts::SourceLink& sourceLink,
0049                  Acts::VectorMultiTrajectory::TrackStateProxy trackState) const;
0050 
0051  private:
0052   const Calibrator& m_calibrator;
0053   const Calibrator::MeasurementContainer& m_measurements;
0054 };
0055 
0056 #endif