Minor changes to make this macro work under HEAD.
[u/mrichter/AliRoot.git] / TPC / AliTPCExBExact.h
CommitLineData
faf93237 1#ifndef ALITPC_EXB_EXACT
2#define ALITPC_EXB_EXACT
3
4#include "AliTPCExB.h"
5#include "AliFieldMap.h"
6#include "AliMagF.h"
7
8class AliTPCExBExact:public AliTPCExB {
9public:
481f877b 10 AliTPCExBExact(); // just for the I/O stuff
faf93237 11 AliTPCExBExact(const AliFieldMap *bFieldMap,Double_t driftVelocity,
12 Int_t n=100);
13 AliTPCExBExact(const AliMagF *bField,Double_t driftVelocity,Int_t n=100,
481f877b 14 Int_t nx=30,Int_t ny=30,Int_t nz=100);
faf93237 15 virtual ~AliTPCExBExact();
16 virtual void Correct(const Double_t *position,Double_t *corrected);
481f877b 17 void TestThisBeautifulObject(const AliFieldMap *bFieldMap,
18 const char* fileName);
19 void TestThisBeautifulObject(const AliMagF *bField,const char* fileName);
20protected:
21 Double_t fDriftVelocity; // The electron drift velocity.
faf93237 22private:
23 AliTPCExBExact& operator=(const AliTPCExBExact&); // don't assign me
24 AliTPCExBExact(const AliTPCExBExact&); // don't copy me
481f877b 25 void TestThisBeautifulObjectGeneric(const char* fileName);
faf93237 26 void CreateLookupTable();
27 void GetE(Double_t *E,const Double_t *x) const;
28 void GetB(Double_t *B,const Double_t *x) const;
29 void Motion(const Double_t *x,Double_t t,Double_t *dxdt) const;
30 void CalculateDistortion(const Double_t *x,Double_t *dist) const;
31 void DGLStep(Double_t *x,Double_t t,Double_t h) const;
481f877b 32 const AliFieldMap *fkMap; //! the magnetic field map as supplied by the user
33 const AliMagF *fkField; //! the magnetic field as supplied by the user
34 Int_t fkN; // max number of integration steps
35 Int_t fkNX; // field mesh points in x direction
36 Int_t fkNY; // field mesh points in y direction
37 Int_t fkNZ; // field mesh points in z direction
38 Double_t fkXMin; // the first grid point in x direction
39 Double_t fkXMax; // the last grid point in x direction
40 Double_t fkYMin; // the first grid point in y direction
41 Double_t fkYMax; // the last grid point in y direction
42 Double_t fkZMin; // the first grid point in z direction
43 Double_t fkZMax; // the last grid point in z direction
44 Int_t fkNLook; // size of the lookup table
45 Double_t *fkLook; //[fkNLook] the great lookup table
46 static const Double_t fgkEM; //! elementary charge over electron mass (C/kg)
47 static const Double_t fgkDriftField; //! the TPC drift field (V/m) (modulus)
faf93237 48
49 ClassDef(AliTPCExBExact,1)
50};
51
52#endif