#ifndef ROOT_TThreeRotation
#define ROOT_TThreeRotation
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TLorentzTransform
#include "TLorentzTransform.h"
#endif
#ifndef ROOT_TError
#include "TError.h"
#endif
#include <math.h>
class TThreeVectorComplex;
class TThreeRotation : public TLorentzTransform {
public:
TThreeRotation() { }
TThreeRotation(const TThreeVectorReal &axis);
TThreeRotation(const TUnitVector &ahat, const Double_t angle);
TThreeRotation(const Double_t phi, const Double_t theta, const Double_t psi);
TThreeRotation(const TThreeRotation &another);
virtual ~TThreeRotation() { }
TThreeVectorReal Axis() const;
void GetAxis(TUnitVector &ahat, Double_t &angle) const;
void GetEuler(Double_t &phi, Double_t &theta, Double_t &psi) const;
TThreeRotation &operator=(const TThreeRotation &source);
TThreeRotation &operator*=(const TThreeRotation &source);
TThreeRotation &Null();
TThreeRotation &Transpose();
TThreeRotation &Invert();
TThreeRotation &SetAxis(const TThreeVectorReal &axis);
TThreeRotation &SetAxis(const TUnitVector &ahat, const Double_t angle);
TThreeRotation &SetEuler(const Double_t &phi,
const Double_t &theta,
const Double_t &psi);
TThreeVectorReal operator*(const TThreeVectorReal &vec) const;
TThreeVectorComplex operator*(const TThreeVectorComplex &vec) const;
TThreeRotation operator*(const TThreeRotation &rotOp) const;
void Print(Option_t *option="");
ClassDef(TThreeRotation,1)
};
inline TThreeRotation::TThreeRotation(const TThreeVectorReal &axis)
{
SetAxis(axis);
}
inline TThreeRotation::TThreeRotation(const TUnitVector &ahat, const Double_t angle)
{
SetAxis(ahat,angle);
}
inline TThreeRotation::TThreeRotation(const Double_t phi,
const Double_t theta,
const Double_t psi)
{
SetEuler(phi,theta,psi);
}
inline TThreeRotation::TThreeRotation(const TThreeRotation &another)
{
*(TLorentzTransform *)this = (TLorentzTransform)another;
}
#endif
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.