]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSRecCpvManager.cxx
moved old files to v0, added dummy AliITSURecoParam
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRecCpvManager.cxx
index 4947b411894425c7a9708415a1ab2b44788033bf..7aea3603f1f5e86c4e2541bcea27d744e3d5e85f 100644 (file)
@@ -13,6 +13,7 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+/* $Id$ */
 
 //_________________________________________________________________________
 // Class for the management by the CPV reconstruction.
 //
 // --- ROOT system ---
 
+#include <TMath.h>
+
 // --- Standard library ---
 
 // --- AliRoot header files ---
 
 #include "AliPHOSRecCpvManager.h"
 #include "AliPHOSGeometry.h" 
-#include "AliPHOSLoader.h"
 
 ClassImp(AliPHOSRecCpvManager) 
 
@@ -110,7 +112,7 @@ void AliPHOSRecCpvManager::AG(Float_t ei, Float_t xi, Float_t yi, Float_t& ai, F
   //xi and yi are the distances along x and y from reference point 
   // to the pad center.
 
-  AliPHOSGeometry * geom = AliPHOSLoader::GetPHOSGeometry();
+  AliPHOSGeometry * geom =  AliPHOSGeometry::GetInstance() ;
 
   Float_t celZ = geom->GetPadSizeZ();
   Float_t celY = geom->GetPadSizePhi();
@@ -169,11 +171,15 @@ Float_t AliPHOSRecCpvManager::GradX(Float_t x, Float_t y)
 
   Float_t skv      = kb*kb + x*x + y*y;
 
-  Float_t gradient = y*(1.-x*x/skv)*  kb*TMath::Sqrt(skv)/( kb*kb*skv+x*x*y*y)
-    - y*(1.-x*x/skv)*3*kb*TMath::Sqrt(skv)/((3*kb)*(3*kb)*skv+x*x*y*y)
-    + y*(1.-x*x/skv)*5*kb*TMath::Sqrt(skv)/((5*kb)*(5*kb)*skv+x*x*y*y)
-    - y*(1.-x*x/skv)*7*kb*TMath::Sqrt(skv)/((7*kb)*(7*kb)*skv+x*x*y*y)
-    + y*(1.-x*x/skv)*9*kb*TMath::Sqrt(skv)/((9*kb)*(9*kb)*skv+x*x*y*y);
+  Float_t sqskv=TMath::Sqrt(skv);
+  Float_t yxskv=y*(1.-x/sqskv)*(1.+x/sqskv);
+  
+  Float_t gradient = 
+      yxskv*  kb*sqskv/( kb*kb*skv+x*x*y*y)
+    - yxskv*3*kb*sqskv/((3*kb)*(3*kb)*skv+x*x*y*y)
+    + yxskv*5*kb*sqskv/((5*kb)*(5*kb)*skv+x*x*y*y)
+    - yxskv*7*kb*sqskv/((7*kb)*(7*kb)*skv+x*x*y*y)
+    + yxskv*9*kb*sqskv/((9*kb)*(9*kb)*skv+x*x*y*y);
       
   Float_t grad    = ka*gradient/TMath::TwoPi();
   return grad;
@@ -188,11 +194,16 @@ Float_t AliPHOSRecCpvManager::GradY(Float_t x, Float_t y)
   const Float_t kb = 0.70;
  
   Float_t skv      = kb*kb + x*x + y*y;
-  Float_t gradient = x*(1.-y*y/skv)*  kb*TMath::Sqrt(skv)/( kb*kb*skv+x*x*y*y)
-    - x*(1.-y*y/skv)*3*kb*TMath::Sqrt(skv)/((3*kb)*(3*kb)*skv+x*x*y*y)
-    + x*(1.-y*y/skv)*5*kb*TMath::Sqrt(skv)/((5*kb)*(5*kb)*skv+x*x*y*y)
-    - x*(1.-y*y/skv)*7*kb*TMath::Sqrt(skv)/((7*kb)*(7*kb)*skv+x*x*y*y)
-    + x*(1.-y*y/skv)*9*kb*TMath::Sqrt(skv)/((9*kb)*(9*kb)*skv+x*x*y*y);
+
+  Float_t sqskv=TMath::Sqrt(skv);
+  Float_t xyskv=x*(1.-y/sqskv)*(1.+y/sqskv);
+
+  Float_t gradient = 
+      xyskv*  kb*sqskv/( kb*kb*skv+x*x*y*y)
+    - xyskv*3*kb*sqskv/((3*kb)*(3*kb)*skv+x*x*y*y)
+    + xyskv*5*kb*sqskv/((5*kb)*(5*kb)*skv+x*x*y*y)
+    - xyskv*7*kb*sqskv/((7*kb)*(7*kb)*skv+x*x*y*y)
+    + xyskv*9*kb*sqskv/((9*kb)*(9*kb)*skv+x*x*y*y);
   
   Float_t grad    = ka*gradient/TMath::TwoPi();
   return grad;