]>
Commit | Line | Data |
---|---|---|
aee8290b | 1 | #ifndef ALIMAGF_H |
2 | #define ALIMAGF_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
fe4da5cc | 7 | |
0742d588 | 8 | //---------------------------------------------------------------------- |
9 | // Basic magnetic field class | |
10 | // Used in all the detectors, and also in the traking classes | |
11 | // Author: | |
12 | //---------------------------------------------------------------------- | |
13 | ||
fe4da5cc | 14 | #include "TNamed.h" |
fe4da5cc | 15 | |
aee8290b | 16 | enum Field_t {kUndef=1, kConst=1, kConMesh=2, kDipoMap=3}; |
fe4da5cc | 17 | |
18 | class AliMagF : public TNamed { | |
19 | ||
fe4da5cc | 20 | public: |
e2afb3b6 | 21 | AliMagF(); |
d0f1ee3b | 22 | AliMagF(const char *name, const char *title, Int_t integ, |
23 | Float_t factor = 1., Float_t fmax = 10.); | |
eeda4611 | 24 | AliMagF(const AliMagF& maps); |
fe4da5cc | 25 | virtual ~AliMagF() {} |
eeda4611 | 26 | AliMagF& operator=(const AliMagF& rhs); |
27 | virtual void Field(Float_t *x, Float_t *b) const; | |
28 | virtual void GetTPCInt(Float_t *xyz, Float_t *b) const; | |
29 | virtual void GetTPCIntCyl(Float_t *rphiz, Float_t *b) const; | |
30 | virtual Int_t Type() const {return fType;} | |
fe4da5cc | 31 | virtual Float_t Max() const {return fMax;} |
eeda4611 | 32 | virtual Int_t Map() const {return fMap;} |
33 | virtual Int_t Integ() const {return fInteg;} | |
34 | virtual Int_t PrecInteg() const {return fPrecInteg;} | |
fe4da5cc | 35 | virtual Float_t Factor() const {return fFactor;} |
eeda4611 | 36 | virtual void ReadField() {} |
694456b6 | 37 | virtual Float_t SolenoidField() const {return 2.;} |
eeda4611 | 38 | virtual void SetPrecInteg(Int_t integ) {fPrecInteg = integ;} |
39 | virtual void SetReadField(Bool_t flag = kTRUE) {fReadField = flag;} | |
a0201063 | 40 | protected: |
41 | Int_t fMap; // Field Map identifier | |
42 | Int_t fType; // Mag Field type | |
604e0531 | 43 | Int_t fInteg; // Default integration method as indicated in Geant |
44 | Int_t fPrecInteg; // Alternative integration method, e.g. for higher precision | |
a0201063 | 45 | Float_t fFactor; // Multiplicative factor |
46 | Float_t fMax; // Max Field as indicated in Geant | |
972ca52f | 47 | Bool_t fReadField; // Flag for reading the field from file (if available) |
48 | ClassDef(AliMagF,5) //Base class for all Alice MagField | |
fe4da5cc | 49 | }; |
7a15f6b8 | 50 | |
fe4da5cc | 51 | #endif |