00001
00002 #ifndef IMPL_TrackerHitPlaneImpl_H
00003 #define IMPL_TrackerHitPlaneImpl_H 1
00004
00005 #include <string>
00006
00007 #include "EVENT/TrackerHitPlane.h"
00008 #include "IMPL/AccessChecked.h"
00009
00010 #define TRKHITPLANENCOVMATRIX 6
00011
00012 namespace IMPL {
00013
00020 class TrackerHitPlaneImpl : public EVENT::TrackerHitPlane , public AccessChecked {
00021
00022 public:
00023
00024 TrackerHitPlaneImpl() ;
00025
00027 virtual ~TrackerHitPlaneImpl() ;
00028
00029
00030 virtual int id() const { return simpleUID() ; }
00031
00032
00035 virtual int getCellID0() const { return _cellID0; }
00036
00041 virtual int getCellID1() const { return _cellID1; }
00042
00043
00046 virtual const double* getPosition() const { return _pos ; } ;
00047
00051 virtual const float* getU() const { return _u ; }
00052
00056 virtual const float* getV() const { return _v ; }
00057
00059 virtual float getdU() const { return _du ; }
00060
00062 virtual float getdV() const { return _dv ; }
00063
00064
00067 virtual const EVENT::FloatVec & getCovMatrix() const ;
00068
00073 virtual float getdEdx() const ;
00074
00077 virtual float getEDep() const { return _EDep ; }
00078
00081 virtual float getEDepError() const { return _EDepError ; }
00082
00085 virtual float getTime() const { return _time ; } ;
00086
00091 virtual int getType() const { return _type ; }
00092
00093
00096 virtual int getQuality() const { return _quality ; }
00097
00101 virtual const EVENT::LCObjectVec & getRawHits() const { return _rawHits ; }
00102
00103
00106 virtual EVENT::LCObjectVec & rawHits() { return _rawHits ; }
00107
00108
00109
00110
00113 void setCellID0(int id0) ;
00114
00119 void setCellID1(int id1) ;
00120 void setType(int type) ;
00121 void setPosition( const double pos[3]) ;
00122 void setU( const float u[2] ) { setU( u[0] , u[1] ) ; }
00123 void setU( float theta, float phi);
00124 void setV( const float v[2] ) { setV( v[0] , v[1] ) ; };
00125 void setV( float theta, float phi);
00126 void setdU( float du );
00127 void setdV( float dv );
00128 void setEDep( float e ) ;
00129 void setEDepError( float e ) ;
00130 void setTime( float t ) ;
00131 void setQuality( int quality ) ;
00132 void setQualityBit( int bit , bool val=true ) ;
00133
00134 protected:
00135
00136 int _cellID0 ;
00137 int _cellID1 ;
00138
00139 int _type ;
00140 double _pos[3] = {0,0,0};
00141 float _u[2] = {0,0};
00142 float _v[2] = {0,0};
00143 float _du ;
00144 float _dv ;
00145 float _EDep ;
00146 float _EDepError ;
00147 float _time ;
00148 int _quality ;
00149 mutable EVENT::FloatVec _cov ;
00150 EVENT::LCObjectVec _rawHits ;
00151
00152
00153 };
00154 }
00155 #endif // #ifndef IMPL_TrackerHitPlaneImpl_H