CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoTracker/SiTrackerMRHTools/src/MultiTrajectoryMeasurement.cc

Go to the documentation of this file.
00001 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" //added
00002 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"  //added
00003 #include "RecoTracker/SiTrackerMRHTools/interface/MultiTrajectoryMeasurement.h"  //added
00004 #include "TrackingTools/DetLayers/interface/DetLayer.h"    //added
00005 #include "DataFormats/GeometrySurface/interface/BoundSurface.h"   //added
00006 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"  //added
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   //return hits().front()->det().surface();
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