LCOV - code coverage report
Current view: top level - TPC/TPCbase - AliTPCExB.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 6 9 66.7 %
Date: 2016-06-14 17:26:59 Functions: 3 12 25.0 %

          Line data    Source code
       1             : /// \class AliTPCExB
       2             : 
       3             : #ifndef ALITPCEXB_H
       4             : #define ALITPCEXB_H
       5             : 
       6             : class AliMagF;
       7             : #include "TObject.h"
       8             : #include "TVectorDfwd.h"
       9             : 
      10             : class AliTPCExB:public TObject {
      11             : public:
      12             :   AliTPCExB();
      13             :   AliTPCExB& operator=(const AliTPCExB &exb);
      14             :   AliTPCExB(const AliTPCExB& exb);
      15           0 :   virtual ~AliTPCExB() {};
      16             :   virtual void Correct(const Double_t *position,Double_t *corrected)=0;
      17             :   virtual void CorrectInverse(const Double_t *position,Double_t *corrected) {
      18     3382744 :     Correct(position,corrected);
      19    13530976 :     for (Int_t i=0;i<3;++i)
      20     5074116 :       corrected[i]=position[i]-(corrected[i]-position[i]);
      21     1691372 :   }
      22             :   //
      23             :   // Test and visualization
      24             :   //
      25             :   void TestExB(const char* fileName);
      26             :   static Double_t GetDr(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
      27             :   static Double_t GetDrphi(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
      28             :   static Double_t GetDphi(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
      29             :   static Double_t GetDz(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
      30           0 :   static AliTPCExB*  Instance(){return fgInstance;}
      31          12 :   static void SetInstance(AliTPCExB *const param){fgInstance = param;}
      32             :   //
      33             :   // Mag field scans
      34             :   //
      35             :   static  void RegisterField(Int_t index, AliMagF * magf);
      36             :   static  Double_t GetBx(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      37             :   static  Double_t GetBy(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      38             :   static  Double_t GetBz(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      39             :   static  Double_t GetBr(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      40             :   static  Double_t GetBrfi(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      41             :   //
      42             :   static  Double_t GetBxI(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      43             :   static  Double_t GetByI(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      44             :   static  Double_t GetBzI(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      45             :   static  Double_t GetBrI(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      46             :   static  Double_t GetBrfiI(Double_t r, Double_t phi, Double_t z,Int_t index=0);
      47             :   //
      48             :   //
      49             :   Double_t Eval(Int_t type, Double_t r, Double_t phi, Double_t z);
      50           0 :   Double_t SEval(Int_t type, Double_t r, Double_t phi, Double_t z){return Instance()->Eval(type,r,phi,z);}
      51             :   static Double_t EvalMat(const TVectorD &vec, Double_t r, Double_t phi, Double_t z);     // evalute parameterization
      52             : 
      53             :  private:
      54             :   TVectorD *          fMatBrBz;       ///< param matrix Br/Bz
      55             :   TVectorD *          fMatBrfiBz;     ///< param matrix Br/Bz
      56             :   TVectorD *          fMatBrBzI0;     ///< param matrix Br/Bz integral  z>0
      57             :   TVectorD *          fMatBrBzI1;     ///< param matrix Br/Bz integral  z<0
      58             :   TVectorD *          fMatBrfiBzI0;   ///< param matrix Br/Bz integral  z>0
      59             :   TVectorD *          fMatBrfiBzI1;   ///< param matrix Br/Bz integral  z<0
      60             : 
      61             :   static AliTPCExB*   fgInstance;  //!<! Instance of this class (singleton implementation)
      62             :   static TObjArray    fgArray;     //!<! array of magnetic fields
      63             :   //
      64             :   /// \cond CLASSIMP
      65          24 :   ClassDef(AliTPCExB,2)
      66             :   /// \endcond
      67             : };
      68             : 
      69             : #endif

Generated by: LCOV version 1.11