ROOT logo
#ifndef ALIALIGNOBJMATRIX_H
#define ALIALIGNOBJMATRIX_H

/**************************************************************************
 * AliAlignObjMatrix: derived alignment class storing alignment           *
 *   information for a single volume in form of TGeoHMatrix, which        *
 *   includes the information for a translation, a rotation and a scale   *
 *************************************************************************/
#include "TObject.h"
#include "TString.h"
#include "TGeoMatrix.h"

#include "AliAlignObj.h"

class AliAlignObjMatrix : public AliAlignObj {
 public:
  AliAlignObjMatrix();
  AliAlignObjMatrix(const char* symname, UShort_t volUId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global) throw (const Char_t *);
  AliAlignObjMatrix(const char* symname, UShort_t volUId, TGeoMatrix& m, Bool_t global) throw (const Char_t *);
  AliAlignObjMatrix(const AliAlignObj& theAlignObj);
  AliAlignObjMatrix& operator= (const AliAlignObj& theAlignObj);
  virtual ~AliAlignObjMatrix();
  
  //Setters
  virtual void SetTranslation(Double_t x, Double_t y, Double_t z);
  virtual void SetTranslation(const TGeoMatrix& m);
  virtual void SetRotation(Double_t psi, Double_t theta, Double_t phi);
  virtual Bool_t SetRotation(const TGeoMatrix& m);

  //Getters
  virtual void GetTranslation(Double_t* tr)  const;
  virtual Bool_t GetAngles(Double_t* angles)  const;
  virtual void GetMatrix(TGeoHMatrix& m) const;

  virtual AliAlignObj& Inverse() const;
  
 protected:
  TGeoHMatrix fMatrix; // Transformation matrix
  
  ClassDef(AliAlignObjMatrix, 1)
};

#endif
 AliAlignObjMatrix.h:1
 AliAlignObjMatrix.h:2
 AliAlignObjMatrix.h:3
 AliAlignObjMatrix.h:4
 AliAlignObjMatrix.h:5
 AliAlignObjMatrix.h:6
 AliAlignObjMatrix.h:7
 AliAlignObjMatrix.h:8
 AliAlignObjMatrix.h:9
 AliAlignObjMatrix.h:10
 AliAlignObjMatrix.h:11
 AliAlignObjMatrix.h:12
 AliAlignObjMatrix.h:13
 AliAlignObjMatrix.h:14
 AliAlignObjMatrix.h:15
 AliAlignObjMatrix.h:16
 AliAlignObjMatrix.h:17
 AliAlignObjMatrix.h:18
 AliAlignObjMatrix.h:19
 AliAlignObjMatrix.h:20
 AliAlignObjMatrix.h:21
 AliAlignObjMatrix.h:22
 AliAlignObjMatrix.h:23
 AliAlignObjMatrix.h:24
 AliAlignObjMatrix.h:25
 AliAlignObjMatrix.h:26
 AliAlignObjMatrix.h:27
 AliAlignObjMatrix.h:28
 AliAlignObjMatrix.h:29
 AliAlignObjMatrix.h:30
 AliAlignObjMatrix.h:31
 AliAlignObjMatrix.h:32
 AliAlignObjMatrix.h:33
 AliAlignObjMatrix.h:34
 AliAlignObjMatrix.h:35
 AliAlignObjMatrix.h:36
 AliAlignObjMatrix.h:37
 AliAlignObjMatrix.h:38
 AliAlignObjMatrix.h:39
 AliAlignObjMatrix.h:40
 AliAlignObjMatrix.h:41
 AliAlignObjMatrix.h:42
 AliAlignObjMatrix.h:43