Go to the documentation of this file.00001 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00002 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
00003 #include "RecoTracker/SiTrackerMRHTools/interface/MultiTrajectoryMeasurement.h"
00004 #include "TrackingTools/DetLayers/interface/DetLayer.h"
00005 #include "DataFormats/GeometrySurface/interface/BoundSurface.h"
00006 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00007
00008 MultiTrajectoryMeasurement::MultiTrajectoryMeasurement() {}
00009
00010 MultiTrajectoryMeasurement::MultiTrajectoryMeasurement(TransientTrackingRecHit::ConstRecHitPointer hit,
00011 const std::map<int, TSOS>& predictions,
00012 const std::map<int, TSOS>& updates,
00013 const DetLayer* lay) :
00014 theRecHits(std::vector<TransientTrackingRecHit::ConstRecHitPointer>(1, hit)),
00015 theMultiHits(std::map<int,const TransientTrackingRecHit*>()),
00016 theFilteredStates(updates),
00017 thePredictedStates(predictions),
00018 theChi2s(std::map<int,float>()),
00019 theLayer(lay) {}
00020
00021 MultiTrajectoryMeasurement::MultiTrajectoryMeasurement(std::vector<TransientTrackingRecHit::ConstRecHitPointer>& hits,
00022 const std::map<int,const TransientTrackingRecHit*>& multiHits,
00023 const std::map<int, TSOS>& predictions,
00024 const std::map<int, TSOS>& updates,
00025 const std::map<int, float>& chi2s,
00026 const DetLayer* lay) :
00027 theRecHits(hits),
00028 theMultiHits(multiHits),
00029 theFilteredStates(updates),
00030 thePredictedStates(predictions),
00031 theChi2s(chi2s),
00032
00033 theLayer(lay) {}
00034
00035 std::vector<TransientTrackingRecHit::ConstRecHitPointer> MultiTrajectoryMeasurement::hits() const {
00036
00037 return theRecHits;
00038 }
00039
00040 std::map<int,const TransientTrackingRecHit*>& MultiTrajectoryMeasurement::multiHits() {
00041
00042 return theMultiHits;
00043 }
00044
00045 std::map<int, TrajectoryStateOnSurface>& MultiTrajectoryMeasurement::filteredStates() {
00046
00047 return theFilteredStates;
00048 }
00049
00050 std::map<int, TrajectoryStateOnSurface>& MultiTrajectoryMeasurement::predictedStates() {
00051
00052 return thePredictedStates;
00053 }
00054
00055 std::map<int, float>& MultiTrajectoryMeasurement::chi2s() {
00056
00057 return theChi2s;
00058 }
00059
00060 const BoundSurface& MultiTrajectoryMeasurement::surface() const {
00061 if(hits().empty()) {
00062 std::cout << "MultiTrajectoryMeasurement::surface() no hits" << std::endl;
00063 std::cout << "Program segmentation faults now. Have a nice day." << std::endl;
00064 }
00065
00066 return layer()->surface();
00067 }
00068
00069 const DetLayer* MultiTrajectoryMeasurement::layer() const {
00070
00071 if(theLayer == 0) std::cout << "MultiTrajectoryMeasurement::layer() is 0!" << std::endl;
00072 return theLayer;
00073 }
00074