AliRoot Core  edcc906 (edcc906)
AliAlignObjParams.h
Go to the documentation of this file.
1 #ifndef ALIALIGNOBJANGLES_H
2 #define ALIALIGNOBJANGLES_H
3 
4 /*****************************************************************************
5  * AliAlignObjParams: derived alignment class storing alignment information *
6  * for a single volume in form of three doubles for the translation *
7  * and three doubles for the rotation expressed with the euler angles *
8  * in the xyz-convention (http://mathworld.wolfram.com/EulerAngles.html), *
9  * also known as roll, pitch, yaw. PLEASE NOTE THE ANGLES SIGNS ARE *
10  * INVERSE WITH RESPECT TO THIS REFERENCE!!! In this way the representation*
11  * is fully consistent with the TGeo Rotation methods. *
12  *****************************************************************************/
13 #include "TObject.h"
14 #include "TString.h"
15 #include "TGeoMatrix.h"
16 
17 #include "AliAlignObj.h"
18 
20  public:
22  AliAlignObjParams(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);
23  AliAlignObjParams(const char* symname, UShort_t volUId, TGeoMatrix& m, Bool_t global);
24  AliAlignObjParams(const AliAlignObj& theAlignObj);
25  AliAlignObjParams& operator= (const AliAlignObj& theAlignObj);
26  virtual ~AliAlignObjParams();
27 
28  //Setters
29  virtual void SetTranslation(Double_t x, Double_t y, Double_t z){
30  fTranslation[0]=x; fTranslation[1]=y; fTranslation[2]=z;}
31  virtual void SetTranslation(const TGeoMatrix& m);
32  virtual void SetRotation(Double_t psi, Double_t theta, Double_t phi){
33  fRotation[0]=psi; fRotation[1]=theta; fRotation[2]=phi;}
34  virtual Bool_t SetRotation(const TGeoMatrix& m);
35 
36  //Getters
37  virtual void GetTranslation(Double_t *tr) const {
38  tr[0] = fTranslation[0]; tr[1] = fTranslation[1]; tr[2] = fTranslation[2];}
39  virtual Bool_t GetAngles(Double_t* angles) const {
40  angles[0] = fRotation[0]; angles[1] = fRotation[1];
41  angles[2] = fRotation[2]; return kTRUE;}
42  virtual void GetMatrix(TGeoHMatrix& m) const;
43 
44  virtual AliAlignObj& Inverse() const;
45 
46  protected:
47  Double_t fTranslation[3]; // Translation vector
48  Double_t fRotation[3]; // Roll-pitch-yaw angles
49 
50  ClassDef(AliAlignObjParams, 1)
51 };
52 
53 #endif
virtual void GetMatrix(TGeoHMatrix &m) const
virtual void SetTranslation(Double_t x, Double_t y, Double_t z)
AliAlignObjParams & operator=(const AliAlignObj &theAlignObj)
Double_t fTranslation[3]
virtual AliAlignObj & Inverse() const
virtual void SetRotation(Double_t psi, Double_t theta, Double_t phi)
virtual Bool_t GetAngles(Double_t *angles) const
virtual void GetTranslation(Double_t *tr) const