![]() |
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