CMS 3D CMS Logo

TrajectoryMeasurement.h

Go to the documentation of this file.
00001 #ifndef _TRACKER_TRAJECTORYMEASUREMENT_H_
00002 #define _TRACKER_TRAJECTORYMEASUREMENT_H_
00003 
00004 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00005 #include "boost/intrusive_ptr.hpp" 
00006 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00007 
00008 class DetLayer;
00009 
00024 class TrajectoryMeasurement {
00025 public:
00026 
00027   typedef TransientTrackingRecHit::RecHitPointer         RecHitPointer;
00028   typedef TransientTrackingRecHit::ConstRecHitPointer    ConstRecHitPointer;
00029 
00030   TrajectoryMeasurement() {}
00031 
00033   TrajectoryMeasurement(TrajectoryStateOnSurface fwdTrajectoryStateOnSurface,
00034                         ConstRecHitPointer aRecHit) :
00035     theFwdPredictedState(fwdTrajectoryStateOnSurface),
00036     theUpdatedState(fwdTrajectoryStateOnSurface),
00037     theRecHit(aRecHit),
00038     theEstimate(0), theLayer(0) {}
00039 
00041   TrajectoryMeasurement(TrajectoryStateOnSurface fwdTrajectoryStateOnSurface,
00042                         ConstRecHitPointer aRecHit, float aEstimate) :
00043     theFwdPredictedState(fwdTrajectoryStateOnSurface),
00044     theUpdatedState(fwdTrajectoryStateOnSurface),
00045     theRecHit(aRecHit),
00046     theEstimate(aEstimate), theLayer(0) {}
00047   TrajectoryMeasurement(TrajectoryStateOnSurface fwdTrajectoryStateOnSurface,
00048                         ConstRecHitPointer aRecHit, float aEstimate,
00049                         const DetLayer* layer) :
00050     theFwdPredictedState(fwdTrajectoryStateOnSurface),
00051     theUpdatedState(fwdTrajectoryStateOnSurface),
00052     theRecHit(aRecHit),
00053     theEstimate(aEstimate), theLayer(layer) {}
00054 
00056   TrajectoryMeasurement(TrajectoryStateOnSurface fwdPredTrajectoryStateOnSurface,
00057                         TrajectoryStateOnSurface uTrajectoryStateOnSurface,
00058                         ConstRecHitPointer aRecHit) :
00059     theFwdPredictedState(fwdPredTrajectoryStateOnSurface),
00060     theUpdatedState(uTrajectoryStateOnSurface),
00061     theRecHit(aRecHit),
00062     theEstimate(0), theLayer(0) {}
00063 
00065   TrajectoryMeasurement(TrajectoryStateOnSurface fwdPredTrajectoryStateOnSurface,
00066                         TrajectoryStateOnSurface uTrajectoryStateOnSurface,
00067                         ConstRecHitPointer aRecHit, float aEstimate) :
00068     theFwdPredictedState(fwdPredTrajectoryStateOnSurface),
00069     theUpdatedState(uTrajectoryStateOnSurface),
00070     theRecHit(aRecHit),
00071     theEstimate(aEstimate), theLayer(0) {}
00072   TrajectoryMeasurement(TrajectoryStateOnSurface fwdPredTrajectoryStateOnSurface,
00073                         TrajectoryStateOnSurface uTrajectoryStateOnSurface,
00074                         ConstRecHitPointer aRecHit, float aEstimate,
00075                         const DetLayer* layer) :
00076     theFwdPredictedState(fwdPredTrajectoryStateOnSurface),
00077     theUpdatedState(uTrajectoryStateOnSurface),
00078     theRecHit(aRecHit),
00079     theEstimate(aEstimate), theLayer(layer) {}
00080 
00084   TrajectoryMeasurement(TrajectoryStateOnSurface fwdPredTrajectoryStateOnSurface,
00085                         TrajectoryStateOnSurface bwdPredTrajectoryStateOnSurface,
00086                         TrajectoryStateOnSurface uTrajectoryStateOnSurface,
00087                         ConstRecHitPointer aRecHit) :
00088     theFwdPredictedState(fwdPredTrajectoryStateOnSurface),
00089     theBwdPredictedState(bwdPredTrajectoryStateOnSurface),
00090     theUpdatedState(uTrajectoryStateOnSurface),
00091     theRecHit(aRecHit),
00092     theEstimate(0), theLayer(0) {}
00093 
00097   TrajectoryMeasurement(TrajectoryStateOnSurface fwdPredTrajectoryStateOnSurface,
00098                         TrajectoryStateOnSurface bwdPredTrajectoryStateOnSurface,
00099                         TrajectoryStateOnSurface uTrajectoryStateOnSurface,
00100                         ConstRecHitPointer aRecHit, float aEstimate) :
00101     theFwdPredictedState(fwdPredTrajectoryStateOnSurface),
00102     theBwdPredictedState(bwdPredTrajectoryStateOnSurface),
00103     theUpdatedState(uTrajectoryStateOnSurface),
00104     theRecHit(aRecHit),
00105     theEstimate(aEstimate), theLayer(0) {}
00106   TrajectoryMeasurement(TrajectoryStateOnSurface fwdPredTrajectoryStateOnSurface,
00107                         TrajectoryStateOnSurface bwdPredTrajectoryStateOnSurface,
00108                         TrajectoryStateOnSurface uTrajectoryStateOnSurface,
00109                         ConstRecHitPointer aRecHit, float aEstimate,
00110                         const DetLayer* layer) :
00111     theFwdPredictedState(fwdPredTrajectoryStateOnSurface),
00112     theBwdPredictedState(bwdPredTrajectoryStateOnSurface),
00113     theUpdatedState(uTrajectoryStateOnSurface),
00114     theRecHit(aRecHit),
00115     theEstimate(aEstimate), theLayer(layer) {}
00116 
00117   ~TrajectoryMeasurement() {
00118     //
00119     // NO! it crashes!!!
00120     //
00121     //    delete theRecHit;
00122   }
00123 
00127   TrajectoryStateOnSurface predictedState() const {
00128     return theFwdPredictedState;
00129   }
00130 
00132   TrajectoryStateOnSurface forwardPredictedState() const {
00133     return theFwdPredictedState;
00134   }
00136   TrajectoryStateOnSurface backwardPredictedState() const {
00137     return theBwdPredictedState;
00138   }
00139 
00143   TrajectoryStateOnSurface updatedState() const {
00144     return theUpdatedState;
00145   }
00146 
00147   ConstRecHitPointer recHit() const {
00148     return theRecHit;
00149   }
00150 
00151   float estimate() const { return theEstimate;}
00152 
00153   const DetLayer* layer() const { return theLayer;}
00154 
00155 private:
00156   TrajectoryStateOnSurface theFwdPredictedState;
00157   TrajectoryStateOnSurface theBwdPredictedState;
00158   TrajectoryStateOnSurface theUpdatedState;
00159   ConstRecHitPointer       theRecHit;
00160   float theEstimate;
00161   const DetLayer* theLayer;
00162 };
00163 
00164 #endif

Generated on Tue Jun 9 17:48:23 2009 for CMSSW by  doxygen 1.5.4