StRoot
1
|
Public Types | |
enum | EBField { kUndefined = 0, kConstant = 1, kMapped = 2, kChain = 3 } |
enum | ESmFSizes { nZ = 57, nR = 28, nPhi = 37, nZSteel = 16, nRSteel = 115, nPhiSteel = 25 } |
Public Member Functions | |
virtual Float_t | Interpolate (const Float_t Xarray[], const Float_t Yarray[], const Int_t ORDER, const Float_t x) |
Interpolate a 3x2 table (quadratic) or a 2x2 table (linear) | |
virtual void | Interpolate2DBfield (const Float_t r, const Float_t z, Float_t &Br_value, Float_t &Bz_value) |
Interpolate the B field map - 2D interpolation. | |
virtual void | Interpolate2ExtDBfield (const Float_t r, const Float_t z, Float_t &Br_value, Float_t &Bz_value) |
virtual void | Interpolate3DBfield (const Float_t r, const Float_t z, const Float_t phi, Float_t &Br_value, Float_t &Bz_value, Float_t &Bphi_value) |
Interpolate the B field map - 3D interpolation. | |
virtual void | Interpolate3DBSteelfield (const Float_t r, const Float_t z, const Float_t phi, Float_t &Br_value, Float_t &Bz_value, Float_t &Bphi_value) |
Interpolate the B field map - 3D interpolation. | |
StarMagField (EBField map=kMapped, Float_t Factor=1, Bool_t Lock=kFALSE, Float_t Rescale=1, Float_t Bdipole=-42.67, Float_t Rmaxdip=15.34, Float_t Zmindip=980.0, Float_t Zmaxdip=1350.0) | |
virtual void | BField (const Float_t x[], Float_t B[]) |
virtual void | BField (const Double_t x[], Double_t B[]) |
B field in Cartesian coordinates - 2D field (ie. Phi symmetric) | |
virtual void | Field (const Float_t x[], Float_t B[]) |
virtual void | Field (const Double_t x[], Double_t B[]) |
virtual void | BrBzField (const Float_t r, const Float_t z, Float_t &Br_value, Float_t &Bz_value) |
B field in Radial coordinates - 2D field (ie Phi symmetric) | |
virtual void | B3DField (const Float_t x[], Float_t B[]) |
Bfield in Cartesian coordinates - 3D field. | |
virtual void | B3DField (const Double_t x[], Double_t B[]) |
virtual void | BrBz3DField (const Float_t r, const Float_t z, const Float_t phi, Float_t &Br_value, Float_t &Bz_value, Float_t &Bphi_value) |
virtual void | SetFactor (Float_t factor=1) |
virtual void | SetRescale (Float_t factor=1) |
virtual void | SetBDipole (Float_t m=-42.67) |
virtual void | SetRmaxDip (Float_t m=15.3) |
virtual void | SetZminDip (Float_t m=980.0) |
virtual void | SetZmaxDip (Float_t m=1350.0) |
virtual void | SetLock () |
virtual EBField | GetMap () |
virtual Float_t | GetFactor () |
virtual Float_t | GetRescale () |
virtual Bool_t | IsLocked () |
virtual void | Print (Option_t *opt="") const |
Static Public Member Functions | |
static void | Search (Int_t N, const Float_t Xarray[], Float_t x, Int_t &low) |
Search an ordered table by starting at the most recently used point. | |
static StarMagField * | Instance () |
static void | setConstBz (bool state) |
Static Public Attributes | |
static bool | mConstBz = false |
A package of Bfield. Methods included to read the correct Bfield map and scale it according to a scale factor provided during instantiation. The statement from W.Love is that the Bfield map accuracy FWHM = 1 G.
An enumerated argument provided at the time of instantiation selects a constant magnetic field (value=1) or the measured magnetic field (value=2) at a field setting that you select manually. Alternatively, you can use the database to determine the magnetic field setting but you must then provide a a time stamp and use a different instantiation (this is usually done in the chain).
The enumerations for the manual settings are: enum EBField { kUndefined = 0, kConstant = 1, kMapped = 2, kChain = 3 } ; "kConstant = 1" means you wish to work with a constant, uniform, field. "kMapped = 2" means you want to read values from the measured magnet maps. The other enumerations are undefined and reserved for future expansion.
This code works in kGauss, cm - but note that the Bfield maps on disk are in gauss, cm.
To do:
Definition at line 97 of file StarMagField.h.