ATLAS Offline Software
|
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h) More...
#include <AtlasFieldCache.h>
Public Member Functions | |
AtlasFieldCache ()=default | |
AtlasFieldCache (double solFieldScale, double torFieldScale, const AtlasFieldMap *fieldMap) | |
constructor to setup with field scale and magnetic field map for first access to field More... | |
AtlasFieldCache & | operator= (AtlasFieldCache &&other)=default |
Move-able and copy-able. More... | |
AtlasFieldCache (AtlasFieldCache &&other)=default | |
AtlasFieldCache (const AtlasFieldCache &other)=default | |
AtlasFieldCache & | operator= (const AtlasFieldCache &other)=default |
~AtlasFieldCache ()=default | |
void | getField (const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr) |
get B field value at given position xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given, field derivatives are returned in kT/mm More... | |
void | getFieldZR (const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr) |
get B field valaue on the z-r plane at given position works only inside the solenoid. More... | |
bool | solenoidOn () const |
status of the magnets More... | |
bool | toroidOn () const |
Private Member Functions | |
bool | fillFieldCache (double z, double r, double phi) |
fill given magnetic field zone */ More... | |
bool | fillFieldCacheZR (double z, double r) |
fill Z-R cache for solenoid */ More... | |
Private Attributes | |
double | m_solScale { 1 } |
magnetic field scales from currents More... | |
double | m_torScale { 1 } |
double | m_scaleToUse { 1 } |
int | m_solZoneId { -1 } |
const AtlasFieldMap * | m_fieldMap { nullptr } |
handle to the magnetic field map - not owned More... | |
const BFieldZone * | m_zone3d { nullptr } |
A zone of the full 3d field. More... | |
BFieldCache | m_cache3d |
Full 3d field cell/cache This will be a cell inside a 3d field zone. More... | |
const std::vector< BFieldCond > * | m_cond { nullptr } |
Pointer to the conductors in the current field zone (to compute Biot-Savart component) Owned by AtlasFieldMap. More... | |
const BFieldMeshZR * | m_meshZR { nullptr } |
fast 2d map made of one zone assuming phi/roatational symmetry Owned by AtlasFieldMap. More... | |
BFieldCacheZR | m_cacheZR {} |
Fast 2d field cell/cache. More... | |
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
We keep track of the
Definition at line 42 of file AtlasFieldCache.h.
|
default |
MagField::AtlasFieldCache::AtlasFieldCache | ( | double | solFieldScale, |
double | torFieldScale, | ||
const AtlasFieldMap * | fieldMap | ||
) |
constructor to setup with field scale and magnetic field map for first access to field
|
default |
|
default |
|
default |
|
private |
fill given magnetic field zone */
|
private |
fill Z-R cache for solenoid */
void MagField::AtlasFieldCache::getField | ( | const double *ATH_RESTRICT | xyz, |
double *ATH_RESTRICT | bxyz, | ||
double *ATH_RESTRICT | deriv = nullptr |
||
) |
get B field value at given position xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given, field derivatives are returned in kT/mm
Definition at line 42 of file AtlasFieldCache.cxx.
void MagField::AtlasFieldCache::getFieldZR | ( | const double *ATH_RESTRICT | xyz, |
double *ATH_RESTRICT | bxyz, | ||
double *ATH_RESTRICT | deriv = nullptr |
||
) |
get B field valaue on the z-r plane at given position works only inside the solenoid.
Otherwise call getField above. xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given, field derivatives are returned in kT/mm
Definition at line 86 of file AtlasFieldCache.cxx.
|
default |
Move-able and copy-able.
|
default |
bool MagField::AtlasFieldCache::solenoidOn | ( | ) | const |
status of the magnets
bool MagField::AtlasFieldCache::toroidOn | ( | ) | const |
|
private |
Full 3d field cell/cache This will be a cell inside a 3d field zone.
Definition at line 113 of file AtlasFieldCache.h.
|
private |
Fast 2d field cell/cache.
Definition at line 125 of file AtlasFieldCache.h.
|
private |
Pointer to the conductors in the current field zone (to compute Biot-Savart component) Owned by AtlasFieldMap.
Definition at line 117 of file AtlasFieldCache.h.
|
private |
handle to the magnetic field map - not owned
Definition at line 102 of file AtlasFieldCache.h.
|
private |
fast 2d map made of one zone assuming phi/roatational symmetry Owned by AtlasFieldMap.
Definition at line 122 of file AtlasFieldCache.h.
|
private |
Definition at line 95 of file AtlasFieldCache.h.
|
private |
magnetic field scales from currents
Definition at line 93 of file AtlasFieldCache.h.
|
private |
Definition at line 99 of file AtlasFieldCache.h.
|
private |
Definition at line 94 of file AtlasFieldCache.h.
|
private |
A zone of the full 3d field.
This can be solenoid or one of the toroid etc zones Owned by AtlasFieldMap
Definition at line 108 of file AtlasFieldCache.h.