5#ifndef ACTSGEOMETRY_ATLASMAGNETICFIELDWRAPPER_H
6#define ACTSGEOMETRY_ATLASMAGNETICFIELDWRAPPER_H
10#include "Acts/Definitions/Algebra.hpp"
11#include "Acts/Definitions/Units.hpp"
12#include "Acts/MagneticField/MagneticFieldContext.hpp"
13#include "Acts/MagneticField/MagneticFieldProvider.hpp"
21 Cache(
const Acts::MagneticFieldContext mctx) {
33 MagneticFieldProvider::Cache
34 makeCache(
const Acts::MagneticFieldContext& mctx)
const override {
35 return Acts::MagneticFieldProvider::Cache(std::in_place_type<Cache>, mctx);
38 Acts::Result<Acts::Vector3>
39 getField(
const Acts::Vector3& position, Acts::MagneticFieldProvider::Cache& gcache)
const override {
42 posXYZ[0] = position.x();
43 posXYZ[1] = position.y();
44 posXYZ[2] = position.z();
50 Acts::Vector3 bfield{BField[0],BField[1],BField[2]};
54 return Acts::Result<Acts::Vector3>::success(bfield);
Acts::Result< Acts::Vector3 > getField(const Acts::Vector3 &position, Acts::MagneticFieldProvider::Cache &gcache) const override
const double m_bFieldUnit
ATLASMagneticFieldWrapper()=default
MagneticFieldProvider::Cache makeCache(const Acts::MagneticFieldContext &mctx) const override
void getInitializedCache(MagField::AtlasFieldCache &cache) const
get B field cache for evaluation as a function of 2-d or 3-d position.
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
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,...
MagField::AtlasFieldCache fieldCache
Cache(const Acts::MagneticFieldContext mctx)