|  | ATLAS Offline Software
    | 
#include <BFieldMesh.h>
| Public Member Functions | |
| BFieldMesh ()=default | |
| BFieldMesh (const BFieldMesh &)=default | |
| BFieldMesh (BFieldMesh &&)=default | |
| BFieldMesh & | operator= (const BFieldMesh &)=default | 
| BFieldMesh & | operator= (BFieldMesh &&)=default | 
| ~BFieldMesh ()=default | |
| BFieldMesh (double zmin, double zmax, double rmin, double rmax, double phimin, double phimax, double bscale) | |
| constructor with mesh dimensions and scale  More... | |
| void | setRange (double zmin, double zmax, double rmin, double rmax, double phimin, double phimax) | 
| set mesh range/dimensions  More... | |
| void | setBscale (double bscale) | 
| set B scale  More... | |
| void | scaleBscale (double factor) | 
| scale B scale by a factor  More... | |
| void | reserve (int nz, int nr, int nphi, int nfield) | 
| allocate space to vectors  More... | |
| void | reserve (int nz, int nr, int nphi) | 
| allocate space to vectors  More... | |
| void | appendMesh (int axis, double value) | 
| add a position for a cell corner for an axis More... | |
| void | appendField (const BFieldVector< T > &field) | 
| append a filed vector More... | |
| void | buildLUT () | 
| build Look Up Table  More... | |
| bool | inside (double z, double r, double phi) const | 
| void | getCache (double z, double r, double phi, BFieldCache &cache, double scaleFactor=1.0) const | 
| void | getB (const double *ATH_RESTRICT xyz, double *ATH_RESTRICT B, double *ATH_RESTRICT deriv=nullptr) const | 
| get the bfield given a point in xyz  More... | |
| double | min (size_t axis) const | 
| minimum for a particular axis = 0 (z), 1 (r), 2 (phi)  More... | |
| double | max (size_t axis) const | 
| maximum or a particular axis = 0 (z), 1 (r), 2 (phi)  More... | |
| double | zmin () const | 
| minimum in z  More... | |
| double | zmax () const | 
| maximum in z  More... | |
| double | rmin () const | 
| minimun in r  More... | |
| double | rmax () const | 
| maximum in r  More... | |
| double | phimin () const | 
| minimun in phi  More... | |
| double | phimax () const | 
| maximum in phi  More... | |
| unsigned | nmesh (size_t axis) const | 
| number of cells along each axis = 0 (z), 1 (r), 2 (phi)  More... | |
| double | mesh (size_t axis, size_t index) const | 
| coordinate along axis (0 (z), 1 (r), 2 (phi)) of the cell at index (0 to nmesh-1)  More... | |
| unsigned | nfield () const | 
| field entries in mesh  More... | |
| const BFieldVector< T > & | field (size_t index) const | 
| field vector at cell corner at index  More... | |
| double | bscale () const | 
| scale  More... | |
| int | memSize () const | 
| memory size  More... | |
| Protected Attributes | |
| std::array< double, 3 > | m_min {} | 
| std::array< double, 3 > | m_max {} | 
| std::array< std::vector< double >, 3 > | m_mesh {} | 
| Private Attributes | |
| std::vector< BFieldVector< T > > | m_field | 
| double | m_scale {1.0} | 
| double | m_nomScale {1.0} | 
| std::array< std::vector< int >, 3 > | m_LUT {} | 
| std::array< double, 3 > | m_invUnit {} | 
| int | m_roff {0} | 
| int | m_zoff {0} | 
A 3-d mesh (axes z,r,phi) representing a simple field map.
The mesh is made up from 'cells' We hold numz, numr , numphi positions defining the corners of the cells.
Then we have numz X numr X numphi field values at these corners
The field type is templated simalar to BFieldVector
It is short for both solenoid and toroid for the nominal case. There is a special case for BFieldSolenoid (not used in the nominal case) which allows a tilt between the nominal and 'tilted' solenoid fields and uses double.
Definition at line 42 of file BFieldMesh.h.
| 
 | default | 
| 
 | default | 
| 
 | default | 
| 
 | default | 
| BFieldMesh< T >::BFieldMesh | ( | double | zmin, | 
| double | zmax, | ||
| double | rmin, | ||
| double | rmax, | ||
| double | phimin, | ||
| double | phimax, | ||
| double | bscale | ||
| ) | 
constructor with mesh dimensions and scale
| void BFieldMesh< T >::appendField | ( | const BFieldVector< T > & | field | ) | 
append a filed vector 
 
| void BFieldMesh< T >::appendMesh | ( | int | axis, | 
| double | value | ||
| ) | 
add a position for a cell corner for an axis 
 
| double BFieldMesh< T >::bscale | ( | ) | const | 
scale
| void BFieldMesh< T >::buildLUT | ( | ) | 
build Look Up Table
| const BFieldVector<T>& BFieldMesh< T >::field | ( | size_t | index | ) | const | 
field vector at cell corner at index
| void BFieldMesh< T >::getB | ( | const double *ATH_RESTRICT | xyz, | 
| double *ATH_RESTRICT | B, | ||
| double *ATH_RESTRICT | deriv = nullptr | ||
| ) | const | 
get the bfield given a point in xyz
| void BFieldMesh< T >::getCache | ( | double | z, | 
| double | r, | ||
| double | phi, | ||
| BFieldCache & | cache, | ||
| double | scaleFactor = 1.0 | ||
| ) | const | 
| bool BFieldMesh< T >::inside | ( | double | z, | 
| double | r, | ||
| double | phi | ||
| ) | const | 
| double BFieldMesh< T >::max | ( | size_t | axis | ) | const | 
maximum or a particular axis = 0 (z), 1 (r), 2 (phi)
| int BFieldMesh< T >::memSize | ( | ) | const | 
memory size
| double BFieldMesh< T >::mesh | ( | size_t | axis, | 
| size_t | index | ||
| ) | const | 
coordinate along axis (0 (z), 1 (r), 2 (phi)) of the cell at index (0 to nmesh-1)
| double BFieldMesh< T >::min | ( | size_t | axis | ) | const | 
minimum for a particular axis = 0 (z), 1 (r), 2 (phi)
| unsigned BFieldMesh< T >::nfield | ( | ) | const | 
field entries in mesh
| unsigned BFieldMesh< T >::nmesh | ( | size_t | axis | ) | const | 
number of cells along each axis = 0 (z), 1 (r), 2 (phi)
| 
 | default | 
| 
 | default | 
| double BFieldMesh< T >::phimax | ( | ) | const | 
maximum in phi
| double BFieldMesh< T >::phimin | ( | ) | const | 
minimun in phi
| void BFieldMesh< T >::reserve | ( | int | nz, | 
| int | nr, | ||
| int | nphi | ||
| ) | 
allocate space to vectors
| void BFieldMesh< T >::reserve | ( | int | nz, | 
| int | nr, | ||
| int | nphi, | ||
| int | nfield | ||
| ) | 
allocate space to vectors
| double BFieldMesh< T >::rmax | ( | ) | const | 
maximum in r
| double BFieldMesh< T >::rmin | ( | ) | const | 
minimun in r
| void BFieldMesh< T >::scaleBscale | ( | double | factor | ) | 
scale B scale by a factor
| void BFieldMesh< T >::setBscale | ( | double | bscale | ) | 
set B scale
| void BFieldMesh< T >::setRange | ( | double | zmin, | 
| double | zmax, | ||
| double | rmin, | ||
| double | rmax, | ||
| double | phimin, | ||
| double | phimax | ||
| ) | 
set mesh range/dimensions
| double BFieldMesh< T >::zmax | ( | ) | const | 
maximum in z
| double BFieldMesh< T >::zmin | ( | ) | const | 
minimum in z
| 
 | private | 
Definition at line 133 of file BFieldMesh.h.
| 
 | private | 
Definition at line 139 of file BFieldMesh.h.
| 
 | private | 
Definition at line 138 of file BFieldMesh.h.
| 
 | protected | 
Definition at line 129 of file BFieldMesh.h.
| 
 | protected | 
Definition at line 130 of file BFieldMesh.h.
| 
 | protected | 
Definition at line 128 of file BFieldMesh.h.
| 
 | private | 
Definition at line 135 of file BFieldMesh.h.
| 
 | private | 
Definition at line 140 of file BFieldMesh.h.
| 
 | private | 
Definition at line 134 of file BFieldMesh.h.
| 
 | private | 
Definition at line 141 of file BFieldMesh.h.
 1.8.18
 1.8.18