9 #include <utl/config.h>
10 #include <utl/BasicVector.h>
11 #include <utl/TransformationMatrix.h>
12 #include <CLHEP/Geometry/Point3D.h>
13 #include <CLHEP/Geometry/Vector3D.h>
22 template<
class HepVector>
28 return HepVector(fCoordinateSystem->GetTransformationTo(newCoordinateSystem).fTransform * fVector);
32 template<
class HepVector>
39 return rho * cos(phi);
43 template<
class HepVector>
50 return rho * sin(phi);
54 template<
class HepVector>
65 template<
class HepVector>
72 return r * cos(phi) * sin(theta);
76 template<
class HepVector>
83 return r * sin(phi) * sin(theta);
87 template<
class HepVector>
94 return r * cos(theta);
98 template<
class HepVector>
102 template<
class HepVector>
106 template<
class HepVector>
110 template<
class HepVector>
114 template<
class HepVector>
virtual double X(double rho, double phi, double z) const override
virtual double Z(double rho, double phi, double z) const override
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
Basic vector class template for geometry.
DataType TransformedVector(const CoordinateSystemPtr &newCoordinateSystem) const
virtual double Z(double r, double theta, double phi) const override
Class to have a type for indicating cylindrical coordinate components.
Class to have a type for indicating spherical coordinate components.
void CoordinateSystemValid(const CoordinateSystemPtr &theCoordinateSystem)
virtual double Y(double rho, double phi, double z) const override
virtual double X(double r, double theta, double phi) const override
virtual double Y(double r, double theta, double phi) const override
Class to have a type for indicating cartesian coordinate components.