Adding track references at decay points (M.Ivanov)
[u/mrichter/AliRoot.git] / STEER / AliMagFMaps.h
1 #ifndef ALIMAGFMAPS_H
2 #define ALIMAGFMAPS_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 // Author: Andreas Morsch <andreas.morsch@cern.ch>
10 //
11
12 #include "AliMagFC.h"
13 class AliFieldMap;
14
15 class AliMagFMaps : public AliMagFC
16 {
17   //Alice Magnetic Field with constant mesh
18
19 public:
20     enum constants {k2kG, k4kG, k5kG};
21     AliMagFMaps();
22     AliMagFMaps(const char *name, const char *title, const Int_t integ,
23                 const Float_t factor, const Float_t fmax, const Int_t map = k2kG,
24                 const Int_t l3 = 1);
25     AliMagFMaps(const AliMagFMaps &mag);
26     virtual ~AliMagFMaps();
27     virtual void    Field(Float_t *x, Float_t *b);
28     AliFieldMap* FieldMap(Int_t i) {return fFieldMap[i];}
29     virtual void ReadField();
30     virtual Float_t SolenoidField() const;
31     virtual void    SetL3ConstField(Int_t flag = 0) {fL3Option = flag;}
32     virtual void    SetL3ConstField(Float_t bsol, Int_t flag = 0)
33         {fL3Option = flag; fSolenoidUser = bsol;}
34     
35     virtual AliMagFMaps & operator=(const AliMagFMaps &magf)
36       {magf.Copy(*this); return *this;}
37
38 protected:
39     void Copy(AliMagFMaps &magf) const;
40
41     AliFieldMap* fFieldMap[3];     // Field maps
42     Float_t      fSolenoid;        // Solenoid field setting
43     Float_t      fSolenoidUser;    // User set solenoid field setting  
44     Int_t        fL3Option;        // Option for field inside L3
45     Int_t        fFieldRead;       // Field has been read in
46     ClassDef(AliMagFMaps,3)        // Class for all Alice MagField using three Maps with Constant Mesh
47 };
48
49 #endif