* See cxx source for full Copyright notice */
////////////////////////////////////////////////////////////////////////////
-// //
// AliTPCFCVoltError3D class //
-// date: 01/06/2010 //
// Authors: Jim Thomas, Stefan Rossegger //
////////////////////////////////////////////////////////////////////////////
// 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[]);
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.
TMatrixD *fLookUpBasic6DeltaEz[kPhiSlices]; // ! Array to store electric field integral
- ClassDef(AliTPCFCVoltError3D,2); //
+ ClassDef(AliTPCFCVoltError3D,3); //
};
#endif