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

00001 #ifndef _BDS_TRAJECTORY_HH__
00002 #define _BDS_TRAJECTORY_HH__
00003 
00004 #include "G4Trajectory.hh"
00005 #include "BDSTrajectoryPoint.hh"
00006 #include "G4Track.hh"
00007 #include "G4Step.hh"
00008 #include "G4ThreeVector.hh"
00009 #include <vector>
00010 
00011 class BDSTrajectory: public G4Trajectory{
00012 public:
00013   BDSTrajectory();
00014   BDSTrajectory(const G4Track* aTrack);
00015   BDSTrajectory(BDSTrajectory &);
00016   virtual ~BDSTrajectory();
00017 
00018   inline void* operator new(size_t);
00019   inline void operator delete(void*);
00020   inline int operator == (const BDSTrajectory& right) const
00021   {return (this==&right);}
00022 
00023   virtual void AppendStep(const G4Step* aStep);
00024   virtual void MergeTrajectory(G4VTrajectory* secondTrajectory);
00025 
00026   void printData();
00027   void printDataOfSteps();
00028   void printDataOfSteps(G4Step*);
00029   
00030   G4ThreeVector GetPositionOfLastScatter(G4Track* aTrack);
00031   G4ThreeVector GetMomDirAtLastScatter(G4Track* aTrack);
00032   G4double GetTimeAtLastScatter(G4Track* aTrack);
00033   G4double GetTimeAtVertex(G4Track* aTrack);
00034   G4double GetEnergyAtLastScatter(G4Track* aTrack);
00035 
00036 private:
00037   std::map<G4int,G4ThreeVector> _positionOfLastScatter;
00038   std::map<G4int,G4ThreeVector> _momDirAtLastScatter;
00039   std::map<G4int,G4double> _energyAtLastScatter;
00040   std::map<G4int,G4double> _timeAtLastScatter;
00041   std::map<G4int,G4double> _timeAtVertex;
00042 };
00043 
00044 extern G4Allocator<BDSTrajectory> bdsTrajectoryAllocator;
00045 
00046 inline void* BDSTrajectory::operator new(size_t){
00047   void* aTrajectory;
00048   aTrajectory = (void*)bdsTrajectoryAllocator.MallocSingle();
00049   return aTrajectory;
00050 }
00051 
00052 inline void BDSTrajectory::operator delete(void* aTrajectory){
00053   bdsTrajectoryAllocator.FreeSingle((BDSTrajectory*)aTrajectory);
00054 }
00055 
00056 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7