6#include <SHiP/Units.hpp>
46 std::shared_ptr<IFieldEvaluator>
field;
56 [[nodiscard]]
virtual std::vector<FieldRegion>
const&
regions()
const = 0;
Framework-agnostic point-query evaluator for one magnetic field region.
Definition IFieldSource.h:19
SHiP::Length pos_q
Definition IFieldSource.h:23
virtual std::array< field_q, 3 > at(pos_q x, pos_q y, pos_q z) const =0
Return {Bx, By, Bz} in Tesla at position (x, y, z) in the evaluator's frame.
SHiP::MagneticField field_q
Definition IFieldSource.h:24
virtual ~IFieldEvaluator()=default
Source of one or more named field regions.
Definition IFieldSource.h:51
virtual ~IFieldSource()=default
virtual std::vector< FieldRegion > const & regions() const =0
Idempotent. Ownership of the evaluators stays with the source.
Definition ActsFieldAdapter.h:25
One magnet's worth of field, tagged by a host-geometry volume pattern.
Definition IFieldSource.h:43
std::shared_ptr< IFieldEvaluator > field
Definition IFieldSource.h:46
std::string name
Definition IFieldSource.h:44
std::string volume_pattern
Definition IFieldSource.h:45