]>
Commit | Line | Data |
---|---|---|
aee8290b | 1 | #ifndef ALIMAGFDM_H |
2 | #define ALIMAGFDM_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 | ||
0742d588 | 8 | //------------------------------------------------------------------------- |
9 | // Field with Magnetic Field map | |
10 | // Used by AliRun class | |
11 | // Author: | |
12 | //------------------------------------------------------------------------- | |
13 | ||
57754f18 | 14 | #include "AliMagFC.h" |
aee8290b | 15 | // |
57754f18 | 16 | class AliMagFDM : public AliMagFC |
aee8290b | 17 | { |
18 | //Alice Magnetic Field:Magnetic field map from IP to muon filter for Muon arm | |
19 | ||
20 | public: | |
e2afb3b6 | 21 | AliMagFDM(); |
d0f1ee3b | 22 | AliMagFDM(const char *name, const char *title, Int_t integ, |
23 | Float_t factor, Float_t fmax); | |
aee8290b | 24 | virtual ~AliMagFDM(){} |
6f3038e9 | 25 | virtual void Field(Float_t *x, Float_t *b) const; |
aee8290b | 26 | virtual void ReadField(); |
4cc8933f | 27 | virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;} |
e2afb3b6 | 28 | virtual Float_t SolenoidField() const {return fSolenoid;} |
ecd57058 | 29 | Int_t FZ(Double_t u, const Float_t *Ar, Float_t du, Int_t ki, Int_t nu) const; |
6f3038e9 | 30 | Double_t Ba(Int_t kai, Double_t za1, Double_t za2, Double_t al1, Double_t al2, Double_t al3, Int_t ka, Int_t ma) const; |
31 | Double_t Bb(Double_t z1, Double_t z2, Double_t y1, Double_t y2, Double_t x1, Double_t x2, Int_t kvr, Int_t k, Int_t l, Int_t m) const; | |
aee8290b | 32 | |
33 | ||
34 | protected: | |
35 | ||
36 | // | |
57754f18 | 37 | Float_t fSolenoid; // Solenoid Field Strength |
38 | Int_t fInd; // Character number of validity Map region | |
aee8290b | 39 | |
803c9752 | 40 | Float_t fZmin; // Start of the cartesian part of MAP in z |
41 | Float_t fZmax; // End of Map in z | |
42 | Float_t fYmax; // Start of the cartesian part of MAP in y | |
43 | Float_t fYmin; // End of the cartesian part of MAP in y | |
44 | Float_t fZpmx; // End of the polar part of MAP in z | |
45 | Float_t fZpmn; // Start of the polar part of MAP in z | |
46 | Float_t fRmax; // Maximal radius of the polar part of MAP | |
47 | Float_t fRmin; // Minimal radius of the polar part of MAP | |
aee8290b | 48 | |
49 | ||
803c9752 | 50 | Float_t fXdel; // step in x - cartesian part of MAP |
51 | Float_t fYdel; // step in y - cartesian part of MAP | |
52 | Float_t fZdel; // step in z - cartesian part of MAP | |
aee8290b | 53 | |
803c9752 | 54 | Float_t fRdel; // step in r - polar part of MAP |
55 | Float_t fPhid; // step in Phi - polar part of MAP | |
56 | Float_t fZpdl; // step in z - polar part of MAP | |
aee8290b | 57 | |
803c9752 | 58 | Float_t fCx1; // Field constant |
59 | Float_t fCx2; // Field constant | |
60 | Float_t fAx1; // Field constant | |
61 | Float_t fAx2; // Field constant | |
aee8290b | 62 | |
803c9752 | 63 | Float_t fZc[81]; // z coordinates in cartesian part |
64 | Float_t fY[81]; // y coordinates in cartesian part | |
65 | Float_t fBcx[81][81][44]; // Bx array for cartesian part | |
66 | Float_t fBcy[81][81][44]; // By array for cartesian part | |
67 | Float_t fBcz[81][81][44]; // Bz array for cartesian part | |
aee8290b | 68 | |
803c9752 | 69 | Float_t fZp[51]; // z coordinates in polar part |
70 | Float_t fR[10]; // r coordinates in polar part | |
71 | Float_t fPhi[33]; // Phi coordinates in polar part | |
aee8290b | 72 | |
803c9752 | 73 | Float_t fBpx[51][10][33]; // Bx array for polar part |
74 | Float_t fBpy[51][10][33]; // By array for polar part | |
75 | Float_t fBpz[51][10][33]; // Bx array for polar part | |
76 | Float_t fB[2][2][32]; // Limits of field | |
aee8290b | 77 | |
803c9752 | 78 | Int_t fXl; // Number steps in x for cartesian part |
79 | Int_t fYl; // Number steps in y for cartesian par | |
80 | Int_t fZl; // Number steps in z for cartesian part | |
aee8290b | 81 | |
803c9752 | 82 | Int_t fRn; // Number steps in r for polar part |
83 | Int_t fPhin; // Number steps in Phi for polar part | |
84 | Int_t fZpl; // Number steps in z for polar part | |
aee8290b | 85 | |
86 | ||
87 | ClassDef(AliMagFDM,1) //Class Magnetic field map from IP till muon filter | |
88 | }; | |
89 | ||
90 | #endif |