]>
Commit | Line | Data |
---|---|---|
cf585711 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
7d855b04 | 4 | /// \class AliTPCExBExact |
5 | /// \brief An exact implementation of the ExB effect. | |
cf585711 | 6 | |
7 | #ifndef ALITPCEXBEXACT_H | |
8 | #define ALITPCEXBEXACT_H | |
faf93237 | 9 | |
10 | #include "AliTPCExB.h" | |
cf585711 | 11 | |
cf585711 | 12 | class AliMagF; |
faf93237 | 13 | |
14 | class AliTPCExBExact:public AliTPCExB { | |
15 | public: | |
481f877b | 16 | AliTPCExBExact(); // just for the I/O stuff |
f7a1cc68 | 17 | //AliTPCExBExact(const AliMagF *bFieldMap,Double_t driftVelocity,Int_t n=100); |
faf93237 | 18 | AliTPCExBExact(const AliMagF *bField,Double_t driftVelocity,Int_t n=100, |
481f877b | 19 | Int_t nx=30,Int_t ny=30,Int_t nz=100); |
faf93237 | 20 | virtual ~AliTPCExBExact(); |
21 | virtual void Correct(const Double_t *position,Double_t *corrected); | |
f7a1cc68 | 22 | //void TestThisBeautifulObject(const AliFieldMap *bFieldMap,const char* fileName); |
481f877b | 23 | void TestThisBeautifulObject(const AliMagF *bField,const char* fileName); |
24 | protected: | |
7d855b04 | 25 | Double_t fDriftVelocity; ///< The electron drift velocity. |
faf93237 | 26 | private: |
27 | AliTPCExBExact& operator=(const AliTPCExBExact&); // don't assign me | |
28 | AliTPCExBExact(const AliTPCExBExact&); // don't copy me | |
481f877b | 29 | void TestThisBeautifulObjectGeneric(const char* fileName); |
faf93237 | 30 | void CreateLookupTable(); |
cf585711 | 31 | void GetE(Double_t *e,const Double_t *x) const; |
32 | void GetB(Double_t *b,const Double_t *x) const; | |
faf93237 | 33 | void Motion(const Double_t *x,Double_t t,Double_t *dxdt) const; |
34 | void CalculateDistortion(const Double_t *x,Double_t *dist) const; | |
35 | void DGLStep(Double_t *x,Double_t t,Double_t h) const; | |
f7a1cc68 | 36 | //const AliFieldMap *fkMap; //! the magnetic field map as supplied by the user |
7d855b04 | 37 | const AliMagF *fkField; //!< the magnetic field as supplied by the user |
38 | Int_t fkN; ///< max number of integration steps | |
39 | Int_t fkNX; ///< field mesh points in x direction | |
40 | Int_t fkNY; ///< field mesh points in y direction | |
41 | Int_t fkNZ; ///< field mesh points in z direction | |
42 | Double_t fkXMin; ///< the first grid point in x direction | |
43 | Double_t fkXMax; ///< the last grid point in x direction | |
44 | Double_t fkYMin; ///< the first grid point in y direction | |
45 | Double_t fkYMax; ///< the last grid point in y direction | |
46 | Double_t fkZMin; ///< the first grid point in z direction | |
47 | Double_t fkZMax; ///< the last grid point in z direction | |
48 | Int_t fkNLook; ///< size of the lookup table | |
49 | /// the great lookup table | |
50 | Double_t *fkLook; //[fkNLook] | |
51 | static const Double_t fgkEM; //!< elementary charge over electron mass (C/kg) | |
52 | static const Double_t fgkDriftField; //!< the TPC drift field (V/m) (modulus) | |
faf93237 | 53 | |
7d855b04 | 54 | /// \cond CLASSIMP |
faf93237 | 55 | ClassDef(AliTPCExBExact,1) |
7d855b04 | 56 | /// \endcond |
faf93237 | 57 | }; |
58 | ||
59 | #endif |