A new method DrawPMDModule is added
[u/mrichter/AliRoot.git] / PMD / AliPMDUtility.h
1 #ifndef ALIPMDUTILITY_H
2 #define ALIPMDUTILITY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 //-----------------------------------------------------//
6 //                                                     //
7 //                                                     //
8 //  Date   : August 05 2003                            //
9 //                                                     //
10 //  Utility class for PMD                              //
11 //                                                     //
12 //-----------------------------------------------------//
13 // Author - B.K. Nandi
14 //
15 #include "Rtypes.h"
16 class AliPMDUtility
17 {
18  public:
19   AliPMDUtility();
20   AliPMDUtility(Float_t px, Float_t py, Float_t pz);
21   AliPMDUtility(const AliPMDUtility &pmdutil);  // copy constructor
22   AliPMDUtility &operator=(const AliPMDUtility &pmdutil); // assignment op
23   virtual ~AliPMDUtility();
24
25
26   void RectGeomCellPos(Int_t ism, Int_t xpad, Int_t ypad,
27                        Float_t & xpos, Float_t & ypos);
28   void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
29                        Float_t & xpos, Float_t & ypos);
30
31   void GenerateBoundaryPoints(Int_t ism, Float_t &x1ism, Float_t &y1ism
32                               , Float_t &x2ism, Float_t &y2ism);
33
34   void DrawPMDModule(); 
35
36   void ApplyVertexCorrection(Float_t vertex[], 
37                              Float_t xpos, Float_t ypos, Float_t zpos);
38   void ApplyAlignment();
39   void SetPxPyPz(Float_t px, Float_t py, Float_t pz);
40   void SetXYZ(Float_t xpos, Float_t ypos, Float_t zpos);
41   void SetWriteModule(Int_t wrmod);
42   void CalculateEta();
43   void CalculatePhi();
44   void CalculateEtaPhi();
45   void CalculateXY(Float_t eta, Float_t phi, Float_t zpos);
46   Float_t GetTheta() const;
47   Float_t GetEta() const;
48   Float_t GetPhi() const;
49   Float_t GetX() const;
50   Float_t GetY() const;
51   Float_t GetZ() const;
52   
53  protected:
54   Float_t fPx;     // Momentum along x
55   Float_t fPy;     // Momentum along y
56   Float_t fPz;     // Momentum along z
57   Float_t fTheta;  // Polar angle in radian
58   Float_t fEta;    // Pseudo-rapidity
59   Float_t fPhi;    // Azimuthal angle in radian
60   Int_t   fWriteModule;  // Module number writing 
61   
62   ClassDef(AliPMDUtility,4) // Utility class for the detector set:PMD
63 };
64
65 #endif