Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:35

0001 #ifndef GflashTrajectoryPoint_H
0002 #define GflashTrajectoryPoint_H
0003 
0004 #include "CLHEP/Geometry/Point3D.h"
0005 #include "CLHEP/Geometry/Vector3D.h"
0006 #include "SimGeneral/GFlash/interface/Gflash3Vector.h"
0007 
0008 class GflashTrajectoryPoint {
0009 public:
0010   //-------------------------
0011   // Constructor, destructor
0012   //-------------------------
0013   GflashTrajectoryPoint();
0014 
0015   GflashTrajectoryPoint(Gflash3Vector &position, Gflash3Vector &momentum, double pathLength);
0016 
0017   ~GflashTrajectoryPoint();
0018 
0019   double getPathLength() { return thePathLength; }
0020   Gflash3Vector &getPosition() { return thePosition; }
0021   Gflash3Vector &getMomentum() { return theMomentum; }
0022   Gflash3Vector getOrthogonalUnitVector() { return theMomentum.orthogonal().unit(); }
0023   Gflash3Vector getCrossUnitVector() { return theMomentum.cross(getOrthogonalUnitVector()).unit(); }
0024 
0025   void setPosition(const Gflash3Vector &position) { thePosition = position; }
0026   void setMomentum(const Gflash3Vector &momentum) { theMomentum = momentum; }
0027   void setPathLength(double pathLength) { thePathLength = pathLength; }
0028 
0029 private:
0030   Gflash3Vector thePosition;
0031   Gflash3Vector theMomentum;
0032   double thePathLength;
0033 };
0034 
0035 #endif