ROOT logo
#ifndef ALIPMDUTILITY_H
#define ALIPMDUTILITY_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
//-----------------------------------------------------//
//                                                     //
//                                                     //
//  Date   : August 05 2003                            //
//                                                     //
//  Utility class for PMD                              //
//                                                     //
//-----------------------------------------------------//
// Author - 
//
#include "Rtypes.h"


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,8) // Utility class for the detector set:PMD
};

#endif
 AliPMDUtility.h:1
 AliPMDUtility.h:2
 AliPMDUtility.h:3
 AliPMDUtility.h:4
 AliPMDUtility.h:5
 AliPMDUtility.h:6
 AliPMDUtility.h:7
 AliPMDUtility.h:8
 AliPMDUtility.h:9
 AliPMDUtility.h:10
 AliPMDUtility.h:11
 AliPMDUtility.h:12
 AliPMDUtility.h:13
 AliPMDUtility.h:14
 AliPMDUtility.h:15
 AliPMDUtility.h:16
 AliPMDUtility.h:17
 AliPMDUtility.h:18
 AliPMDUtility.h:19
 AliPMDUtility.h:20
 AliPMDUtility.h:21
 AliPMDUtility.h:22
 AliPMDUtility.h:23
 AliPMDUtility.h:24
 AliPMDUtility.h:25
 AliPMDUtility.h:26
 AliPMDUtility.h:27
 AliPMDUtility.h:28
 AliPMDUtility.h:29
 AliPMDUtility.h:30
 AliPMDUtility.h:31
 AliPMDUtility.h:32
 AliPMDUtility.h:33
 AliPMDUtility.h:34
 AliPMDUtility.h:35
 AliPMDUtility.h:36
 AliPMDUtility.h:37
 AliPMDUtility.h:38
 AliPMDUtility.h:39
 AliPMDUtility.h:40
 AliPMDUtility.h:41
 AliPMDUtility.h:42
 AliPMDUtility.h:43
 AliPMDUtility.h:44
 AliPMDUtility.h:45
 AliPMDUtility.h:46
 AliPMDUtility.h:47
 AliPMDUtility.h:48
 AliPMDUtility.h:49
 AliPMDUtility.h:50
 AliPMDUtility.h:51
 AliPMDUtility.h:52
 AliPMDUtility.h:53
 AliPMDUtility.h:54
 AliPMDUtility.h:55
 AliPMDUtility.h:56
 AliPMDUtility.h:57
 AliPMDUtility.h:58
 AliPMDUtility.h:59
 AliPMDUtility.h:60
 AliPMDUtility.h:61
 AliPMDUtility.h:62
 AliPMDUtility.h:63
 AliPMDUtility.h:64
 AliPMDUtility.h:65
 AliPMDUtility.h:66
 AliPMDUtility.h:67
 AliPMDUtility.h:68
 AliPMDUtility.h:69
 AliPMDUtility.h:70
 AliPMDUtility.h:71
 AliPMDUtility.h:72
 AliPMDUtility.h:73
 AliPMDUtility.h:74
 AliPMDUtility.h:75