Line data Source code
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 GetEtaIndexXY(Int_t smn, Int_t row, Int_t col,
40 : Float_t &xp, Float_t &yp, Double_t &eta, Int_t &etaindex);
41 :
42 : void DrawPMDModule(Int_t idet);
43 :
44 : void ApplyVertexCorrection(Float_t vertex[],
45 : Float_t xpos, Float_t ypos, Float_t zpos);
46 : void ApplyAlignment(Double_t sectr[][3]);
47 : void SetPxPyPz(Float_t px, Float_t py, Float_t pz);
48 : void SetXYZ(Float_t xpos, Float_t ypos, Float_t zpos);
49 : void SetWriteModule(Int_t wrmod);
50 : void CalculateEta();
51 : void CalculatePhi();
52 : void CalculateEtaPhi();
53 : void CalculateXY(Float_t eta, Float_t phi, Float_t zpos);
54 : Float_t GetTheta() const;
55 : Float_t GetEta() const;
56 : Float_t GetPhi() const;
57 : Float_t GetX() const;
58 : Float_t GetY() const;
59 : Float_t GetZ() const;
60 :
61 : protected:
62 :
63 : Float_t fPx; // Momentum along x
64 : Float_t fPy; // Momentum along y
65 : Float_t fPz; // Momentum along z
66 : Float_t fTheta; // Polar angle in radian
67 : Float_t fEta; // Pseudo-rapidity
68 : Float_t fPhi; // Azimuthal angle in radian
69 : Float_t fSecTr[4][3]; // Sector alignement (translation)
70 : Int_t fWriteModule; // Module number writing
71 :
72 12 : ClassDef(AliPMDUtility,8) // Utility class for the detector set:PMD
73 : };
74 :
75 : #endif
|