]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCFCVoltError3D.h
Fixes for CAF, etc
[u/mrichter/AliRoot.git] / TPC / AliTPCFCVoltError3D.h
index 70711f64766564ab3c20ed5ed728ebec78a54a33..8575bd6e6685e15e732aa7fba4867eeab50fe202 100644 (file)
@@ -5,9 +5,7 @@
  * See cxx source for full Copyright notice                               */
 
 ////////////////////////////////////////////////////////////////////////////
-//                                                                        //
 // AliTPCFCVoltError3D class                                              //
-// date: 01/06/2010                                                       //
 // Authors: Jim Thomas, Stefan Rossegger                                  //
 ////////////////////////////////////////////////////////////////////////////
 
@@ -38,31 +36,34 @@ public:
   // Set rod shift in Voltage equivalents (40V ~ 1mm)
   // rod numbers: 0-17 (IFC), 18-35 (OFC)
   // note: strips move accordingly
-  void SetRodVoltShiftA(Int_t rod, Float_t voltOffset) {fRodVoltShiftA[rod]=voltOffset; fInitLookUp=kFALSE;}
-  void SetRodVoltShiftC(Int_t rod, Float_t voltOffset) {fRodVoltShiftC[rod]=voltOffset; fInitLookUp=kFALSE;}
+  void SetRodVoltShiftA(Int_t rod, Float_t voltOffset, Bool_t doInit=kTRUE) {fRodVoltShiftA[rod]=voltOffset; fInitLookUp=doInit;}
+  void SetRodVoltShiftC(Int_t rod, Float_t voltOffset, Bool_t doInit=kTRUE) {fRodVoltShiftC[rod]=voltOffset; fInitLookUp=doInit;}
   Float_t GetRodVoltShiftA(Int_t i) const {return fRodVoltShiftA[i];}// 0-17: IFC, 18-35; OFC
   Float_t GetRodVoltShiftC(Int_t i) const {return fRodVoltShiftC[i];}// 0-17: IFC, 18-35; OFC
 
   // Set rotated clip (just at High Voltage RODs) in Voltage equivalents (40V ~ 1mm)
   // rod number: 0 (IFC), 1 (OFC)
-  void SetRotatedClipVoltA(Int_t rod, Float_t voltOffset) {fRotatedClipVoltA[rod]=voltOffset; fInitLookUp=kFALSE;}
-  void SetRotatedClipVoltC(Int_t rod, Float_t voltOffset) {fRotatedClipVoltC[rod]=voltOffset; fInitLookUp=kFALSE;}
+  void SetRotatedClipVoltA(Int_t rod, Float_t voltOffset, Bool_t doInit=kTRUE) {fRotatedClipVoltA[rod]=voltOffset; fInitLookUp=doInit;}
+  void SetRotatedClipVoltC(Int_t rod, Float_t voltOffset, Bool_t doInit=kTRUE) {fRotatedClipVoltC[rod]=voltOffset; fInitLookUp=doInit;}
   Float_t GetRotatedClipVoltA(Int_t i) const {return fRotatedClipVoltA[i];}// (0,1):(IFC,OFC)
   Float_t GetRotatedClipVoltC(Int_t i) const {return fRotatedClipVoltC[i];}// (0,1):(IFC,OFC)
 
   // Set rod shift in Voltage equivalents (40V ~ 1mm)
   // rod numbers: 0-17 (OFC)
   // note: strips DO NOT move, only the copper rods do ...
-  void SetCopperRodShiftA(Int_t rod, Float_t voltOffset) {fCopperRodShiftA[rod]=voltOffset; fInitLookUp=kFALSE;}
-  void SetCopperRodShiftC(Int_t rod, Float_t voltOffset) {fCopperRodShiftC[rod]=voltOffset; fInitLookUp=kFALSE;}
+  void SetCopperRodShiftA(Int_t rod, Float_t voltOffset, Bool_t doInit=kTRUE) {fCopperRodShiftA[rod]=voltOffset; fInitLookUp=doInit;}
+  void SetCopperRodShiftC(Int_t rod, Float_t voltOffset, Bool_t doInit=kTRUE) {fCopperRodShiftC[rod]=voltOffset; fInitLookUp=doInit;}
   Float_t GetCopperRodShiftA(Int_t i) const {return fCopperRodShiftA[i];}// 0-17: IFC, 18-35; OFC
   Float_t GetCopperRodShiftC(Int_t i) const {return fCopperRodShiftC[i];}// 0-17: IFC, 18-35; OFC
 
 
   void InitFCVoltError3D(); // Fill the lookup tables
+  void ForceInitFCVoltError3D() { fInitLookUp=kFALSE; InitFCVoltError3D(); }
 
   virtual void Print(const Option_t* option="") const;
 
+
+
 protected:
   virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
 
@@ -80,13 +81,13 @@ private:
   Float_t fCopperRodShiftA[36];    // only Rod shift 
   Float_t fCopperRodShiftC[36];    // only Rod shift 
 
-  Bool_t fInitLookUp;           // flag to check it the Look Up table was created (SUM)
+  Bool_t fInitLookUp;           // flag to check if the Look Up table was created (SUM)
   Bool_t fInitLookUpBasic[6];   // ! flag if the basic lookup was created (shifted Rod (IFC,OFC) or rotated clip (IFC,OFC))
 
 
-  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)
 
   // basic numbers for the poisson relaxation //can be set individually in each class
   enum {kRows   =257}; // grid size in r direction used in the poisson relaxation // ( 2**n + 1 ) eg. 65, 129, 257 etc.
@@ -126,7 +127,7 @@ private:
   TMatrixD *fLookUpBasic6DeltaEz[kPhiSlices];    // ! Array to store electric field integral 
 
 
-  ClassDef(AliTPCFCVoltError3D,2); //
+  ClassDef(AliTPCFCVoltError3D,3); //
 };
 
 #endif