00001 #ifndef GflashTrajectoryPoint_H 00002 #define GflashTrajectoryPoint_H 00003 00004 #include "G4ThreeVector.hh" 00005 00006 class GflashTrajectoryPoint { 00007 00008 public: 00009 //------------------------- 00010 // Constructor, destructor 00011 //------------------------- 00012 GflashTrajectoryPoint(); 00013 00014 GflashTrajectoryPoint(G4ThreeVector& position, G4ThreeVector& momentum, 00015 double pathLength); 00016 00017 ~GflashTrajectoryPoint(); 00018 00019 double getPathLength() { return thePathLength; } 00020 G4ThreeVector& getPosition() { return thePosition; } 00021 G4ThreeVector& getMomentum() { return theMomentum; } 00022 G4ThreeVector getOrthogonalUnitVector() { return theMomentum.orthogonal().unit(); } 00023 G4ThreeVector getCrossUnitVector() { return theMomentum.cross(getOrthogonalUnitVector()).unit(); } 00024 00025 void setPosition(const G4ThreeVector& position ) { thePosition = position; } 00026 void setMomentum(const G4ThreeVector& momentum ) { theMomentum = momentum; } 00027 void setPathLength(double pathLength ) { thePathLength = pathLength; } 00028 00029 private: 00030 G4ThreeVector thePosition; 00031 G4ThreeVector theMomentum; 00032 double thePathLength; 00033 }; 00034 00035 #endif 00036 00037