16 #ifndef ROOT_Math_GenVector_Transform3DPJ
17 #define ROOT_Math_GenVector_Transform3DPJ 1
21 #include "Math/GenVector/Cartesian3D.h"
22 #include "Math/GenVector/DisplacementVector3D.h"
23 #include "Math/GenVector/PositionVector3D.h"
24 #include "Math/GenVector/LorentzVector.h"
25 #include "Math/GenVector/Rotation3D.h"
26 #include "Math/GenVector/AxisAnglefwd.h"
27 #include "Math/GenVector/EulerAnglesfwd.h"
28 #include "Math/GenVector/Quaternionfwd.h"
29 #include "Math/GenVector/RotationXfwd.h"
30 #include "Math/GenVector/RotationYfwd.h"
31 #include "Math/GenVector/RotationZfwd.h"
65 typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag >
Vector;
66 typedef PositionVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag >
Point;
142 template<
class CoordSystem,
class Tag>
164 template <
class ARotation,
class CoordSystem,
class Tag>
175 template <
class ARotation,
class CoordSystem,
class Tag>
210 template<
class ForeignMatrix>
219 double yx,
double yy,
double yz,
double dy,
220 double zx,
double zy,
double zz,
double dz)
222 SetComponents (xx, xy, xz, dx, yx, yy, yz, dy, zx, zy, zz, dz);
232 template<
class ForeignMatrix>
248 for (
int i = 0;
i <12; ++
i) {
261 for (
int i = 0;
i <12; ++
i) {
282 template<
class ForeignMatrix>
295 template<
class ForeignMatrix>
309 double yx,
double yy,
double yz,
double dy,
310 double zx,
double zy,
double zz,
double dz) {
321 double &yx,
double &yy,
double &yz,
double &dy,
322 double &zx,
double &zy,
double &zz,
double &dz)
const {
355 template<
class CoordSystem >
356 PositionVector3D<CoordSystem>
operator() (
const PositionVector3D <CoordSystem> &
p)
const {
358 return PositionVector3D<CoordSystem> (xyzNew);
364 template<
class CoordSystem >
365 DisplacementVector3D<CoordSystem>
operator() (
const DisplacementVector3D <CoordSystem> &
v)
const {
367 return DisplacementVector3D<CoordSystem> (xyzNew);
373 template<
class CoordSystem,
class Tag1,
class Tag2 >
374 void Transform (
const PositionVector3D <CoordSystem,Tag1> &
p1, PositionVector3D <CoordSystem,Tag2> &
p2 )
const {
376 p2.SetXYZ( xyzNew.X(), xyzNew.Y(), xyzNew.Z() );
383 template<
class CoordSystem,
class Tag1,
class Tag2 >
384 void Transform (
const DisplacementVector3D <CoordSystem,Tag1> & v1, DisplacementVector3D <CoordSystem,Tag2> & v2 )
const {
386 v2.SetXYZ( xyzNew.X(), xyzNew.Y(), xyzNew.Z() );
392 template <
class CoordSystem >
412 template<
class AVector >
452 if(
fM[0] != rhs.
fM[0] )
return false;
453 if(
fM[1] != rhs.
fM[1] )
return false;
454 if(
fM[2] != rhs.
fM[2] )
return false;
455 if(
fM[3] != rhs.
fM[3] )
return false;
456 if(
fM[4] != rhs.
fM[4] )
return false;
457 if(
fM[5] != rhs.
fM[5] )
return false;
458 if(
fM[6] != rhs.
fM[6] )
return false;
459 if(
fM[7] != rhs.
fM[7] )
return false;
460 if(
fM[8] != rhs.
fM[8] )
return false;
461 if(
fM[9] != rhs.
fM[9] )
return false;
462 if(
fM[10]!= rhs.
fM[10] )
return false;
463 if(
fM[11]!= rhs.
fM[11] )
return false;
ROOT::Math::Plane3D::Vector Vector
std::ostream & operator<<(std::ostream &os, const Transform3DPJ &t)
std::vector< LinkConnSpec >::const_iterator IT
AlgebraicVector EulerAngles
std::vector< std::vector< double > > tmp
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > LorentzVector
ROOT::Math::Plane3D Plane3D