New constructors added to AliAlignObj and the derived 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 #include "AliAlignObj.h"
14
15 class AliAlignObjMatrix : public AliAlignObj {
16  public:
17   AliAlignObjMatrix();
18   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);
19   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, Bool_t global=1) throw (const Char_t *);
20   AliAlignObjMatrix(const char* volpath, UShort_t voluid, TGeoMatrix& m);
21   AliAlignObjMatrix(const char* volpath, ELayerID layerId, Int_t volId, TGeoMatrix& m);
22   AliAlignObjMatrix(const AliAlignObj& theAlignObj);
23   AliAlignObjMatrix& operator= (const AliAlignObj& theAlignObj);
24   virtual ~AliAlignObjMatrix();
25   
26   //Setters
27   virtual void SetTranslation(Double_t x, Double_t y, Double_t z);
28   virtual void SetTranslation(const TGeoMatrix& m);
29   virtual void SetRotation(Double_t psi, Double_t theta, Double_t phi);
30   virtual Bool_t SetRotation(const TGeoMatrix& m);
31   virtual void SetMatrix(const TGeoMatrix& m);
32   virtual void SetPars(Double_t x, Double_t y, Double_t z, Double_t psi,
33                    Double_t theta, Double_t phi);
34   //Getters
35   virtual void GetTranslation(Double_t* tr)  const;
36   virtual Bool_t GetAngles(Double_t* angles)  const;
37   virtual void GetPars(Double_t tr[], Double_t rot[]) const;
38   virtual void GetMatrix(TGeoHMatrix& m) const;
39
40   virtual AliAlignObj& Inverse() const;
41   
42  protected:
43   TGeoHMatrix fMatrix; // Transformation matrix
44   
45   ClassDef(AliAlignObjMatrix, 1)
46 };
47
48 #endif