Go to the documentation of this file.00001 #ifndef TR_MultiTrajectoryMeasurement_H_
00002 #define TR_MultiTrajectoryMeasurement_H_
00003
00004 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00005
00006 class TrackingRecHit;
00007 class TransientTrackingRecHit;
00008 class TrajectoryMeasurement;
00009 class TrajectoryStateOnSurface;
00010 class BoundSurface;
00011 class DetLayer;
00012
00013 #include <vector>
00014 #include <map>
00015
00016 class MultiTrajectoryMeasurement {
00017
00018 private:
00019
00020 typedef TrajectoryMeasurement TM;
00021 typedef TrajectoryStateOnSurface TSOS;
00022
00023 public:
00024
00025 MultiTrajectoryMeasurement();
00026
00027 MultiTrajectoryMeasurement(TransientTrackingRecHit::ConstRecHitPointer hit,
00028 const std::map<int,TSOS>& predictions,
00029 const std::map<int,TSOS>& updates,
00030 const DetLayer*);
00031
00032 MultiTrajectoryMeasurement(std::vector<TransientTrackingRecHit::ConstRecHitPointer>& hits,
00033 const std::map<int,const TransientTrackingRecHit*>& multihits,
00034 const std::map<int,TSOS>& predictions,
00035 const std::map<int,TSOS>& updates,
00036 const std::map<int,float>& estimates,
00037 const DetLayer*);
00038
00039 std::vector<TransientTrackingRecHit::ConstRecHitPointer> hits() const;
00040 std::map<int,const TransientTrackingRecHit*>& multiHits();
00041 std::map<int, TSOS>& filteredStates();
00042 std::map<int, TSOS>& predictedStates();
00043 std::map<int, float>& chi2s();
00044 const BoundSurface& surface() const;
00045 const DetLayer* layer() const;
00046
00047 private:
00048
00049 std::vector<TransientTrackingRecHit::ConstRecHitPointer> theRecHits;
00050 std::map<int,const TransientTrackingRecHit*> theMultiHits;
00051 std::map<int, TSOS> theFilteredStates;
00052 std::map<int, TSOS> thePredictedStates;
00053 std::map<int, float> theChi2s;
00054 const DetLayer* theLayer;
00055 };
00056
00057 #endif //TR_MultiTrajectoryMeasurement_H_
00058