Update master to aliroot
[u/mrichter/AliRoot.git] / TPC / AliTPCExBConical.h
1 #ifndef ALITPCEXBCONICAL_H
2 #define ALITPCEXBCONICAL_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 AliTPCExBConical
8 /// \brief Calculates the space point distortions due to the conical shape of ALICE TPC
9 ///
10 /// \author Maarian Ivanov, Jim Thomas, Magnus Mager, Stefan Rossegger
11 /// \date 02/05/2010
12
13 #include "AliTPCCorrection.h"
14
15 class AliTPCExBConical : public AliTPCCorrection {
16 public:
17   AliTPCExBConical();
18   virtual ~AliTPCExBConical();
19
20   // initialization and update functions
21   virtual void Init();
22   virtual void Update(const TTimeStamp &timeStamp);
23
24
25   // common setters and getters for ExB
26   virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2) {
27     fT1=t1; fT2=t2;
28     const Float_t wt1=t1*omegaTau;    fC1=wt1/(1.+wt1*wt1);
29     const Float_t wt2=t2*omegaTau;    fC2=wt2*wt2/(1.+wt2*wt2);
30   };
31   void SetC1C2(Float_t c1,Float_t c2) {fC1=c1;fC2=c2;} // CAUTION: USE WITH CARE
32   Float_t GetC1() const {return fC1;}
33   Float_t GetC2() const {return fC2;}
34
35   // setters and getters for conical
36   void SetConicalA(Float_t conicalA[3]);
37   void SetConicalC(Float_t conicalC[3]);
38   void SetConicalFactor(Float_t factor) { fConicalFactor=factor;}
39
40   Float_t GetConicalA(Int_t i) const {return fConicalA[i];}
41   Float_t GetConicalC(Int_t i) const {return fConicalC[i];}
42   Float_t GetConicalFactor() const {return fConicalFactor;}
43
44   virtual void Print(const Option_t* option="") const;
45
46 protected:
47   virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
48
49 private:
50   Float_t fC1; ///< coefficient C1                 (compare Jim Thomas's notes for definitions)
51   Float_t fC2; ///< coefficient C2                 (compare Jim Thomas's notes for definitions)
52   Float_t  fConicalFactor;                  ///< empirical factor - transform conical angle to delta
53   Float_t  fConicalA[3];               ///< Conical shape parameterization A side
54   Float_t  fConicalC[3];               ///< Conical shape parameterization C side
55
56   ClassDef(AliTPCExBConical,1);
57 };
58
59 #endif