Improved version of alignmnet object classes (R.Grosso)
[u/mrichter/AliRoot.git] / STEER / AliAlignObjMatrix.h
1 #ifndef ALIALIGNOBJMATRIX_H
2 #define ALIALIGNOBJMATRIX_H
3
4 /**************************************************************************
5  * AliAlignObjMatrix: derived alignment class storing alignment           *
6  *   information for a single volume in form of TGeoHMatrix, which        *
7  *   includes the information for a translation, a rotation and a scale   *
8  *************************************************************************/
9 #include "TObject.h"
10 #include "TString.h"
11 #include "TGeoMatrix.h"
12
13 class AliAlignObjMatrix : public AliAlignObj {
14  public:
15   AliAlignObjMatrix();
16   AliAlignObjMatrix(const char* volpath, UShort_t voluid, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi);
17   AliAlignObjMatrix(const char* volpath, ELayerID detId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi);
18   AliAlignObjMatrix(const char* volpath, UShort_t voluid, TGeoMatrix& m);
19   AliAlignObjMatrix(const AliAlignObjMatrix& theAlignObj);
20   AliAlignObjMatrix& operator= (const AliAlignObjMatrix& theAlignObj);
21   virtual ~AliAlignObjMatrix();
22   
23   //Setters
24   virtual void SetTranslation(Double_t x, Double_t y, Double_t z);
25   virtual void SetTranslation(const TGeoMatrix& m);
26   virtual void SetRotation(Double_t psi, Double_t theta, Double_t phi);
27   virtual Bool_t SetRotation(const TGeoMatrix& m);
28   virtual void SetMatrix(const TGeoMatrix& m);
29   virtual void SetPars(Double_t x, Double_t y, Double_t z, Double_t psi,
30                    Double_t theta, Double_t phi);
31   //Getters
32   virtual void GetTranslation(Double_t* tr)  const;
33   virtual Bool_t GetAngles(Double_t* angles)  const;
34   virtual void GetPars(Double_t tr[], Double_t rot[]) const;
35   virtual void GetMatrix(TGeoHMatrix& m) const;
36   
37  protected:
38   TGeoHMatrix fMatrix; // Transformation matrix
39   
40   ClassDef(AliAlignObjMatrix, 1)
41 };
42
43 #endif