]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMDUtility.h
bug fix
[u/mrichter/AliRoot.git] / PMD / AliPMDUtility.h
index 92cd39ec1a40af90d3d3b0db0751277775fbf8a3..f06522943cb765938c283f03ff7378036a043c0f 100644 (file)
@@ -1,5 +1,7 @@
-#ifndef PMDUtility_H
-#define PMDUtility_H
+#ifndef ALIPMDUTILITY_H
+#define ALIPMDUTILITY_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
 //-----------------------------------------------------//
 //                                                     //
 //                                                     //
 //  Utility class for PMD                              //
 //                                                     //
 //-----------------------------------------------------//
-
-#include <math.h>
-#include "Riostream.h"
-#include "TMath.h"
+// Author - B.K. Nandi
+//
 #include "Rtypes.h"
-
 class AliPMDUtility
 {
-  
- protected:
-  Float_t fPx, fPy, fPz;
-  Float_t fTheta, fEta, fPhi;
-
  public:
   AliPMDUtility();
-  AliPMDUtility(Float_t /* Px */, Float_t /* Py */, Float_t /* Pz */);
+  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 SetPxPyPz(Float_t /* Px */, Float_t /* Py */, Float_t /* Pz */);
-  void SetXYZ(Float_t /* xPos */, Float_t /* yPos */, Float_t /* zPos */);
+
+
+  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 GenerateBoundaryPoints(Int_t ism, Float_t &x1ism, Float_t &y1ism
+                             , Float_t &x2ism, Float_t &y2ism);
+
+  void DrawPMDModule(); 
+
+  void ApplyVertexCorrection(Float_t vertex[], 
+                            Float_t xpos, Float_t ypos, Float_t zpos);
+  void ApplyAlignment();
+  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
+  Int_t   fWriteModule;  // Module number writing 
   
-  ClassDef(AliPMDUtility,1)
+  ClassDef(AliPMDUtility,4) // Utility class for the detector set:PMD
 };
 
 #endif