]>
Commit | Line | Data |
---|---|---|
b1f0a2a5 | 1 | #ifndef ALI_TPCGG_VOLT_ERROR_H |
2 | #define ALI_TPCGG_VOLT_ERROR_H | |
0116859c | 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 | // AliTPCGGVoltError class // | |
10 | // The class calculates the electric field and space point distortions // | |
11 | // due a Gating Grid (GG) Error voltage. It uses the exact calculation // | |
12 | // technique based on bessel functions. (original code from STAR) // | |
13 | // The class allows "effective Omega Tau" corrections. // | |
14 | // // | |
15 | // date: 27/04/2010 // | |
16 | // Authors: Jim Thomas, Stefan Rossegger, Magnus Mager // | |
17 | //////////////////////////////////////////////////////////////////////////// | |
18 | ||
19 | #include "AliTPCCorrection.h" | |
20 | ||
21 | class AliTPCGGVoltError : public AliTPCCorrection { | |
22 | public: | |
23 | AliTPCGGVoltError(); | |
24 | virtual ~AliTPCGGVoltError(); | |
25 | ||
e527a1b9 | 26 | // initialization and update functions |
27 | virtual void Init(); | |
28 | virtual void Update(const TTimeStamp &timeStamp); | |
29 | ||
0116859c | 30 | // common setters and getters for ExB |
31 | virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2) { | |
534fd34a | 32 | fT1=t1; fT2=t2; |
b1f0a2a5 | 33 | const Double_t wt0=t2*omegaTau; fC0=1./(1.+wt0*wt0); |
34 | const Double_t wt1=t1*omegaTau; fC1=wt1/(1.+wt1*wt1); | |
0116859c | 35 | }; |
36 | ||
37 | void SetC0C1(Double_t c0,Double_t c1) {fC0=c0;fC1=c1;} // CAUTION: USE WITH CARE | |
38 | Float_t GetC0() const {return fC0;} | |
39 | Float_t GetC1() const {return fC1;} | |
40 | ||
41 | // setters and getters for GG | |
42 | void SetDeltaVGGA(Double_t deltaVGGA) {fDeltaVGGA=deltaVGGA;} | |
43 | void SetDeltaVGGC(Double_t deltaVGGC) {fDeltaVGGC=deltaVGGC;} | |
44 | Double_t GetDeltaVGGA() const {return fDeltaVGGA;} | |
45 | Double_t GetDeltaVGGC() const {return fDeltaVGGC;} | |
46 | ||
47 | void InitGGVoltErrorDistortion(); | |
48 | ||
49 | Float_t GetIntErOverEz(const Float_t x[],const Short_t roc); | |
50 | ||
b1f0a2a5 | 51 | virtual void Print(const Option_t* option="") const; |
0116859c | 52 | |
53 | protected: | |
54 | virtual void GetCorrection(const Float_t x[],const Short_t roc, Float_t dx[]); | |
55 | private: | |
56 | ||
57 | Float_t fC0; // coefficient C0 (compare Jim Thomas's notes for definitions) | |
58 | Float_t fC1; // coefficient C1 (compare Jim Thomas's notes for definitions) | |
59 | ||
60 | Double_t fDeltaVGGA; // Missmatch of gating grid voltage on A-side [V] | |
61 | Double_t fDeltaVGGC; // Missmatch of gating grid voltage on C-side [V] | |
62 | Double_t fGGVoltErrorER[kNZ][kNR]; // Array to store electric field for GGVoltError calculation | |
63 | ||
1b923461 | 64 | Bool_t fInitLookUp; // flag to check it the Look Up table was created |
65 | ||
0116859c | 66 | ClassDef(AliTPCGGVoltError,1); |
67 | }; | |
68 | ||
69 | #endif |