84737f5e |
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 "AliMagF.h" |
13 | class AliFieldMap; |
14 | |
15 | class AliMagFMaps : public AliMagF |
16 | { |
17 | //Alice Magnetic Field with constant mesh |
18 | |
19 | public: |
02b50693 |
20 | enum constants {k2kG, k4kG, k5kG}; |
e2afb3b6 |
21 | AliMagFMaps(); |
84737f5e |
22 | AliMagFMaps(const char *name, const char *title, const Int_t integ, |
356f9803 |
23 | const Float_t factor, const Float_t fmax, const Int_t map = k2kG, |
24 | const Int_t l3 = 1); |
84737f5e |
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];} |
c2b548d6 |
29 | virtual void ReadField(); |
84737f5e |
30 | virtual Float_t SolenoidField() const; |
31 | virtual void SetL3ConstField(Int_t flag = 0) {fL3Option = flag;} |
02b50693 |
32 | virtual void SetL3ConstField(Float_t bsol, Int_t flag = 0) |
33 | {fL3Option = flag; fSolenoidUser = bsol;} |
84737f5e |
34 | |
e2afb3b6 |
35 | virtual AliMagFMaps & operator=(const AliMagFMaps &magf) |
36 | {magf.Copy(*this); return *this;} |
37 | |
84737f5e |
38 | protected: |
e2afb3b6 |
39 | void Copy(AliMagFMaps &magf) const; |
40 | |
c2b548d6 |
41 | AliFieldMap* fFieldMap[3]; // Field maps |
42 | Float_t fSolenoid; // Solenoid field setting |
02b50693 |
43 | Float_t fSolenoidUser; // User set solenoid field setting |
c2b548d6 |
44 | Int_t fL3Option; // Option for field inside L3 |
45 | Int_t fFieldRead; // Field has been read in |
ccfa7576 |
46 | ClassDef(AliMagFMaps,3) // Class for all Alice MagField using three Maps with Constant Mesh |
84737f5e |
47 | }; |
48 | |
49 | #endif |
c2b548d6 |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |