Juggler
Juggling algorithms and event processing using gaudi framework
|
Go to the documentation of this file.
4 #define Jug_BFIELD_HH 1
6 #include "Acts//Definitions/Units.hpp"
7 #include "Acts/Utilities/detail/AxisFwd.hpp"
8 #include "Acts/Utilities/detail/GridFwd.hpp"
13 #include "Acts/MagneticField/MagneticFieldContext.hpp"
14 #include "Acts/Definitions/Common.hpp"
49 Cache(
const Acts::MagneticFieldContext& mcfg)
51 scalor = std::any_cast<const ScalableBFieldContext>(mcfg).scalor;
65 ScalableBField(
double Bx = 0.,
double By = 0.,
double Bz = 0.) : m_BField(Bx, By, Bz) {}
74 Acts::Vector3
getField(
const Acts::Vector3& )
const {
return m_BField; }
86 return m_BField * cache.
scalor;
120 return m_BField * cache.
scalor;
129 bool isInside(
const Acts::Vector3& )
const {
return true; }
136 void setField(
double Bx,
double By,
double Bz) { m_BField << Bx, By, Bz; }
141 void setField(
const Acts::Vector3& B) { m_BField = B; }
145 Acts::Vector3 m_BField;
152 Acts::detail::Grid<Acts::Vector2, Acts::detail::EquidistantAxis, Acts::detail::EquidistantAxis>>;
156 Acts::detail::EquidistantAxis, Acts::detail::EquidistantAxis>>;
160 using BFieldVariant = std::variant<std::shared_ptr<InterpolatedBFieldMap2D>, std::shared_ptr<InterpolatedBFieldMap3D>,
161 std::shared_ptr<Acts::ConstantBField>, std::shared_ptr<Jug::BField::ScalableBField>>;
Acts::Vector3 getFieldGradient(const Acts::Vector3 &, Acts::ActsMatrix< 3, 3 > &) const
retrieve magnetic field value & its gradient
Definition: BField.h:100
std::variant< std::shared_ptr< InterpolatedBFieldMap2D >, std::shared_ptr< InterpolatedBFieldMap3D >, std::shared_ptr< Acts::ConstantBField >, std::shared_ptr< Jug::BField::ScalableBField > > BFieldVariant
Definition: BField.h:161
ScalableBField(double Bx=0., double By=0., double Bz=0.)
construct constant magnetic field from components
Definition: BField.h:65
bool isInside(const Acts::Vector3 &) const
check whether given 3D position is inside look-up domain
Definition: BField.h:129
double scalor
Definition: BField.h:46
Acts::Vector3 getField(const Acts::Vector3 &) const
retrieve magnetic field value
Definition: BField.h:74
The Context to be handed around.
Definition: BField.h:33
void setField(double Bx, double By, double Bz)
update magnetic field vector from components
Definition: BField.h:136
returns a given constant field value at every point
Definition: BField.h:43
Definition: DD4hepBField.h:22
Acts::Vector3 getField(const Acts::Vector3 &, Cache &cache) const
retrieve magnetic field value
Definition: BField.h:84
void setField(const Acts::Vector3 &B)
update magnetic field vector
Definition: BField.h:141
Cache(const Acts::MagneticFieldContext &mcfg)
constructor with context
Definition: BField.h:49
Acts::Vector3 getFieldGradient(const Acts::Vector3 &, Acts::ActsMatrix< 3, 3 > &, Cache &cache) const
retrieve magnetic field value & its gradient
Definition: BField.h:117
Definition: MaterialWiper.hpp:20
double scalor
Definition: BField.h:34
ScalableBField(Acts::Vector3 B)
construct constant magnetic field from field vector
Definition: BField.h:58