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
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