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 | 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 | 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 () |
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 () |
Public Attributes | |
| EBField | fMap |
| Float_t | fFactor |
| Float_t | fRescale |
| Float_t | fBDipole |
| Float_t | fRmaxDip |
| Float_t | fZminDip |
| Float_t | fZmaxDip |
| Bool_t | fLock |
| Float_t | Bz [nZ][nR] |
| Float_t | Br [nZ][nR] |
| Float_t | Radius [nR] |
| Float_t | ZList [nZ] |
| Float_t | Bz3D [nPhi][nZ][nR] |
| Float_t | Br3D [nPhi][nZ][nR] |
| Float_t | Bphi3D [nPhi][nZ][nR] |
| Float_t | R3D [nR] |
| Float_t | Z3D [nZ] |
| Float_t | Phi3D [nPhi] |
| Float_t | R3DSteel [nRSteel] |
| Float_t | Z3DSteel [nZSteel] |
| Float_t | Phi3DSteel [nPhiSteel] |
| Float_t | Bz3DSteel [nPhiSteel][nZSteel][nRSteel] |
| Float_t | Bx3DSteel [nPhiSteel][nZSteel][nRSteel] |
| Float_t | By3DSteel [nPhiSteel][nZSteel][nRSteel] |
| Float_t | Br3DSteel [nPhiSteel][nZSteel][nRSteel] |
| Float_t | Bphi3DSteel [nPhiSteel][nZSteel][nRSteel] |
Static Public Attributes | |
| static StarMagField * | fgInstance = 0 |
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 65 of file StarMagField.h.
1.5.9