]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/TPCbase/AliTPCExB.h
doxy: TPC/TPCbase converted
[u/mrichter/AliRoot.git] / TPC / TPCbase / AliTPCExB.h
CommitLineData
7d855b04 1/// \class AliTPCExB
2
98a4cc77 3#ifndef ALITPCEXB_H
4#define ALITPCEXB_H
faf93237 5
9170bb1b 6class AliMagF;
481f877b 7#include "TObject.h"
98a4cc77 8#include "TVectorDfwd.h"
faf93237 9
481f877b 10class AliTPCExB:public TObject {
faf93237 11public:
9170bb1b 12 AliTPCExB();
0ffd2ae1 13 AliTPCExB& operator=(const AliTPCExB &exb);
14 AliTPCExB(const AliTPCExB& exb);
faf93237 15 virtual ~AliTPCExB() {};
481f877b 16 virtual void Correct(const Double_t *position,Double_t *corrected)=0;
17 virtual void CorrectInverse(const Double_t *position,Double_t *corrected) {
18 Correct(position,corrected);
19 for (Int_t i=0;i<3;++i)
20 corrected[i]=position[i]-(corrected[i]-position[i]);
21 }
2abfc1e6 22 //
9170bb1b 23 // Test and visualization
2abfc1e6 24 //
25 void TestExB(const char* fileName);
3ac615eb 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);
2abfc1e6 30 static AliTPCExB* Instance(){return fgInstance;}
98a4cc77 31 static void SetInstance(AliTPCExB *const param){fgInstance = param;}
9170bb1b 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 Double_t SEval(Int_t type, Double_t r, Double_t phi, Double_t z){return Instance()->Eval(type,r,phi,z);}
98a4cc77 51 static Double_t EvalMat(const TVectorD &vec, Double_t r, Double_t phi, Double_t z); // evalute parameterization
7d855b04 52
98a4cc77 53 private:
7d855b04 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
9170bb1b 63 //
7d855b04 64 /// \cond CLASSIMP
9732a354 65 ClassDef(AliTPCExB,2)
7d855b04 66 /// \endcond
faf93237 67};
68
69#endif