]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMDUtility.h
update from Marco
[u/mrichter/AliRoot.git] / PMD / AliPMDUtility.h
index 215f9f1ca02cc0730ca28bc505a2c89a37019582..f951057b209b28e050c535c57e1ca2eb7f766f3e 100644 (file)
 //  Utility class for PMD                              //
 //                                                     //
 //-----------------------------------------------------//
+// Author - 
+//
 #include "Rtypes.h"
-class AliPMDUtility
+
+
+class AliPMDUtility:public TObject
 {
  public:
   AliPMDUtility();
   AliPMDUtility(Float_t px, Float_t py, Float_t pz);
+  AliPMDUtility(const AliPMDUtility &pmdutil);  // copy constructor
+  AliPMDUtility &operator=(const AliPMDUtility &pmdutil); // assignment op
   virtual ~AliPMDUtility();
 
+
   void RectGeomCellPos(Int_t ism, Int_t xpad, Int_t ypad,
                       Float_t & xpos, Float_t & ypos);
   void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
                       Float_t & xpos, Float_t & ypos);
+
+  void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
+                      Float_t & xpos, Float_t & ypos, Float_t & zpos);
+
+  void GenerateBoundaryPoints(Int_t ism, Float_t &x1ism, Float_t &y1ism
+                             , Float_t &x2ism, Float_t &y2ism);
+
+  void GetEtaIndexXY(Int_t smn, Int_t row, Int_t col, 
+                    Float_t &xp, Float_t &yp, Double_t &eta, Int_t &etaindex);
+
+  void DrawPMDModule(Int_t idet); 
+
+  void ApplyVertexCorrection(Float_t vertex[], 
+                            Float_t xpos, Float_t ypos, Float_t zpos);
+  void ApplyAlignment(Double_t sectr[][3]);
   void SetPxPyPz(Float_t px, Float_t py, Float_t pz);
   void SetXYZ(Float_t xpos, Float_t ypos, Float_t zpos);
+  void SetWriteModule(Int_t wrmod);
   void CalculateEta();
   void CalculatePhi();
   void CalculateEtaPhi();
+  void CalculateXY(Float_t eta, Float_t phi, Float_t zpos);
   Float_t GetTheta() const;
   Float_t GetEta() const;
   Float_t GetPhi() const;
+  Float_t GetX() const;
+  Float_t GetY() const;
+  Float_t GetZ() const;
   
  protected:
+
   Float_t fPx;     // Momentum along x
   Float_t fPy;     // Momentum along y
   Float_t fPz;     // Momentum along z
   Float_t fTheta;  // Polar angle in radian
   Float_t fEta;    // Pseudo-rapidity
   Float_t fPhi;    // Azimuthal angle in radian
+  Float_t fSecTr[4][3]; // Sector alignement (translation)
+  Int_t   fWriteModule;  // Module number writing 
   
-  ClassDef(AliPMDUtility,3) // Utility class for the detector set:PMD
+  ClassDef(AliPMDUtility,8) // Utility class for the detector set:PMD
 };
 
 #endif