Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:26:28

0001 #ifndef TrajectoryMeasurementGroup_H
0002 #define TrajectoryMeasurementGroup_H
0003 
0004 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0005 #include "TrackingTools/DetLayers/interface/DetGroup.h"
0006 #include <vector>
0007 #include <utility>
0008 
0009 /** A class that facilitates grouping of trajectory measurements
0010  *  according to the group of Dets from which they come.
0011  *  Functionally equivalent to 
0012  *  pair<vector<TrajectoryMeasurement>, vector<DetWithState> > 
0013  *  but with a more convenient interface.
0014  *  Used as a return type for the CompositeDet::groupedMeasurements method.
0015  */
0016 
0017 class TrajectoryMeasurementGroup {
0018 public:
0019   TrajectoryMeasurementGroup() {}
0020   TrajectoryMeasurementGroup(const std::vector<TrajectoryMeasurement>& meas, const DetGroup& dg)
0021       : measurements_(meas), detGroup_(dg) {}
0022 
0023   TrajectoryMeasurementGroup(std::vector<TrajectoryMeasurement>&& meas, const DetGroup& dg)
0024       : measurements_(std::move(meas)), detGroup_(dg) {}
0025   TrajectoryMeasurementGroup(std::vector<TrajectoryMeasurement>&& meas, DetGroup&& dg)
0026       : measurements_(std::move(meas)), detGroup_(std::move(dg)) {}
0027 
0028   const std::vector<TrajectoryMeasurement>& measurements() const { return measurements_; }
0029   std::vector<TrajectoryMeasurement>& measurements() { return measurements_; }
0030   const DetGroup& detGroup() const { return detGroup_; }
0031 
0032 private:
0033   std::vector<TrajectoryMeasurement> measurements_;
0034   DetGroup detGroup_;
0035 };
0036 
0037 #endif