]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliMagFCM.h
LUTs mapping symnames and original global matrices removed from AliGeomManager, which...
[u/mrichter/AliRoot.git] / STEER / AliMagFCM.h
CommitLineData
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
0742d588 8//-----------------------------------------------------------------------
9// Class for Alice magnetic field with constant mesh
10// Used in the configuration macros (macros/Config.C, etc.)
11// Author:
12//-----------------------------------------------------------------------
13
57754f18 14#include "AliMagFC.h"
1cdd2303 15#include <TVector.h>
aee8290b 16
57754f18 17class AliMagFCM : public AliMagFC
aee8290b 18{
5d8718b8 19 //Alice Magnetic Field with constant mesh
aee8290b 20
21public:
e2afb3b6 22 AliMagFCM();
d0f1ee3b 23 AliMagFCM(const char *name, const char *title, Int_t integ,
24 Float_t factor, Float_t fmax);
aee8290b 25 AliMagFCM(const AliMagFCM &mag);
26 virtual ~AliMagFCM() {delete fB;}
6f3038e9 27 virtual void Field(Float_t *x, Float_t *b) const;
aee8290b 28 virtual void ReadField();
c3d65c8c 29 virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
7ebb06c3 30 virtual Float_t SolenoidField() const {
31 return -Factor()*fSolenoid;
32 }
4cc8933f 33
6c4904c2 34 void Copy(TObject &magf) const;
e2afb3b6 35 virtual AliMagFCM & operator=(const AliMagFCM &magf)
36 {magf.Copy(*this); return *this;}
aee8290b 37
d0f1ee3b 38 Float_t Bx(Int_t ix, Int_t iy, Int_t iz) const {
aee8290b 39 return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix));
40 }
d0f1ee3b 41 Float_t By(Int_t ix, Int_t iy, Int_t iz) const {
aee8290b 42 return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+1);
43 }
d0f1ee3b 44 Float_t Bz(Int_t ix, Int_t iy, Int_t iz) const {
aee8290b 45 return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+2);
46 }
47
48protected:
49
4cc8933f 50 Float_t fXbeg; // Start of mesh in x
51 Float_t fYbeg; // Start of mesh in y
52 Float_t fZbeg; // Start of mesh in z
53 Float_t fXdel; // Mesh step in x
54 Float_t fYdel; // Mesh step in y
55 Float_t fZdel; // Mesh step in z
56 Float_t fSolenoid; // Solenoid Field Strength
57 Double_t fXdeli; // Inverse of Mesh step in x
58 Double_t fYdeli; // Inverse of Mesh step in y
59 Double_t fZdeli; // Inverse of Mesh step in z
60 Int_t fXn; // Number of mesh points in x
61 Int_t fYn; // Number of mesh points in y
62 Int_t fZn; // Number of mesh points in z
63 TVector *fB; // Field map
aee8290b 64
65 ClassDef(AliMagFCM,1) //Class for all Alice MagField with Constant Mesh
66};
67
68#endif