00001 #ifndef LayerMeasurements_H 00002 #define LayerMeasurements_H 00003 00004 00005 #include <vector> 00006 00007 class TrajectoryStateOnSurface; 00008 class Propagator; 00009 class MeasurementEstimator; 00010 class TrajectoryMeasurement; 00011 class TrajectoryMeasurementGroup; 00012 class MeasurementDetSystem; 00013 class DetLayer; 00014 class DetGroup; 00015 00016 class LayerMeasurements { 00017 public: 00018 00019 LayerMeasurements( const MeasurementDetSystem* detSysytem) : 00020 theDetSystem (detSysytem) {} 00021 00022 std::vector<TrajectoryMeasurement> 00023 measurements( const DetLayer& layer, 00024 const TrajectoryStateOnSurface& startingState, 00025 const Propagator& prop, 00026 const MeasurementEstimator& est) const; 00027 00028 std::vector<TrajectoryMeasurementGroup> 00029 groupedMeasurements( const DetLayer& layer, 00030 const TrajectoryStateOnSurface& startingState, 00031 const Propagator& prop, 00032 const MeasurementEstimator& est) const; 00033 00034 00035 void addInvalidMeas( std::vector<TrajectoryMeasurement>& measVec, 00036 const DetGroup& group, 00037 const DetLayer& layer) const; 00038 00039 private: 00040 00041 const MeasurementDetSystem* theDetSystem; 00042 00043 }; 00044 00045 #endif