/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSTrajectoryPoint.hh

00001 #ifndef _BDS_TRAJECTORY_POINT_HH__
00002 #define _BDS_TRAJECTORY_POINT_HH__
00003 
00004 #include "G4TrajectoryPoint.hh"
00005 #include "G4Track.hh"
00006 #include "G4Allocator.hh"
00007 
00008 class BDSTrajectoryPoint: public G4TrajectoryPoint{
00009 public:
00010   BDSTrajectoryPoint();
00011   BDSTrajectoryPoint(const G4Track* aTrack);
00012   ~BDSTrajectoryPoint();
00013 
00014   inline void *operator new(size_t);
00015   inline void operator delete(void *aTrajectoryPoint);
00016   inline int operator==(const BDSTrajectoryPoint& right) const
00017   {return (this==&right);};
00018 
00019   inline G4bool isScatteringProcess(){return _isScatteringProcess;}
00020   inline G4int GetTrackID(){return _trackID;}
00021   void printData();
00022   inline G4ThreeVector GetVertexPosition(){return _vertexPosition;}
00023 
00024   
00025 private:
00026   G4bool _isScatteringProcess;
00027   const G4VProcess* _currentProcess;
00028   G4int _trackID;
00029   G4ThreeVector _vertexPosition;
00030 };
00031 
00032 extern G4Allocator<BDSTrajectoryPoint> bdsTrajectoryPointAllocator;
00033 
00034 inline void* BDSTrajectoryPoint::operator new(size_t)
00035 {
00036   void *aTrajectoryPoint;
00037   aTrajectoryPoint = (void *) bdsTrajectoryPointAllocator.MallocSingle();
00038   return aTrajectoryPoint;
00039 }
00040 
00041 inline void BDSTrajectoryPoint::operator delete(void *aTrajectoryPoint)
00042 {
00043   bdsTrajectoryPointAllocator.FreeSingle((BDSTrajectoryPoint *) aTrajectoryPoint);
00044 }
00045 
00046 
00047 
00048 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7