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