StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
StarMagField Class Reference

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 StarMagFieldInstance ()
 
static void setConstBz (bool state)
 

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 bool mConstBz = false
 

Detailed Description

Author
Jim Thomas 10 October 2000

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.


The documentation for this class was generated from the following files: