|
ROOT
Reference Guide |
|
Go to the documentation of this file.
12 #ifndef ROOT_TGeoMatrix
13 #define ROOT_TGeoMatrix
TGeoScale operator*(const TGeoScale &other) const
virtual void ReflectX(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to YZ.
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
TGeoRotation & operator*=(const TGeoRotation &other)
Composition.
void Multiply(const TGeoMatrix *right)
multiply to the right with an other transformation if right is identity matrix, just return
virtual const Double_t * GetRotationMatrix() const
virtual void ReflectZ(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to XY.
TGeoScale()
default constructor
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void ReflectZ(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to XY.
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
Bool_t operator==(const TGeoScale &other) const
Is-equal operator.
R__EXTERN TGeoIdentity * gGeoIdentity
virtual void MasterToLocalBomb(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
virtual const Double_t * GetTranslation() const
Class describing rotation + translation.
virtual void LocalToMasterBomb(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual ~TGeoMatrix()
Destructor.
Double_t fRotationMatrix[9]
virtual void RotateZ(Double_t angle)
Rotate about Z axis of the master frame with angle expressed in degrees.
void SetAngles(Double_t phi, Double_t theta, Double_t psi)
Set matrix elements according to Euler angles.
virtual void SetDx(Double_t dx)
void SetTranslation(const Double_t *vect)
TGeoRotation & operator=(const TGeoRotation &other)
virtual Double_t * GetTranslation()
void SetScale(Double_t sx, Double_t sy, Double_t sz)
set the scale
virtual const Double_t * GetScale() const
virtual void SetDz(Double_t)
TGeoHMatrix operator*(const TGeoMatrix &other) const
void FastRotZ(const Double_t *sincos)
Perform a rotation about Z having the sine/cosine of the rotation angle.
virtual ~TGeoCombiTrans()
destructor
virtual void RotateX(Double_t angle)
Rotate about X axis with angle expressed in degrees.
virtual void ReflectY(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to ZX.
virtual const Double_t * GetTranslation() const
const Double_t kIdentityMatrix[3 *3]
virtual const Double_t * GetScale() const
void SetTranslation(Double_t dx, Double_t dy, Double_t dz)
Set translation components.
void MultiplyLeft(const TGeoMatrix &left)
virtual ~TGeoGenTrans()
destructor
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
static void Normalize(Double_t *vect)
Normalize a vector.
TGeoTranslation operator*(const TGeoTranslation &right) const
const Double_t kNullVector[3]
void MultiplyLeft(const TGeoMatrix *left)
multiply to the left with an other transformation if right is identity matrix, just return
TGeoRotation operator*(const TGeoRotation &other) const
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
Convert a global point to local frame.
Bool_t operator==(const TGeoRotation &other) const
Is-equal operator.
Most general transformation, holding a translation, a rotation and a scale.
TGeoCombiTrans()
dummy ctor
virtual void RotateZ(Double_t angle)
Rotate about Z axis with angle expressed in degrees.
virtual TGeoMatrix * MakeClone() const
Make a clone of this matrix.
virtual ~TGeoHMatrix()
destructor
TGeoCombiTrans operator*(const TGeoMatrix &other) const
void FastRotZ(const Double_t *sincos)
Perform a rotation about Z having the sine/cosine of the rotation angle.
virtual TGeoMatrix * MakeClone() const
Make a clone of this matrix.
virtual void ReflectX(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to YZ.
TGeoHMatrix(const TGeoHMatrix &other)
virtual void RotateY(Double_t angle)
Rotate about Y axis with angle expressed in degrees.
virtual void LocalToMasterBomb(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
void Print(Option_t *option="") const
print the matrix in 4x4 format
TGeoHMatrix & operator*=(const TGeoMatrix &other)
Composition.
virtual void RotateZ(Double_t)
virtual const Double_t * GetScale() const
Double_t Determinant() const
computes determinant of the rotation matrix
Bool_t IsRegistered() const
virtual void ReflectZ(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to XY.
virtual void ReflectY(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to ZX.
virtual const Double_t * GetRotationMatrix() const
Class describing translations.
virtual void RotateX(Double_t angle)
Rotate about X axis of the master frame with angle expressed in degrees.
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
convert a vector by multiplying its column vector (x, y, z, 1) to matrix inverse
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
void SetRotation(const TGeoRotation &other)
Copy the rotation from another one.
virtual Int_t GetByteCount() const
Get total size in bytes of this.
void Subtract(const TGeoTranslation *other)
Subtracting a translation from this one.
void Add(const TGeoTranslation *other)
Adding a translation to this one.
virtual TGeoMatrix * MakeClone() const =0
virtual void SetDx(Double_t dx)
virtual void RotateX(Double_t angle)
Rotate about X axis of the master frame with angle expressed in degrees.
void Clear(Option_t *option="")
clear the data for this matrix
virtual const Double_t * GetScale() const
virtual void RotateY(Double_t angle)
Rotate about Y axis of the master frame with angle expressed in degrees.
TGeoTranslation()
Default constructor.
const Double_t kUnitScale[3]
TGeoScale & operator*=(const TGeoScale &other)
Scale composition.
virtual const Double_t * GetRotationMatrix() const =0
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
Bool_t operator==(const TGeoMatrix &other) const
Is-equal operator.
virtual Double_t * GetScale()
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
convert a vector by multiplying its column vector (x, y, z, 1) to matrix inverse
double dist(Rotation3D const &r1, Rotation3D const &r2)
Bool_t IsIdentity() const
virtual void ReflectZ(Bool_t, Bool_t)
Multiply by a reflection respect to XY.
void GetInverse(Double_t *invmat) const
Get the inverse rotation matrix (which is simply the transpose)
virtual void RotateZ(Double_t angle)
Rotate about Z axis of the master frame with angle expressed in degrees.
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
convert a vector by multiplying its column vector (x, y, z, 1) to matrix inverse
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
Bool_t IsValid() const
Perform orthogonality test for rotation.
virtual void SetDy(Double_t dy)
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
void CopyFrom(const TGeoMatrix *other)
Fast copy method.
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
convert a vector to MARS
virtual const Double_t * GetScale() const
Matrix class used for computing global transformations Should NOT be used for node definition.
Double_t fRotationMatrix[3 *3]
virtual void RegisterYourself()
Register the matrix in the current manager, which will become the owner.
virtual TGeoMatrix * MakeClone() const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Bool_t Normalize()
A scale transformation should be normalized by sx*sy*sz factor.
Double_t GetPhiRotation(Bool_t fixX=kFALSE) const
Returns rotation angle about Z axis in degrees.
virtual void ReflectZ(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to XY.
Bool_t IsReflection() const
void SetDefaultName()
If no name was supplied in the ctor, the type of transformation is checked.
TGeoCombiTrans(const TGeoCombiTrans &other)
The TNamed class is the base class for all named ROOT classes.
virtual void LocalToMasterBomb(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
Class describing rotations.
virtual const Double_t * GetTranslation() const
virtual void ReflectX(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to YZ.
virtual void MasterToLocalBomb(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
Bool_t IsRotation() const
void GetAngles(Double_t &theta1, Double_t &phi1, Double_t &theta2, Double_t &phi2, Double_t &theta3, Double_t &phi3) const
Retrieve rotation angles.
Double_t Determinant() const
computes determinant of the rotation matrix
char * GetPointerName() const
Provide a pointer name containing uid.
virtual const Double_t * GetRotationMatrix() const
virtual void ReflectY(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to ZX.
virtual void ReflectY(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to ZX.
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
void SetScale(Double_t sx, Double_t sy, Double_t sz)
scale setter
virtual void RotateX(Double_t angle)
Rotate about X axis with angle expressed in degrees.
Bool_t operator==(const TGeoMatrix &other) const
Is-equal operator.
virtual const Double_t * GetTranslation() const
virtual void RotateY(Double_t angle)
Rotate about Y axis of the master frame with angle expressed in degrees.
virtual void SavePrimitive(std::ostream &, Option_t *="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual void SetDx(Double_t dx)
TGeoScale & operator=(const TGeoScale &other)
virtual void ReflectY(Bool_t, Bool_t)
Multiply by a reflection respect to ZX.
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
Convert a local point to the master frame.
void Clear(Option_t *option="")
Reset translation/rotation to identity.
TGeoCombiTrans & operator*=(const TGeoMatrix &other)
Composition.
Bool_t IsTranslation() const
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual const Double_t * GetRotationMatrix() const
virtual void MasterToLocalBomb(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
void SetShared(Bool_t flag=kTRUE)
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
TGeoHMatrix Inverse() const
Return a temporary inverse of this.
void GetHomogenousMatrix(Double_t *hmat) const
The homogenous matrix associated with the transformation is used for piling up's and visualization.
void Multiply(const TGeoMatrix &right)
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual Double_t * GetRotationMatrix()
virtual const Double_t * GetTranslation() const
virtual void SetDy(Double_t dy)
void Clear(Option_t *option="")
reset data members
virtual void RotateY(Double_t)
virtual void LocalToMasterBomb(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
void CheckMatrix()
performes an orthogonality check and finds if the matrix is a reflection Warning("CheckMatrix",...
Geometrical transformation package.
TGeoHMatrix & operator=(const TGeoHMatrix &other)
Class describing scale transformations.
virtual void RotateX(Double_t)
void Clear(Option_t *option="")
clear the fields of this transformation
TGeoCombiTrans & operator=(const TGeoCombiTrans &other)
virtual void RotateY(Double_t angle)
Rotate about Y axis with angle expressed in degrees.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
TGeoMatrix()
dummy constructor
virtual const Double_t * GetScale() const
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
convert a vector by multiplying its column vector (x, y, z, 1) to matrix inverse
#define ClassDef(name, id)
virtual ~TGeoScale()
destructor
virtual void SetDy(Double_t dy)
virtual void MasterToLocalBomb(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
void SetTranslation(const TGeoTranslation &tr)
copy the translation component
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
virtual TGeoMatrix * MakeClone() const
Make a clone of this matrix.
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
convert a vector from MARS to local
virtual void SetDy(Double_t)
virtual void SetDx(Double_t)
virtual void SetDz(Double_t dz)
virtual void RegisterYourself()
Register the matrix in the current manager, which will become the owner.
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual void ReflectX(Bool_t, Bool_t)
Multiply by a reflection respect to YZ.
virtual const Double_t * GetRotationMatrix() const
get the rotation array
void SetScale(Double_t *scale)
void SetRotation(const Double_t *matrix)
virtual ~TGeoTranslation()
virtual void SetDz(Double_t dz)
void Multiply(const TGeoMatrix *right)
multiply to the right with an other transformation if right is identity matrix, just return
virtual const Double_t * GetTranslation() const =0
virtual void ReflectX(Bool_t leftside, Bool_t rotonly=kFALSE)
Multiply by a reflection respect to YZ.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual TGeoHMatrix Inverse() const =0
virtual void RotateZ(Double_t angle)
Rotate about Z axis with angle expressed in degrees.
void SetScale(const Double_t *scale)
void MultiplyBy(const TGeoRotation *rot, Bool_t after=kTRUE)
Multiply this rotation with the one specified by ROT.
Bool_t operator==(const TGeoTranslation &other) const
Is-equal operator.
virtual TGeoMatrix * MakeClone() const
Make a clone of this matrix.
An identity transformation.
virtual const Double_t * GetTranslation() const
TGeoTranslation & operator=(const TGeoTranslation &other)
TGeoRotation * GetRotation() const
TGeoTranslation & operator*=(const TGeoTranslation &other)
Translation composition.
void SetRotation(const TGeoMatrix &other)
Copy rotation elements from other rotation matrix.
Bool_t IsRotAboutZ() const
Returns true if no rotation or the rotation is about Z axis.
virtual const Double_t * GetRotationMatrix() const
virtual TGeoMatrix * MakeClone() const
Make a clone of this matrix.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual const Double_t * GetScale() const
TGeoRotation()
Default constructor.
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix
virtual TGeoMatrix * MakeClone() const
Make a clone of this matrix.
virtual const Double_t * GetScale() const =0
virtual void SetDz(Double_t dz)
void SetMatrix(const Double_t *rot)