00001
00002 #ifndef IMPL_TrackerHitZCylinderImpl_H
00003 #define IMPL_TrackerHitZCylinderImpl_H 1
00004
00005 #include <string>
00006
00007 #include "EVENT/TrackerHitZCylinder.h"
00008 #include "IMPL/AccessChecked.h"
00009
00010 #define TRKHITZCYLNCOVMATRIX 6
00011
00012 namespace IMPL {
00013
00020 class TrackerHitZCylinderImpl : public EVENT::TrackerHitZCylinder , public AccessChecked {
00021
00022 public:
00023
00024 TrackerHitZCylinderImpl() ;
00025
00027 virtual ~TrackerHitZCylinderImpl() ;
00028
00029
00030 virtual int id() const { return simpleUID() ; }
00031
00034 virtual int getCellID0() const { return _cellID0; }
00035
00040 virtual int getCellID1() const { return _cellID1; }
00041
00042
00045 virtual const double* getPosition() const { return _pos ; } ;
00046
00049
00050
00053 virtual const float* getCenter() const { return _center ; } ;
00054
00056 virtual float getdRPhi() const { return _drphi ; } ;
00057
00059 virtual float getdZ() const { return _dz ; } ;
00060
00061
00064 virtual const EVENT::FloatVec & getCovMatrix() const ;
00065
00070 virtual float getdEdx() const ;
00071
00074 virtual float getEDep() const { return _EDep ; }
00075
00078 virtual float getEDepError() const { return _EDepError ; }
00079
00082 virtual float getTime() const { return _time ; } ;
00083
00088 virtual int getType() const { return _type ; }
00089
00090
00093 virtual int getQuality() const { return _quality ; }
00094
00098 virtual const EVENT::LCObjectVec & getRawHits() const { return _rawHits ; }
00099
00100
00103 virtual EVENT::LCObjectVec & rawHits() { return _rawHits ; }
00104
00105
00106
00107
00110 void setCellID0(int id0) ;
00111
00116 void setCellID1(int id1) ;
00117
00118 void setType(int type) ;
00119 void setPosition( const double pos[3]) ;
00120 void setCenter( const float c[2] ) { setCenter( c[0] , c[1] ) ; };
00121 void setCenter( float xc, float yc);
00122
00123 void setdRPhi( float drphi );
00124 void setdZ( float dz );
00125 void setEDep( float e ) ;
00126 void setEDepError( float e ) ;
00127 void setTime( float t ) ;
00128 void setQuality( int quality ) ;
00129 void setQualityBit( int bit , bool val=true ) ;
00130
00131
00132
00133
00134 protected:
00135
00136 int _cellID0 ;
00137 int _cellID1 ;
00138
00139 int _type ;
00140 double _pos[3] = {0,0,0} ;
00141 float _center[2] = {0,0};
00142 float _drphi ;
00143 float _dz ;
00144 float _EDep ;
00145 float _EDepError ;
00146 float _time ;
00147 int _quality ;
00148 mutable EVENT::FloatVec _cov ;
00149 EVENT::LCObjectVec _rawHits ;
00150
00151
00152 };
00153 }
00154 #endif // #ifndef IMPL_TrackerHitZCylinderImpl_H
00155