]>
Commit | Line | Data |
---|---|---|
aee8290b | 1 | #ifndef ALIMAGFCM_H |
2 | #define ALIMAGFCM_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 | ||
57754f18 | 8 | #include "AliMagFC.h" |
65fb704d | 9 | class TVector; |
aee8290b | 10 | |
57754f18 | 11 | class AliMagFCM : public AliMagFC |
aee8290b | 12 | { |
5d8718b8 | 13 | //Alice Magnetic Field with constant mesh |
aee8290b | 14 | |
15 | public: | |
e2afb3b6 | 16 | AliMagFCM(); |
d0f1ee3b | 17 | AliMagFCM(const char *name, const char *title, Int_t integ, |
18 | Float_t factor, Float_t fmax); | |
aee8290b | 19 | AliMagFCM(const AliMagFCM &mag); |
20 | virtual ~AliMagFCM() {delete fB;} | |
21 | virtual void Field(Float_t *x, Float_t *b); | |
22 | virtual void ReadField(); | |
c3d65c8c | 23 | virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;} |
05086aa8 | 24 | virtual Float_t SolenoidField() const {return fSolenoid;} |
4cc8933f | 25 | |
6c4904c2 | 26 | void Copy(TObject &magf) const; |
e2afb3b6 | 27 | virtual AliMagFCM & operator=(const AliMagFCM &magf) |
28 | {magf.Copy(*this); return *this;} | |
aee8290b | 29 | |
d0f1ee3b | 30 | Float_t Bx(Int_t ix, Int_t iy, Int_t iz) const { |
aee8290b | 31 | return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)); |
32 | } | |
d0f1ee3b | 33 | Float_t By(Int_t ix, Int_t iy, Int_t iz) const { |
aee8290b | 34 | return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+1); |
35 | } | |
d0f1ee3b | 36 | Float_t Bz(Int_t ix, Int_t iy, Int_t iz) const { |
aee8290b | 37 | return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+2); |
38 | } | |
39 | ||
40 | protected: | |
41 | ||
4cc8933f | 42 | Float_t fXbeg; // Start of mesh in x |
43 | Float_t fYbeg; // Start of mesh in y | |
44 | Float_t fZbeg; // Start of mesh in z | |
45 | Float_t fXdel; // Mesh step in x | |
46 | Float_t fYdel; // Mesh step in y | |
47 | Float_t fZdel; // Mesh step in z | |
48 | Float_t fSolenoid; // Solenoid Field Strength | |
49 | Double_t fXdeli; // Inverse of Mesh step in x | |
50 | Double_t fYdeli; // Inverse of Mesh step in y | |
51 | Double_t fZdeli; // Inverse of Mesh step in z | |
52 | Int_t fXn; // Number of mesh points in x | |
53 | Int_t fYn; // Number of mesh points in y | |
54 | Int_t fZn; // Number of mesh points in z | |
55 | TVector *fB; // Field map | |
aee8290b | 56 | |
57 | ClassDef(AliMagFCM,1) //Class for all Alice MagField with Constant Mesh | |
58 | }; | |
59 | ||
60 | #endif |