PMD DA informations : satya
[u/mrichter/AliRoot.git] / PMD / AliPMDUtility.h
CommitLineData
a918d77a 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 */
638f6e9b 5//-----------------------------------------------------//
6// //
7// //
8// Date : August 05 2003 //
9// //
10// Utility class for PMD //
11// //
12//-----------------------------------------------------//
74574deb 13// Author -
5d35baec 14//
638f6e9b 15#include "Rtypes.h"
dc461f61 16
dc461f61 17
18class AliPMDUtility:public TObject
638f6e9b 19{
638f6e9b 20 public:
21 AliPMDUtility();
a918d77a 22 AliPMDUtility(Float_t px, Float_t py, Float_t pz);
5d35baec 23 AliPMDUtility(const AliPMDUtility &pmdutil); // copy constructor
24 AliPMDUtility &operator=(const AliPMDUtility &pmdutil); // assignment op
638f6e9b 25 virtual ~AliPMDUtility();
afb8e3a0 26
5d35baec 27
01c4d84a 28 void RectGeomCellPos(Int_t ism, Int_t xpad, Int_t ypad,
a918d77a 29 Float_t & xpos, Float_t & ypos);
01c4d84a 30 void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
a918d77a 31 Float_t & xpos, Float_t & ypos);
2c08d1c1 32
dc461f61 33 void RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad,
34 Float_t & xpos, Float_t & ypos, Float_t & zpos);
35
2c08d1c1 36 void GenerateBoundaryPoints(Int_t ism, Float_t &x1ism, Float_t &y1ism
37 , Float_t &x2ism, Float_t &y2ism);
38
6d4a951b 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
27f6261d 42 void DrawPMDModule(Int_t idet);
2c08d1c1 43
5d35baec 44 void ApplyVertexCorrection(Float_t vertex[],
45 Float_t xpos, Float_t ypos, Float_t zpos);
74574deb 46 void ApplyAlignment(Double_t sectr[][3]);
a918d77a 47 void SetPxPyPz(Float_t px, Float_t py, Float_t pz);
48 void SetXYZ(Float_t xpos, Float_t ypos, Float_t zpos);
2c08d1c1 49 void SetWriteModule(Int_t wrmod);
638f6e9b 50 void CalculateEta();
51 void CalculatePhi();
52 void CalculateEtaPhi();
5d35baec 53 void CalculateXY(Float_t eta, Float_t phi, Float_t zpos);
638f6e9b 54 Float_t GetTheta() const;
55 Float_t GetEta() const;
56 Float_t GetPhi() const;
5d35baec 57 Float_t GetX() const;
58 Float_t GetY() const;
59 Float_t GetZ() const;
638f6e9b 60
a918d77a 61 protected:
dc461f61 62
a918d77a 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
dc461f61 69 Float_t fSecTr[4][3]; // Sector alignement (translation)
2c08d1c1 70 Int_t fWriteModule; // Module number writing
a918d77a 71
6d4a951b 72 ClassDef(AliPMDUtility,8) // Utility class for the detector set:PMD
638f6e9b 73};
74
75#endif