implementation of effc++
authorbnandi <bnandi@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Aug 2006 08:30:16 +0000 (08:30 +0000)
committerbnandi <bnandi@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Aug 2006 08:30:16 +0000 (08:30 +0000)
PMD/AliPMDUtility.cxx
PMD/AliPMDUtility.h

index 402775df6d62b26447a9e8c18d40348df46f461a..54797b09ef640567447bcc7c37f809423558ec11 100644 (file)
 
 ClassImp(AliPMDUtility)
 
-AliPMDUtility::AliPMDUtility()
+AliPMDUtility::AliPMDUtility():
+  fPx(0.),
+  fPy(0.),
+  fPz(0.),
+  fTheta(0.),
+  fEta(0.),
+  fPhi(0.)
 {
   // Default constructor
-  fPx    = 0.;
-  fPy    = 0.;
-  fPz    = 0.;
-  fTheta = 0.;
-  fEta   = 0.;
-  fPhi   = 0.;
 }
 
-AliPMDUtility::AliPMDUtility(Float_t px, Float_t py, Float_t pz)
+AliPMDUtility::AliPMDUtility(Float_t px, Float_t py, Float_t pz):
+  fPx(px),
+  fPy(py),
+  fPz(pz),
+  fTheta(0.),
+  fEta(0.),
+  fPhi(0.)
 {
   // Constructor
-  fPx = px;
-  fPy = py;
-  fPz = pz;
-  fTheta = 0.;
-  fEta   = 0.;
-  fPhi   = 0.;
 }
-
+AliPMDUtility::AliPMDUtility(const AliPMDUtility &pmdutil):
+  fPx(pmdutil.fPx),
+  fPy(pmdutil.fPy),
+  fPz(pmdutil.fPz),
+  fTheta(pmdutil.fTheta),
+  fEta(pmdutil.fEta),
+  fPhi(pmdutil.fPhi)
+{
+  // copy constructor
+}
+AliPMDUtility & AliPMDUtility::operator=(const AliPMDUtility &pmdutil)
+{
+  // assignment operator
+  if(this != &pmdutil)
+    {
+      fPx = pmdutil.fPx;
+      fPy = pmdutil.fPy;
+      fPz = pmdutil.fPz;
+      fTheta = pmdutil.fTheta;
+      fEta = pmdutil.fEta;
+      fPhi = pmdutil.fPhi;
+    }
+  return *this;
+}
 AliPMDUtility::~AliPMDUtility()
 {
   // Default destructor
@@ -236,6 +259,18 @@ void AliPMDUtility::RectGeomCellPos(Int_t ism, Float_t xpad, Float_t ypad, Float
     }
 
 }
+void AliPMDUtility::ApplyVertexCorrection(Float_t vertex[], Float_t xpos,
+                                         Float_t ypos, Float_t zpos)
+{
+  // Not implemented
+  fPx = xpos - vertex[0];
+  fPy = ypos - vertex[1];
+  fPz = zpos - vertex[2];
+}
+void AliPMDUtility::ApplyAlignment()
+{
+  // Not implemented
+}
 
 void AliPMDUtility::SetPxPyPz(Float_t px, Float_t py, Float_t pz)
 {
@@ -295,7 +330,7 @@ void AliPMDUtility::CalculateEtaPhi()
   theta = TMath::ATan2(rpxpy,fPz);
   eta   = -TMath::Log(TMath::Tan(0.5*theta));
   
-  if(fPx==0)
+  if(fPx == 0)
     {
       if(fPy>0) phi = 90.;
       if(fPy<0) phi = 270.;
@@ -317,6 +352,22 @@ void AliPMDUtility::CalculateEtaPhi()
   fEta   = eta;
   fPhi   = phi;
 }
+void AliPMDUtility::CalculateXY(Float_t eta, Float_t phi, Float_t zpos)
+{
+  // Not implemented
+
+  //  eta   = -TMath::Log(TMath::Tan(0.5*theta));
+
+  Float_t xpos = 0., ypos = 0.;
+
+  //  Float_t theta = 2.0*TMath::ATan(TMath::Log(-eta));
+
+  fEta = eta;
+  fPhi = phi;
+  fPx  = xpos;
+  fPy  = ypos;
+  fPz  = zpos;
+}
 Float_t AliPMDUtility::GetTheta() const
 {
   return fTheta;
@@ -329,4 +380,16 @@ Float_t AliPMDUtility::GetPhi() const
 {
   return fPhi;
 }
+Float_t AliPMDUtility::GetX() const
+{
+  return fPx;
+}
+Float_t AliPMDUtility::GetY() const
+{
+  return fPy;
+}
+Float_t AliPMDUtility::GetZ() const
+{
+  return fPz;
+}
 
index 215f9f1ca02cc0730ca28bc505a2c89a37019582..74ab0816aefc38e340e83ff86f3dea32e70c4f9e 100644 (file)
 //  Utility class for PMD                              //
 //                                                     //
 //-----------------------------------------------------//
+// Author - B.K. Nandi
+//
 #include "Rtypes.h"
 class AliPMDUtility
 {
  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 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 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
@@ -39,7 +51,7 @@ class AliPMDUtility
   Float_t fEta;    // Pseudo-rapidity
   Float_t fPhi;    // Azimuthal angle in radian
   
-  ClassDef(AliPMDUtility,3) // Utility class for the detector set:PMD
+  ClassDef(AliPMDUtility,4) // Utility class for the detector set:PMD
 };
 
 #endif