LCOV - code coverage report
Current view: top level - TPC/TPCbase - AliTPCSpaceCharge.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 12 8.3 %
Date: 2016-06-14 17:26:59 Functions: 1 13 7.7 %

          Line data    Source code
       1             : #ifndef ALITPCSPACECHARGE_H
       2             : #define ALITPCSPACECHARGE_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /// \class AliTPCSpaceCharge
       8             : /// \brief \author Jim Thomas, Stefan Rossegger
       9             : 
      10             : #include "AliTPCCorrection.h"
      11             : 
      12             : 
      13             : class TH2;
      14             : 
      15             : class AliTPCSpaceCharge : public AliTPCCorrection {
      16             : public:
      17             :   AliTPCSpaceCharge();
      18             :   virtual ~AliTPCSpaceCharge();
      19             : 
      20             :   // initialization and update functions
      21             :   virtual void Init();
      22             :   virtual void Update(const TTimeStamp &timeStamp);
      23           0 :   void    SetInputSpaceCharge(TH2 * hisSpaceCharge){fSpaceChargeHistogram = hisSpaceCharge;}  // MI add
      24           0 :   const TH2 *   GetInputSpaceCharge(){return fSpaceChargeHistogram;}       // MI add
      25             : 
      26             : 
      27             :   // common setters and getters for tangled ExB effect
      28             :   virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2) {
      29           0 :     fT1=t1; fT2=t2;
      30           0 :     const Double_t wt0=t2*omegaTau;     fC0=1./(1.+wt0*wt0);
      31           0 :     const Double_t wt1=t1*omegaTau;     fC1=wt1/(1.+wt1*wt1);
      32           0 :   };
      33           0 :   void SetC0C1(Float_t c0,Float_t c1) {fC0=c0;fC1=c1;} // CAUTION: USE WITH CARE
      34           0 :   Float_t GetC0() const {return fC0;}
      35           0 :   Float_t GetC1() const {return fC1;}
      36             : 
      37             :   // setters and getters for conical
      38           0 :   void SetCorrectionFactor(Float_t correctionFactor) {fCorrectionFactor=correctionFactor;}
      39           0 :   Float_t GetCorrectionFactor() const {return fCorrectionFactor;}
      40             : 
      41             :   void InitSpaceChargeDistortion();
      42             : 
      43             :   virtual void Print(const Option_t* option="") const;
      44             : 
      45             : protected:
      46             :   virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
      47             : 
      48             : private:
      49             :   Float_t fC0; ///< coefficient C0                 (compare Jim Thomas's notes for definitions)
      50             :   Float_t fC1; ///< coefficient C1                 (compare Jim Thomas's notes for definitions)
      51             :   Float_t fCorrectionFactor;       ///< Space Charge Correction factor in comparison to initialized
      52             :                                    // look up table which was created for M_mb = 900 and IR = 3000
      53             :                                    // compare Internal Note Nr: ???
      54             : 
      55             :   TH2 *    fSpaceChargeHistogram;      ///< Histogram with the input space charge histogram - used as an optional input
      56             :   Bool_t fInitLookUp;                  ///< flag to check it the Look Up table was created
      57             : 
      58             :   Double_t fLookUpErOverEz[kNZ][kNR];  ///< Array to store electric field integral (int Er/Ez)
      59             :   Double_t fLookUpDeltaEz[kNZ][kNR];   ///< Array to store electric field integral (int Delta Ez)
      60             :   // basic numbers for the poisson relaxation //can be set individually in each class
      61             :   enum {kRows   =257}; // grid size in r direction used in the poisson relaxation // ( 2**n + 1 ) eg. 65, 129, 257 etc.
      62             :   enum {kColumns=129}; // grid size in z direction used in the poisson relaxation // ( 2**m + 1 ) eg. 65, 129, 257 etc.
      63             :   enum {kIterations=100}; // Number of iterations within the poisson relaxation
      64             : 
      65             :   /// \cond CLASSIMP
      66          24 :   ClassDef(AliTPCSpaceCharge,0);
      67             :   /// \endcond
      68             : };
      69             : 
      70             : #endif

Generated by: LCOV version 1.11