]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCExBFirst.cxx
AliTPCRecoParam.cxx - Removing old comment
[u/mrichter/AliRoot.git] / TPC / AliTPCExBFirst.cxx
index 1dc0abd02e7409a7e51c0ef634034182cf7085c4..9a56a4cdf85934d386661a3bc8ae03261c2567c7 100644 (file)
@@ -36,7 +36,7 @@
 
 
 #include "TMath.h"
-#include "AliFieldMap.h"
+//#include "AliFieldMap.h"
 #include "AliMagF.h"
 #include "TTreeStream.h"
 #include "AliTPCExBFirst.h"
@@ -44,7 +44,7 @@
 ClassImp(AliTPCExBFirst)
 
 const Double_t AliTPCExBFirst::fgkEM=1.602176487e-19/9.10938215e-31;
-const Double_t AliTPCExBFirst::fgkDriftField=40.e3;
+const Double_t AliTPCExBFirst::fgkDriftField=-40.e3;
 
 AliTPCExBFirst::AliTPCExBFirst()
   : fDriftVelocity(0),
@@ -73,10 +73,12 @@ AliTPCExBFirst::AliTPCExBFirst(const AliMagF *bField,
   // drift velocity. Since some kind of lookuptable is created the
   // number of its meshpoints can be supplied.
   //
-  ConstructCommon(0,bField);
+  //  ConstructCommon(0,bField);
+  ConstructCommon(bField);
   SetInstance(this);
 }
 
+/*
 AliTPCExBFirst::AliTPCExBFirst(const AliFieldMap *bFieldMap,
                               Double_t driftVelocity) 
   : fDriftVelocity(driftVelocity),
@@ -115,6 +117,7 @@ AliTPCExBFirst::AliTPCExBFirst(const AliFieldMap *bFieldMap,
 
   ConstructCommon(bFieldMap,0);
 }
+*/
 
 AliTPCExBFirst::~AliTPCExBFirst() { 
   //
@@ -201,7 +204,8 @@ void AliTPCExBFirst::TestThisBeautifulObject(const char* fileName) {
       }
 }
 
-void AliTPCExBFirst::ConstructCommon(const AliFieldMap *bFieldMap,
+
+void AliTPCExBFirst::ConstructCommon(//const AliFieldMap *bFieldMap,
                                     const AliMagF *bField) {
   //
   // THIS IS PRIVATE! (a helper for the constructor)
@@ -221,15 +225,15 @@ void AliTPCExBFirst::ConstructCommon(const AliFieldMap *bFieldMap,
       Double_t bx=0.,by=0.;
       for (int k=0;k<fkNZ;++k) {
        x[2]=fkZMin+k*(fkZMax-fkZMin)/(fkNZ-1);
-       Float_t b[3];
+       Double_t b[3];
        // the x is not const in the Field function...
-       Float_t xt[3];
+       Double_t xt[3];
        for (int l=0;l<3;++l) xt[l]=x[l];
        // that happens due to the lack of a sophisticated class design:
-       if (bFieldMap!=0)
-         bFieldMap->Field(xt,b);
-       else 
-         bField->Field(xt,b);
+       //      if (bFieldMap!=0)
+       //        bFieldMap->Field(xt,b);
+       //      else 
+       ((AliMagF*)bField)->Field(xt,b);
        bx+=b[0]/10.;
        by+=b[1]/10.;
        fkMeanBx[(k*fkNY+j)*fkNX+i]=bx;
@@ -244,6 +248,7 @@ void AliTPCExBFirst::ConstructCommon(const AliFieldMap *bFieldMap,
   fkMeanBz/=nBz;
 }
 
+
 void AliTPCExBFirst::GetMeanFields(Double_t rx,Double_t ry,Double_t rz,
                                   Double_t *Bx,Double_t *By) const {
   //
@@ -271,42 +276,45 @@ void AliTPCExBFirst::GetMeanFields(Double_t rx,Double_t ry,Double_t rz,
 
   double s0x=fkMeanBx[yi1*fkNX+xi1]*dx1*dy1
            +fkMeanBx[yi2*fkNX+xi1]*dx1*dy
-            +fkMeanBx[yi1*fkNX+xi2]*dx *dy
-            +fkMeanBx[yi2*fkNX+xi2]*dx *dy1;
+            +fkMeanBx[yi1*fkNX+xi2]*dx *dy1
+            +fkMeanBx[yi2*fkNX+xi2]*dx *dy;
   double s0y=fkMeanBy[yi1*fkNX+xi1]*dx1*dy1
            +fkMeanBy[yi2*fkNX+xi1]*dx1*dy
-            +fkMeanBy[yi1*fkNX+xi2]*dx *dy
-            +fkMeanBy[yi2*fkNX+xi2]*dx *dy1;
+            +fkMeanBy[yi1*fkNX+xi2]*dx *dy1
+            +fkMeanBy[yi2*fkNX+xi2]*dx *dy;
   Int_t zi0=zi1-1;
   double snmx,snmy;
   if (zi0>=0) {
     snmx=fkMeanBx[(zi0*fkNY+yi1)*fkNX+xi1]*dx1*dy1
         +fkMeanBx[(zi0*fkNY+yi2)*fkNX+xi1]*dx1*dy
-        +fkMeanBx[(zi0*fkNY+yi1)*fkNX+xi2]*dx *dy
-        +fkMeanBx[(zi0*fkNY+yi2)*fkNX+xi2]*dx *dy1;
+        +fkMeanBx[(zi0*fkNY+yi1)*fkNX+xi2]*dx *dy1
+        +fkMeanBx[(zi0*fkNY+yi2)*fkNX+xi2]*dx *dy;
     snmy=fkMeanBy[(zi0*fkNY+yi1)*fkNX+xi1]*dx1*dy1
         +fkMeanBy[(zi0*fkNY+yi2)*fkNX+xi1]*dx1*dy
-        +fkMeanBy[(zi0*fkNY+yi1)*fkNX+xi2]*dx *dy
-        +fkMeanBy[(zi0*fkNY+yi2)*fkNX+xi2]*dx *dy1;
+        +fkMeanBy[(zi0*fkNY+yi1)*fkNX+xi2]*dx *dy1
+        +fkMeanBy[(zi0*fkNY+yi2)*fkNX+xi2]*dx *dy;
   }
   else
     snmx=snmy=0.;
   double snx=fkMeanBx[(zi1*fkNY+yi1)*fkNX+xi1]*dx1*dy1
            +fkMeanBx[(zi1*fkNY+yi2)*fkNX+xi1]*dx1*dy
-            +fkMeanBx[(zi1*fkNY+yi1)*fkNX+xi2]*dx *dy
-            +fkMeanBx[(zi1*fkNY+yi2)*fkNX+xi2]*dx *dy1;
+            +fkMeanBx[(zi1*fkNY+yi1)*fkNX+xi2]*dx *dy1
+            +fkMeanBx[(zi1*fkNY+yi2)*fkNX+xi2]*dx *dy;
   double sny=fkMeanBy[(zi1*fkNY+yi1)*fkNX+xi1]*dx1*dy1
            +fkMeanBy[(zi1*fkNY+yi2)*fkNX+xi1]*dx1*dy
-            +fkMeanBy[(zi1*fkNY+yi1)*fkNX+xi2]*dx *dy
-            +fkMeanBy[(zi1*fkNY+yi2)*fkNX+xi2]*dx *dy1;
+            +fkMeanBy[(zi1*fkNY+yi1)*fkNX+xi2]*dx *dy1
+            +fkMeanBy[(zi1*fkNY+yi2)*fkNX+xi2]*dx *dy;
   double snpx=fkMeanBx[(zi2*fkNY+yi1)*fkNX+xi1]*dx1*dy1
             +fkMeanBx[(zi2*fkNY+yi2)*fkNX+xi1]*dx1*dy
-             +fkMeanBx[(zi2*fkNY+yi1)*fkNX+xi2]*dx *dy
-             +fkMeanBx[(zi2*fkNY+yi2)*fkNX+xi2]*dx *dy1;
+             +fkMeanBx[(zi2*fkNY+yi1)*fkNX+xi2]*dx *dy1
+             +fkMeanBx[(zi2*fkNY+yi2)*fkNX+xi2]*dx *dy;
   double snpy=fkMeanBy[(zi2*fkNY+yi1)*fkNX+xi1]*dx1*dy1
             +fkMeanBy[(zi2*fkNY+yi2)*fkNX+xi1]*dx1*dy
-             +fkMeanBy[(zi2*fkNY+yi1)*fkNX+xi2]*dx *dy
-             +fkMeanBy[(zi2*fkNY+yi2)*fkNX+xi2]*dx *dy1;
+             +fkMeanBy[(zi2*fkNY+yi1)*fkNX+xi2]*dx *dy1
+             +fkMeanBy[(zi2*fkNY+yi2)*fkNX+xi2]*dx *dy;
+
+
+
   *Bx=0.5*(((snpx-2.*snx+snmx)*dz+2.*(snx-snmx))*dz+snx-s0x+snmx);
   *By=0.5*(((snpy-2.*sny+snmy)*dz+2.*(sny-snmy))*dz+sny-s0y+snmy);
   //TODO: make this nice