CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SimGeneral/GFlash/interface/GflashTrajectoryPoint.h

Go to the documentation of this file.
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