]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliMagF.h
Deriving from VTrack now. (A. Dainese)
[u/mrichter/AliRoot.git] / STEER / AliMagF.h
1 #ifndef ALIMAGF_H
2 #define ALIMAGF_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //----------------------------------------------------------------------
9 // Basic magnetic field class
10 // Used in all the detectors, and also in the traking classes
11 // Author:
12 //----------------------------------------------------------------------
13
14 #include "TNamed.h"
15
16 enum Field_t {kUndef=1, kConst=1, kConMesh=2, kDipoMap=3};
17
18 class AliMagF : public TNamed {
19
20 public:
21   AliMagF();
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);
25   virtual ~AliMagF() {}
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;}
41  protected:
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
50 };
51
52 #endif