Use event specie to identufy laser events
[u/mrichter/AliRoot.git] / TPC / AliTPCExBEffective.h
1 #ifndef ALITPCEXBEFFECTIVE_H
2 #define ALITPCEXBEFFECTIVE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////////////////////////////////
8 //                                                                        //
9 // AliTPCExBEffective class                                                   //
10 // date: 02/05/2010                                                       //
11 // Authors: Maarian Ivanov, Jim Thomas, Magnus Mager, Stefan Rossegger                    //
12 ////////////////////////////////////////////////////////////////////////////
13
14 #include "AliTPCCorrection.h"
15
16 class AliTPCExBEffective : public AliTPCCorrection {
17 public:
18   AliTPCExBEffective();
19   virtual ~AliTPCExBEffective();
20   // initialization and update functions
21   virtual void Init();
22   virtual void Update(const TTimeStamp &timeStamp);
23   // common setters and getters for ExB
24   virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2) {
25     fT1=t1; fT2=t2;
26     const Float_t wt1=t1*omegaTau;    fC1=wt1/(1.+wt1*wt1);
27     const Float_t wt2=t2*omegaTau;    fC0=1/(1.+wt2*wt2);
28   };
29   Float_t GetC1() const {return fC1;}
30   Float_t GetC0() const {return fC0;}
31   Double_t GetSum(const TMatrixD& pol, const TMatrixD&coef, Double_t r, Double_t drift, Double_t phi, Int_t coord=0) const;
32   void SetPolynoms(const TMatrixD *polA, const TMatrixD *polC);
33   void SetCoeficients(const TMatrixD *valA,const TMatrixD *valC);
34   void Print(const Option_t* option) const;
35
36 public:
37   virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
38
39 private:
40   Double_t fC0;                // coefficient C0 (compare Jim Thomas's notes for definitions)
41   Double_t fC1;                // coefficient C1 (compare Jim Thomas's notes for definitions)
42   TMatrixD *fPolynomA;         // correction polynoms A
43   TMatrixD *fPolynomC;         // correction polynoms C
44   TMatrixD *fPolynomValA;      // correction polynoms coefficient A
45   TMatrixD *fPolynomValC;      //  correction polynoms coefficient C
46
47   AliTPCExBEffective(const AliTPCExBEffective&);
48   AliTPCExBEffective &operator=(const AliTPCExBEffective&);
49   ClassDef(AliTPCExBEffective,1);
50 };
51
52 #endif