3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
11 class AliMagFCM : public AliMagF
13 //Alice Magnetic Field with constan mesh
17 AliMagFCM(const char *name, const char *title, const Int_t integ,
18 const Float_t factor, const Float_t fmax);
19 AliMagFCM(const AliMagFCM &mag);
20 virtual ~AliMagFCM() {delete fB;}
21 virtual void Field(Float_t *x, Float_t *b);
22 virtual void ReadField();
23 virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
24 virtual Float_t SolenoidField() {return fSolenoid;}
26 void Copy(AliMagFCM &magf) const;
27 virtual AliMagFCM & operator=(const AliMagFCM &magf);
29 Float_t Bx(const Int_t ix, const Int_t iy, const Int_t iz) {
30 return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix));
32 Float_t By(const Int_t ix, const Int_t iy, const Int_t iz) {
33 return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+1);
35 Float_t Bz(const Int_t ix, const Int_t iy, const Int_t iz) {
36 return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+2);
41 Float_t fXbeg; // Start of mesh in x
42 Float_t fYbeg; // Start of mesh in y
43 Float_t fZbeg; // Start of mesh in z
44 Float_t fXdel; // Mesh step in x
45 Float_t fYdel; // Mesh step in y
46 Float_t fZdel; // Mesh step in z
47 Float_t fSolenoid; // Solenoid Field Strength
48 Double_t fXdeli; // Inverse of Mesh step in x
49 Double_t fYdeli; // Inverse of Mesh step in y
50 Double_t fZdeli; // Inverse of Mesh step in z
51 Int_t fXn; // Number of mesh points in x
52 Int_t fYn; // Number of mesh points in y
53 Int_t fZn; // Number of mesh points in z
54 TVector *fB; // Field map
56 ClassDef(AliMagFCM,1) //Class for all Alice MagField with Constant Mesh