ROOT logo
#ifndef ALITPCEXBEFFECTIVE_H
#define ALITPCEXBEFFECTIVE_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
// AliTPCExBEffective class                                                   //
// date: 02/05/2010                                                       //
// Authors: Maarian Ivanov, Jim Thomas, Magnus Mager, Stefan Rossegger                    //
////////////////////////////////////////////////////////////////////////////

#include "AliTPCCorrection.h"

class AliTPCExBEffective : public AliTPCCorrection {
public:
  AliTPCExBEffective();
  virtual ~AliTPCExBEffective();
  // initialization and update functions
  virtual void Init();
  virtual void Update(const TTimeStamp &timeStamp);
  // common setters and getters for ExB
  virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2) {
    fT1=t1; fT2=t2;
    const Float_t wt1=t1*omegaTau;    fC1=wt1/(1.+wt1*wt1);
    const Float_t wt2=t2*omegaTau;    fC0=1/(1.+wt2*wt2);
  };
  Float_t GetC1() const {return fC1;}
  Float_t GetC0() const {return fC0;}
  Double_t GetSum(const TMatrixD& pol, const TMatrixD&coef, Double_t r, Double_t drift, Double_t phi, Int_t coord=0) const;
  void SetPolynoms(const TMatrixD *polA, const TMatrixD *polC);
  void SetCoeficients(const TMatrixD *valA,const TMatrixD *valC);
  void Print(const Option_t* option) const;

public:
  virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);

private:
  Double_t fC0;                // coefficient C0 (compare Jim Thomas's notes for definitions)
  Double_t fC1;                // coefficient C1 (compare Jim Thomas's notes for definitions)
  TMatrixD *fPolynomA;         // correction polynoms A
  TMatrixD *fPolynomC;         // correction polynoms C
  TMatrixD *fPolynomValA;      // correction polynoms coefficient A
  TMatrixD *fPolynomValC;      //  correction polynoms coefficient C

  AliTPCExBEffective(const AliTPCExBEffective&);
  AliTPCExBEffective &operator=(const AliTPCExBEffective&);
  ClassDef(AliTPCExBEffective,1);
};

#endif
 AliTPCExBEffective.h:1
 AliTPCExBEffective.h:2
 AliTPCExBEffective.h:3
 AliTPCExBEffective.h:4
 AliTPCExBEffective.h:5
 AliTPCExBEffective.h:6
 AliTPCExBEffective.h:7
 AliTPCExBEffective.h:8
 AliTPCExBEffective.h:9
 AliTPCExBEffective.h:10
 AliTPCExBEffective.h:11
 AliTPCExBEffective.h:12
 AliTPCExBEffective.h:13
 AliTPCExBEffective.h:14
 AliTPCExBEffective.h:15
 AliTPCExBEffective.h:16
 AliTPCExBEffective.h:17
 AliTPCExBEffective.h:18
 AliTPCExBEffective.h:19
 AliTPCExBEffective.h:20
 AliTPCExBEffective.h:21
 AliTPCExBEffective.h:22
 AliTPCExBEffective.h:23
 AliTPCExBEffective.h:24
 AliTPCExBEffective.h:25
 AliTPCExBEffective.h:26
 AliTPCExBEffective.h:27
 AliTPCExBEffective.h:28
 AliTPCExBEffective.h:29
 AliTPCExBEffective.h:30
 AliTPCExBEffective.h:31
 AliTPCExBEffective.h:32
 AliTPCExBEffective.h:33
 AliTPCExBEffective.h:34
 AliTPCExBEffective.h:35
 AliTPCExBEffective.h:36
 AliTPCExBEffective.h:37
 AliTPCExBEffective.h:38
 AliTPCExBEffective.h:39
 AliTPCExBEffective.h:40
 AliTPCExBEffective.h:41
 AliTPCExBEffective.h:42
 AliTPCExBEffective.h:43
 AliTPCExBEffective.h:44
 AliTPCExBEffective.h:45
 AliTPCExBEffective.h:46
 AliTPCExBEffective.h:47
 AliTPCExBEffective.h:48
 AliTPCExBEffective.h:49
 AliTPCExBEffective.h:50
 AliTPCExBEffective.h:51
 AliTPCExBEffective.h:52