]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCSpaceCharge3D.h
svn ci AliTPCtrackerMI.cxx AliTPCRecoParam.cxx AliTPCRecoParam.h
[u/mrichter/AliRoot.git] / TPC / AliTPCSpaceCharge3D.h
index f557d2e0e1aa15e81793eec637b864aab6ce9f26..6abd2fb45970aa31c144486b00e3002406ed266a 100644 (file)
@@ -5,9 +5,7 @@
  * See cxx source for full Copyright notice                               */
 
 ////////////////////////////////////////////////////////////////////////////
-//                                                                        //
-// AliTPCSpaceCharge3D class                                           //
-// date: 19/06/2010                                                       //
+// AliTPCSpaceCharge3D class                                              //
 // Authors: Stefan Rossegger                                              //
 ////////////////////////////////////////////////////////////////////////////
 
@@ -42,6 +40,7 @@ public:
 
   void InitSpaceCharge3DDistortion();       // faster model and more accurate ;-)
   void InitSpaceCharge3DDistortionCourse(); // real 3D but not accurate enough
+  void ForceInitSpaceCharge3DDistortion() { fInitLookUp=kFALSE; InitSpaceCharge3DDistortion(); }
 
   Float_t GetSpaceChargeDensity(Float_t r, Float_t phi, Float_t z, Int_t mode=0);
   TH2F* CreateHistoSCinXY(Float_t z, Int_t nx=100, Int_t ny=100, Int_t mode=0);
@@ -57,6 +56,11 @@ protected:
 
 private:
 
+  // maximum sizes of lookup tables
+  enum {kNRows= 90 };       // the maximum on row-slices so far ~ 2cm slicing    
+  enum {kNPhiSlices= 144 }; // the maximum of phi-slices so far = (8 per sector) 
+  enum {kNColumns= 130 };   // the maximum on column-slices so  ~ 2cm slicing    
+
   AliTPCSpaceCharge3D(const AliTPCSpaceCharge3D &);               // not implemented
   AliTPCSpaceCharge3D &operator=(const AliTPCSpaceCharge3D &);    // not implemented
 
@@ -66,11 +70,11 @@ private:
                                    // look up table which was created for M_mb = 900 and IR = 3000
                                    // compare Internal Note Nr: ???
 
-  Bool_t fInitLookUp;                 // flag to check it the Look Up table was created
+  Bool_t fInitLookUp;                 // flag to check if the Look Up table was created
 
-  TMatrixD *fLookUpErOverEz[kNPhi];   // Array to store electric field integral (int Er/Ez)
-  TMatrixD *fLookUpEphiOverEz[kNPhi]; // Array to store electric field integral (int Er/Ez)
-  TMatrixD *fLookUpDeltaEz[kNPhi];    // Array to store electric field integral (int Er/Ez)
+  TMatrixF *fLookUpErOverEz[kNPhi];   // Array to store electric field integral (int Er/Ez)
+  TMatrixF *fLookUpEphiOverEz[kNPhi]; // Array to store electric field integral (int Er/Ez)
+  TMatrixF *fLookUpDeltaEz[kNPhi];    // Array to store electric field integral (int Er/Ez)
 
   TString fSCDataFileName;          // file which contains the space charge distribution
   TString fSCLookUpPOCsFileName3D;  // filename of the precalculated lookup tables (for individual voxels)
@@ -78,12 +82,12 @@ private:
   TString fSCLookUpPOCsFileNameRPhi;  // filename of the precalculated lookup tables (for individual voxels)
 
 
-  TMatrixD *fSCdensityDistribution[kNPhi]; // 3D space charge distribution
+  TMatrixF *fSCdensityDistribution[kNPhi]; // 3D space charge distribution
   TMatrixD *fSCdensityInRZ;       // (r,z) space charge distribution
   TMatrixD *fSCdensityInRPhiA;     // (r,phi) space charge distribution
   TMatrixD *fSCdensityInRPhiC;     // (r,phi) space charge distribution
  
-  ClassDef(AliTPCSpaceCharge3D,1); 
+  ClassDef(AliTPCSpaceCharge3D,2); 
 };
 
 #endif