3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //----------------------------------------------------------------------
9 // Basic magnetic field class
10 // Used in all the detectors, and also in the traking classes
12 //----------------------------------------------------------------------
16 enum Field_t {kUndef=1, kConst=1, kConMesh=2, kDipoMap=3};
18 class AliMagF : public TNamed {
22 AliMagF(const char *name, const char *title, Int_t integ,
23 Float_t factor = 1., Float_t fmax = 10.);
24 AliMagF(const AliMagF& maps);
26 AliMagF& operator=(const AliMagF& rhs);
27 virtual void Field(const Float_t *x, Float_t *b) const;
28 virtual void Field(const Double_t *x, Double_t *b) const;
29 virtual void GetTPCInt(const Float_t *xyz, Float_t *b) const;
30 virtual void GetTPCIntCyl(const Float_t *rphiz, Float_t *b) const;
31 virtual Int_t Type() const {return fType;}
32 virtual Float_t Max() const {return fMax;}
33 virtual Int_t Map() const {return fMap;}
34 virtual Int_t Integ() const {return fInteg;}
35 virtual Int_t PrecInteg() const {return fPrecInteg;}
36 virtual Float_t Factor() const {return fFactor;}
37 virtual void ReadField() {}
38 virtual Float_t SolenoidField() const {return 2.;}
39 virtual void SetPrecInteg(Int_t integ);
40 virtual void SetReadField(Bool_t flag = kTRUE) {fReadField = flag;}
42 Int_t fMap; // Field Map identifier
43 Int_t fType; // Mag Field type
44 Int_t fInteg; // Default integration method as indicated in Geant
45 Int_t fPrecInteg; // Alternative integration method, e.g. for higher precision
46 Float_t fFactor; // Multiplicative factor
47 Float_t fMax; // Max Field as indicated in Geant
48 Bool_t fReadField; // Flag for reading the field from file (if available)
49 ClassDef(AliMagF,5) //Base class for all Alice MagField