coverity defects fixed
[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 - 
14 //
15 #include "Rtypes.h"
16
17
18 class AliPMDUtility:public TObject
19 {
20  public:
21   AliPMDUtility();
22   AliPMDUtility(Float_t px, Float_t py, Float_t pz);
23   AliPMDUtility(const AliPMDUtility &pmdutil);  // copy constructor
24   AliPMDUtility &operator=(const AliPMDUtility &pmdutil); // assignment op
25   virtual ~AliPMDUtility();
26
27
28   void RectGeomCellPos(Int_t ism, Int_t xpad, Int_t ypad,
29                        Float_t & xpos, Float_t & ypos);
30   void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
31                        Float_t & xpos, Float_t & ypos);
32
33   void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
34                        Float_t & xpos, Float_t & ypos, Float_t & zpos);
35
36   void GenerateBoundaryPoints(Int_t ism, Float_t &x1ism, Float_t &y1ism
37                               , Float_t &x2ism, Float_t &y2ism);
38
39   void DrawPMDModule(Int_t idet); 
40
41   void ApplyVertexCorrection(Float_t vertex[], 
42                              Float_t xpos, Float_t ypos, Float_t zpos);
43   void ApplyAlignment(Double_t sectr[][3]);
44   void SetPxPyPz(Float_t px, Float_t py, Float_t pz);
45   void SetXYZ(Float_t xpos, Float_t ypos, Float_t zpos);
46   void SetWriteModule(Int_t wrmod);
47   void CalculateEta();
48   void CalculatePhi();
49   void CalculateEtaPhi();
50   void CalculateXY(Float_t eta, Float_t phi, Float_t zpos);
51   Float_t GetTheta() const;
52   Float_t GetEta() const;
53   Float_t GetPhi() const;
54   Float_t GetX() const;
55   Float_t GetY() const;
56   Float_t GetZ() const;
57   
58  protected:
59
60   Float_t fPx;     // Momentum along x
61   Float_t fPy;     // Momentum along y
62   Float_t fPz;     // Momentum along z
63   Float_t fTheta;  // Polar angle in radian
64   Float_t fEta;    // Pseudo-rapidity
65   Float_t fPhi;    // Azimuthal angle in radian
66   Float_t fSecTr[4][3]; // Sector alignement (translation)
67   Int_t   fWriteModule;  // Module number writing 
68   
69   ClassDef(AliPMDUtility,7) // Utility class for the detector set:PMD
70 };
71
72 #endif