00001 #ifndef IMPL_TRACKSTATEIMPL_H
00002 #define IMPL_TRACKSTATEIMPL_H 1
00003
00004
00005 #include "EVENT/TrackState.h"
00006 #include "AccessChecked.h"
00007 #include <map>
00008
00009
00010 #define TRKSTATENCOVMATRIX 15
00011 #define TRKSTATENREFSIZE 3
00012
00013 namespace IMPL {
00014
00023 class TrackStateImpl : public EVENT::TrackState, public AccessChecked {
00024
00025 public:
00026
00029 TrackStateImpl() ;
00030 TrackStateImpl(int location, float d0, float phi, float omega, float z0, float tanLambda, const float* covMatrix, const float* reference) ;
00031 TrackStateImpl(int location, float d0, float phi, float omega, float z0, float tanLambda, const EVENT::FloatVec& covMatrix, const float* reference) ;
00033 TrackStateImpl(const EVENT::TrackState &p );
00034
00035
00036
00038 virtual ~TrackStateImpl() ;
00039
00040
00041 virtual int id() const { return simpleUID() ; }
00042
00043
00047 virtual int getLocation() const ;
00048
00052 virtual float getD0() const ;
00053
00056 virtual float getPhi() const ;
00057
00061 virtual float getOmega() const ;
00062
00066 virtual float getZ0() const ;
00067
00070 virtual float getTanLambda() const ;
00071
00076 virtual const EVENT::FloatVec & getCovMatrix() const ;
00077
00081 virtual const float* getReferencePoint() const ;
00082
00083
00084
00085 virtual void setLocation( int location ) ;
00086 virtual void setD0( float d0 ) ;
00087 virtual void setPhi( float phi ) ;
00088 virtual void setOmega( float omega ) ;
00089 virtual void setZ0( float z0 ) ;
00090 virtual void setTanLambda( float tanLambda ) ;
00091
00092 virtual void setCovMatrix( const float* cov ) ;
00093 virtual void setCovMatrix( const EVENT::FloatVec& cov ) ;
00094
00095 virtual void setReferencePoint( const float* rPnt) ;
00096
00097
00098 protected:
00099
00100 int _location{} ;
00101 float _d0 ;
00102 float _phi ;
00103 float _omega ;
00104 float _z0 ;
00105 float _tanLambda ;
00106
00107 EVENT::FloatVec _covMatrix ;
00108 float _reference[TRKSTATENREFSIZE]{} ;
00109
00110 };
00111
00112 }
00113 #endif
00114