00001 #ifndef IMPL_SIMTRACKERHITIMPL_H
00002 #define IMPL_SIMTRACKERHITIMPL_H 1
00003
00004
00005 #include "EVENT/SimTrackerHit.h"
00006 #include "EVENT/MCParticle.h"
00007 #include "AccessChecked.h"
00008
00009
00010 namespace IMPL {
00011
00012
00020 class SimTrackerHitImpl : public EVENT::SimTrackerHit, public AccessChecked {
00021
00022 public:
00023
00026 SimTrackerHitImpl() ;
00027
00029 SimTrackerHitImpl(const SimTrackerHitImpl&) = default ;
00030
00032 SimTrackerHitImpl& operator=(const SimTrackerHitImpl&) = default ;
00033
00035 virtual ~SimTrackerHitImpl() ;
00036
00037 virtual int id() const { return simpleUID() ; }
00038
00041 virtual int getCellID() const ;
00042
00045 virtual int getCellID0() const ;
00046
00051 virtual int getCellID1() const ;
00052
00056 virtual const double * getPosition() const ;
00057
00062 virtual float getdEdx() const ;
00063
00066 virtual float getEDep() const ;
00067
00068
00071 virtual float getTime() const ;
00072
00073
00077 virtual EVENT::MCParticle * getMCParticle() const ;
00078
00079
00083 virtual const float* getMomentum() const ;
00084
00088 virtual float getPathLength() const ;
00089
00092 virtual int getQuality() const { return _quality ; }
00093
00094
00095
00098 void setCellID0(int id0) ;
00099
00104 void setCellID1(int id1) ;
00105
00108 void setPosition( const double pos[3]) ;
00109
00114 void setdEdx( float dEdX ) ;
00115
00118 void setEDep( float e ) ;
00119
00122 void setTime( float t ) ;
00123
00126 void setMCParticle( EVENT::MCParticle* particle) ;
00127
00130 void setMomentum( const float p[3] ) ;
00131
00134 void setMomentum( float px, float py, float pz ) ;
00135
00136
00137
00138 void setPathLength(float pathLength);
00139
00140
00141
00142 void setQuality( int quality ) ;
00143
00144
00145
00146 void setQualityBit( int bit , bool val=true ) ;
00147
00150 virtual bool isOverlay() const ;
00151
00154 virtual bool isProducedBySecondary() const ;
00155
00156
00157 void setOverlay(bool val) ;
00158
00159 void setProducedBySecondary(bool val) ;
00160
00161 protected:
00162 int _cellID0 ;
00163 int _cellID1 ;
00164 double _pos[3] ;
00165 float _EDep ;
00166 float _time ;
00167 EVENT::MCParticle* _particle ;
00168 float _p[3] ;
00169 float _pathLength ;
00170 int _quality ;
00171
00172 };
00173 }
00174 #endif