X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PMD%2FAliPMDUtility.h;h=f951057b209b28e050c535c57e1ca2eb7f766f3e;hb=9153ce65fe6d020f4dc4d67df48a53d0117c5769;hp=215f9f1ca02cc0730ca28bc505a2c89a37019582;hpb=01c4d84aade032222c95f9b2dfbb915c46b1a134;p=u%2Fmrichter%2FAliRoot.git diff --git a/PMD/AliPMDUtility.h b/PMD/AliPMDUtility.h index 215f9f1ca02..f951057b209 100644 --- a/PMD/AliPMDUtility.h +++ b/PMD/AliPMDUtility.h @@ -10,36 +10,66 @@ // Utility class for PMD // // // //-----------------------------------------------------// +// Author - +// #include "Rtypes.h" -class AliPMDUtility + + +class AliPMDUtility:public TObject { public: AliPMDUtility(); AliPMDUtility(Float_t px, Float_t py, Float_t pz); + AliPMDUtility(const AliPMDUtility &pmdutil); // copy constructor + AliPMDUtility &operator=(const AliPMDUtility &pmdutil); // assignment op 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; // Momentum along x Float_t fPy; // Momentum along y Float_t fPz; // Momentum along z Float_t fTheta; // Polar angle in radian Float_t fEta; // Pseudo-rapidity Float_t fPhi; // Azimuthal angle in radian + Float_t fSecTr[4][3]; // Sector alignement (translation) + Int_t fWriteModule; // Module number writing - ClassDef(AliPMDUtility,3) // Utility class for the detector set:PMD + ClassDef(AliPMDUtility,8) // Utility class for the detector set:PMD }; #endif