]>
Commit | Line | Data |
---|---|---|
aee8290b | 1 | #ifndef ALIMAGFC_H |
2 | #define ALIMAGFC_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
60378f15 | 4 | *See cxx source for full Copyright notice */ |
aee8290b | 5 | |
6 | /* $Id$ */ | |
7 | ||
0742d588 | 8 | //------------------------------------------------------------------------- |
9 | // Constant magnetic field class | |
10 | // Used by AliRun class | |
11 | // Author: | |
12 | //------------------------------------------------------------------------- | |
13 | ||
aee8290b | 14 | #include "AliMagF.h" |
15 | ||
60378f15 | 16 | enum BeamType_t {kBeamTypeAA, kBeamTypepp}; |
aee8290b | 17 | class AliMagFC : public AliMagF |
18 | { | |
19 | //Alice Constant Magnetic Field | |
20 | ||
21 | public: | |
60378f15 | 22 | AliMagFC(); |
d0f1ee3b | 23 | AliMagFC(const char *name, const char *title, Int_t integ, |
24 | Float_t factor, Float_t fmax); | |
0cd61c1d | 25 | virtual ~AliMagFC(){} |
611fa94a | 26 | virtual void Field(const float *x, float *b) const; |
27 | virtual void Field(const double *x, double *b) const; | |
aee8290b | 28 | virtual void ReadField() {} |
611fa94a | 29 | virtual void ZDCField(const float *x, float *b) const; |
30 | virtual void ZDCField(const double *x, double *b) const; | |
e21c5d70 | 31 | virtual void SetBeamType(BeamType_t type) {fBeamType = type;} |
32 | virtual void SetBeamEnergy(Float_t energy) {fBeamEnergy = energy;} | |
c28c3a0b | 33 | virtual void SetCompensatorMagnet(Bool_t flag) {fCompensator = flag;} |
60378f15 | 34 | |
35 | private: | |
36 | Bool_t fCompensator; // Flag for compensator magnetic field (kTrue -> ON) | |
37 | BeamType_t fBeamType; // Beam type: A-A (fBeamType=0) or p-p (fBeamType=1) | |
38 | Float_t fBeamEnergy; // Beam energy in GeV | |
27bf203e | 39 | mutable Float_t fQuadGradient;// Gradient field for inner triplet quadrupoles |
40 | mutable Float_t fDipoleField; // Field value for D1 and D2 dipoles | |
41 | mutable Float_t fCCorrField; // Side C 2nd compensator field | |
42 | mutable Float_t fACorr1Field; // Side A 1st compensator field | |
43 | mutable Float_t fACorr2Field; // Side A 2nd compensator field | |
60378f15 | 44 | |
45 | ClassDef(AliMagFC,3) //Class for all Alice Constant MagField | |
aee8290b | 46 | }; |
47 | ||
575c700d | 48 | |
60378f15 | 49 | // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ZDC part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
575c700d | 50 | |
53cc0d31 | 51 | // ************************ LHC optics v6.5 ***************************** |
60378f15 | 52 | // ---- Position of the magnetic elements of LHC beam optics ---- |
53 | // -> SIDE C | |
54 | static const Float_t kCCorrBegin = -1972.5, kCCorrEnd = kCCorrBegin - 153., kCCorrSqRadius = 4.5*4.5; | |
5ba7c883 | 55 | // |
60378f15 | 56 | static const Float_t kCTripletBegin = -2296.5; |
57 | static const Float_t kCQ1Begin = kCTripletBegin, kCQ1End = kCQ1Begin-637., kCQ1SqRadius = 3.5*3.5; | |
58 | static const Float_t kCQ2Begin = kCTripletBegin-908.5, kCQ2End = kCQ2Begin-550., kCQ2SqRadius = 3.5*3.5; | |
59 | static const Float_t kCQ3Begin = kCTripletBegin-1558.5, kCQ3End = kCQ3Begin-550., kCQ3SqRadius = 3.5*3.5; | |
60 | static const Float_t kCQ4Begin = kCTripletBegin-2400., kCQ4End = kCQ4Begin-637., kCQ4SqRadius = 3.5*3.5; | |
5ba7c883 | 61 | // |
60378f15 | 62 | static const Float_t kCD1Begin = -5838.3, kCD1End = kCD1Begin-945., kCD1SqRadius = 4.5*4.5; |
63 | static const Float_t kCD2Begin = -12167.8, kCD2End = kCD2Begin-945., kCD2SqRadius = 4.5*4.5; | |
64 | static const Float_t kCD2XCentre1 = -9.7; | |
65 | static const Float_t kCD2XCentre2 = 9.7; | |
5ba7c883 | 66 | // |
60378f15 | 67 | // -> SIDE A |
68 | // NB -> kACorr1Begin = 919. to be checked | |
69 | static const Float_t kACorr1Begin = 919., kACorr1End = kACorr1Begin+260., kCCorr1SqRadius = 4.*4.; | |
70 | static const Float_t kACorr2Begin = 1972.5, kACorr2End = kACorr2Begin+153., kCCorr2SqRadius = 4.5*4.5; | |
71 | static const Float_t kATripletBegin = 2296.5; | |
72 | static const Float_t kAQ1Begin = kATripletBegin, kAQ1End = kAQ1Begin+637., kAQ1SqRadius = 3.5*3.5; | |
73 | static const Float_t kAQ2Begin = kATripletBegin+908.5, kAQ2End = kAQ2Begin+550., kAQ2SqRadius = 3.5*3.5; | |
74 | static const Float_t kAQ3Begin = kATripletBegin+1558.5, kAQ3End = kAQ3Begin+550., kAQ3SqRadius = 3.5*3.5; | |
75 | static const Float_t kAQ4Begin = kATripletBegin+2400., kAQ4End = kAQ4Begin+637., kAQ4SqRadius = 3.5*3.5; | |
5ba7c883 | 76 | // |
60378f15 | 77 | static const Float_t kAD1Begin = 5838.3, kAD1End = kAD1Begin+945., kAD1SqRadius = 3.375*3.375; |
78 | static const Float_t kAD2Begin = 12167.8, kAD2End = kAD2Begin+945., kAD2SqRadius = 3.75*3.75; | |
79 | static const Float_t kAD2XCentre1 = -9.4; | |
80 | static const Float_t kAD2XCentre2 = 9.4; | |
5ba7c883 | 81 | |
60378f15 | 82 | // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ZDC part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
575c700d | 83 | |
aee8290b | 84 | #endif |
60378f15 | 85 |