File indexing completed on 2024-04-06 12:28:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef SiTrackerMRHTools_GroupedDAFHitCollector_h
0011 #define SiTrackerMRHTools_GroupedDAFHitCollector_h
0012
0013 #include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
0014 #include "RecoTracker/SiTrackerMRHTools/interface/MultiRecHitCollector.h"
0015 #include <vector>
0016
0017 class Propagator;
0018 class MeasurementEstimator;
0019 class MeasurementTracker;
0020 class SiTrackerMultiRecHitUpdator;
0021
0022 class GroupedDAFHitCollector : public MultiRecHitCollector {
0023 public:
0024 explicit GroupedDAFHitCollector(const MeasurementTracker* measurementTracker,
0025 const SiTrackerMultiRecHitUpdator* updator,
0026 const MeasurementEstimator* est,
0027 const Propagator* propagator,
0028 const Propagator* reversePropagator,
0029 bool debug)
0030 : MultiRecHitCollector(measurementTracker),
0031 theUpdator(updator),
0032 theEstimator(est),
0033 thePropagator(propagator),
0034 theReversePropagator(reversePropagator),
0035 debug_(debug) {}
0036
0037 ~GroupedDAFHitCollector() override {}
0038
0039 std::vector<TrajectoryMeasurement> recHits(const Trajectory&, const MeasurementTrackerEvent* theMT) const override;
0040
0041 const SiTrackerMultiRecHitUpdator* getUpdator() const { return theUpdator; }
0042 const MeasurementEstimator* getEstimator() const { return theEstimator; }
0043 const Propagator* getPropagator() const { return thePropagator; }
0044 const Propagator* getReversePropagator() const { return theReversePropagator; }
0045
0046 private:
0047 void buildMultiRecHits(const std::vector<TrajectoryMeasurementGroup>& measgroup,
0048 std::vector<TrajectoryMeasurement>& result,
0049 const MeasurementTrackerEvent*& theMTE) const;
0050
0051 const SiTrackerMultiRecHitUpdator* theUpdator;
0052 const MeasurementEstimator* theEstimator;
0053 const Propagator* thePropagator;
0054 const Propagator* theReversePropagator;
0055 const bool debug_;
0056 };
0057
0058 #endif