#ifndef ALIPMDUTILITY_H
#define ALIPMDUTILITY_H
#include "Rtypes.h"
class AliPMDUtility:public TObject
{
public:
AliPMDUtility();
AliPMDUtility(Float_t px, Float_t py, Float_t pz);
AliPMDUtility(const AliPMDUtility &pmdutil);
AliPMDUtility &operator=(const AliPMDUtility &pmdutil);
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;
Float_t fPy;
Float_t fPz;
Float_t fTheta;
Float_t fEta;
Float_t fPhi;
Float_t fSecTr[4][3];
Int_t fWriteModule;
ClassDef(AliPMDUtility,8)
};
#endif