library: libGeom
#include "TGeoMatrix.h"

TGeoRotation


class description - source file - inheritance tree (.pdf)

class TGeoRotation : public TGeoMatrix

Inheritance Chart:
TObject
<-
TNamed
<-
TGeoMatrix
<-
TGeoRotation

    protected:
void CheckMatrix() public:
TGeoRotation() TGeoRotation(const TGeoRotation& other) TGeoRotation(const TGeoMatrix& other) TGeoRotation(const char* name) TGeoRotation(const char* name, Double_t alpha, Double_t beta, Double_t gamma) TGeoRotation(const char* name, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3) virtual ~TGeoRotation() static TClass* Class() virtual void Clear(Option_t* option) Double_t Determinant() const void FastRotZ(Double_t* sincos) void GetAngles(Double_t& theta1, Double_t& phi1, Double_t& theta2, Double_t& phi2, Double_t& theta3, Double_t& phi3) const void GetInverse(Double_t* invmat) const Double_t GetPhiRotation() const virtual const Double_t* GetRotationMatrix() const virtual const Double_t* GetScale() const virtual const Double_t* GetTranslation() const virtual TGeoMatrix& Inverse() const virtual TClass* IsA() const Bool_t IsValid() const virtual void LocalToMaster(const Double_t* local, Double_t* master) const virtual void LocalToMasterBomb(const Double_t* local, Double_t* master) const virtual void LocalToMasterVect(const Double_t* local, Double_t* master) const virtual void MasterToLocal(const Double_t* master, Double_t* local) const virtual void MasterToLocalBomb(const Double_t* master, Double_t* local) const virtual void MasterToLocalVect(const Double_t* master, Double_t* local) const void MultiplyBy(TGeoRotation* rot, Bool_t after = kTRUE) TGeoRotation& operator=(const TGeoMatrix& matrix) TGeoRotation& operator=(const TGeoRotation& other) virtual void RotateX(Double_t angle) virtual void RotateY(Double_t angle) virtual void RotateZ(Double_t angle) virtual void SavePrimitive(ofstream& out, Option_t* option) void SetAngles(Double_t alpha, Double_t beta, Double_t gamma) void SetAngles(Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3) void SetMatrix(const Double_t* rot) void SetRotation(const TGeoMatrix& other) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
Double_t fRotationMatrix[9] rotation matrix

Class Description


TGeoMatrix& Inverse() const
 Return a temporary inverse of this.

Bool_t IsValid() const
 Perform orthogonality test for rotation.

void Clear(Option_t *)
 reset data members

void FastRotZ(Double_t *sincos)

Double_t GetPhiRotation() const
--- Returns rotation angle about Z axis in degrees.

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

void MasterToLocal(const Double_t *master, Double_t *local) const
 convert a point by multiplying its column vector (x, y, z, 1) to matrix

void RotateX(Double_t angle)
 Rotate about X axis of the master frame with angle expressed in degrees.

void RotateY(Double_t angle)
 Rotate about Y axis of the master frame with angle expressed in degrees.

void RotateZ(Double_t angle)
 Rotate about Z axis of the master frame with angle expressed in degrees.

void SavePrimitive(ofstream &out, Option_t * /*option*/)
 Save a primitive as a C++ statement(s) on output stream "out".

void SetRotation(const TGeoMatrix &other)
 Copy rotation elements from other rotation matrix.

void SetAngles(Double_t phi, Double_t theta, Double_t psi)
 Set matrix elements according to Euler angles

void SetAngles(Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3)
 Set matrix elements in the GEANT3 way

void GetAngles(Double_t &theta1, Double_t &phi1, Double_t &theta2, Double_t &phi2, Double_t &theta3, Double_t &phi3) const
 Retreive rotation angles

Double_t Determinant() const
 computes determinant of the rotation matrix

void CheckMatrix()
 performes an orthogonality check and finds if the matrix is a reflection
   Warning("CheckMatrix", "orthogonality check not performed yet");

void GetInverse(Double_t *invmat) const
 Get the inverse rotation matrix (which is simply the transpose)

void MultiplyBy(TGeoRotation *rot, Bool_t after)



Inline Functions


                   void ~TGeoRotation()
           TGeoRotation TGeoRotation()
           TGeoRotation TGeoRotation(const TGeoRotation& other)
           TGeoRotation TGeoRotation(const TGeoMatrix& other)
           TGeoRotation TGeoRotation(const char* name)
           TGeoRotation TGeoRotation(const char* name, Double_t alpha, Double_t beta, Double_t gamma)
           TGeoRotation TGeoRotation(const char* name, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3)
          TGeoRotation& operator=(const TGeoMatrix& matrix)
          TGeoRotation& operator=(const TGeoRotation& other)
                   void LocalToMasterVect(const Double_t* local, Double_t* master) const
                   void MasterToLocalVect(const Double_t* master, Double_t* local) const
                   void LocalToMasterBomb(const Double_t* local, Double_t* master) const
                   void MasterToLocalBomb(const Double_t* master, Double_t* local) const
                   void SetMatrix(const Double_t* rot)
        const Double_t* GetTranslation() const
        const Double_t* GetRotationMatrix() const
        const Double_t* GetScale() const
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void Streamer(TBuffer& b)
                   void StreamerNVirtual(TBuffer& b)


Author: Andrei Gheata 25/10/01
Last update: root/geom:$Name: $:$Id: TGeoMatrix.cxx,v 1.39 2005/04/05 08:54:12 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.