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" 32 #include "Math/GenVector/Plane3D.h" 66 typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag >
Vector;
67 typedef PositionVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag >
Point;
143 template<
class CoordSystem,
class Tag>
165 template <
class ARotation,
class CoordSystem,
class Tag>
168 AssignFrom( Rotation3D(r), Vector (v.X(),v.Y(),v.Z()) );
176 template <
class ARotation,
class CoordSystem,
class Tag>
199 (
const Point & fr0,
const Point & fr1,
const Point & fr2,
200 const Point & to0,
const Point & to1,
const Point & to2 );
211 template<
class ForeignMatrix>
220 double yx,
double yy,
double yz,
double dy,
221 double zx,
double zy,
double zz,
double dz)
223 SetComponents (xx, xy, xz, dx, yx, yy, yz, dy, zx, zy, zz, dz);
233 template<
class ForeignMatrix>
249 for (
int i = 0;
i <12; ++
i) {
262 for (
int i = 0;
i <12; ++
i) {
283 template<
class ForeignMatrix>
296 template<
class ForeignMatrix>
310 double yx,
double yy,
double yz,
double dy,
311 double zx,
double zy,
double zz,
double dz) {
322 double &yx,
double &
yy,
double &
yz,
double &
dy,
323 double &zx,
double &zy,
double &
zz,
double &
dz)
const {
356 template<
class CoordSystem >
357 PositionVector3D<CoordSystem>
operator() (
const PositionVector3D <CoordSystem> & p)
const {
359 return PositionVector3D<CoordSystem> (xyzNew);
365 template<
class CoordSystem >
366 DisplacementVector3D<CoordSystem>
operator() (
const DisplacementVector3D <CoordSystem> & v)
const {
368 return DisplacementVector3D<CoordSystem> (xyzNew);
374 template<
class CoordSystem,
class Tag1,
class Tag2 >
375 void Transform (
const PositionVector3D <CoordSystem,Tag1> &
p1, PositionVector3D <CoordSystem,Tag2> &
p2 )
const {
377 p2.SetXYZ( xyzNew.X(), xyzNew.Y(), xyzNew.Z() );
384 template<
class CoordSystem,
class Tag1,
class Tag2 >
385 void Transform (
const DisplacementVector3D <CoordSystem,Tag1> & v1, DisplacementVector3D <CoordSystem,Tag2> & v2 )
const {
387 v2.SetXYZ( xyzNew.X(), xyzNew.Y(), xyzNew.Z() );
393 template <
class CoordSystem >
413 template<
class AVector >
429 Transform3DPJ
tmp(*
this);
443 Transform3DPJ
t(*
this);
453 if(
fM[0] != rhs.
fM[0] )
return false;
454 if(
fM[1] != rhs.
fM[1] )
return false;
455 if(
fM[2] != rhs.
fM[2] )
return false;
456 if(
fM[3] != rhs.
fM[3] )
return false;
457 if(
fM[4] != rhs.
fM[4] )
return false;
458 if(
fM[5] != rhs.
fM[5] )
return false;
459 if(
fM[6] != rhs.
fM[6] )
return false;
460 if(
fM[7] != rhs.
fM[7] )
return false;
461 if(
fM[8] != rhs.
fM[8] )
return false;
462 if(
fM[9] != rhs.
fM[9] )
return false;
463 if(
fM[10]!= rhs.
fM[10] )
return false;
464 if(
fM[11]!= rhs.
fM[11] )
return false;
478 void AssignFrom(
const Rotation3D & r,
const Vector & v);
math::XYZTLorentzVector LorentzVector
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::Plane3D Plane3D