Correct sign for calculated b_y (outside measured region).
[u/mrichter/AliRoot.git] / TPC / AliTPCExBFirst.h
1 #ifndef ALITPC_EXB_FIRST_H
2 #define ALITPC_EXB_FIRST_H
3
4 #include "AliTPCExB.h"
5 #include "AliFieldMap.h"
6 #include "AliMagF.h"
7
8 class AliTPCExBFirst:public AliTPCExB {
9 public:
10   AliTPCExBFirst(const AliFieldMap *bFieldMap,Double_t driftVelocity);
11   AliTPCExBFirst(const AliMagF *bField,Double_t driftVelocity,
12                  Int_t nx=100,Int_t ny=100,Int_t nz=100);
13   virtual ~AliTPCExBFirst();
14   virtual void Correct(const Double_t *position,Double_t *corrected);
15   void TestThisBeautifulObject(const char* fileName);
16 private:
17   AliTPCExBFirst& operator=(const AliTPCExBFirst&); // don't assign me
18   AliTPCExBFirst(const AliTPCExBFirst&); // don't copy me
19   void ConstructCommon(const AliFieldMap *bFieldMap,const AliMagF *bField);
20   void GetMeanFields(Double_t rx,Double_t ry,Double_t rz,
21                      Double_t *Bx,Double_t *By) const;
22   Int_t fkNX;        // field mesh points in x direction
23   Int_t fkNY;        // field mesh points in y direction
24   Int_t fkNZ;        // field mesh points in z direction
25   Double_t fkXMin;   // the first grid point in x direction
26   Double_t fkXMax;   // the last grid point in x direction
27   Double_t fkYMin;   // the first grid point in y direction
28   Double_t fkYMax;   // the last grid point in y direction
29   Double_t fkZMin;   // the first grid point in z direction
30   Double_t fkZMax;   // the last grid point in z direction
31   Double_t *fMeanBx; // the mean field in x direction upto a certain z value
32   Double_t *fMeanBy; // the mean field in y direction upto a certain z value
33   Double_t fMeanBz;  // the mean field in z direction inside the TPC volume
34   static const Double_t fgkEM; // elementary charge over electron mass (C/kg)
35   static const Double_t fgkDriftField; // the TPC drift field (V/m) (modulus)
36
37   ClassDef(AliTPCExBFirst,1)
38 };
39
40 #endif