BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
A 4D field from an interpolated array with any interpolation. More...
#include <BDSFieldEMInterpolated4D.hh>
Public Member Functions | |
BDSFieldEMInterpolated4D (BDSInterpolator4D *eInterpolatorIn, BDSInterpolator4D *bInterpolatorIn, const G4Transform3D &offset=G4Transform3D::Identity, G4double eScalingIn=1.0, G4double bScalingIn=1.0) | |
virtual std::pair< G4ThreeVector, G4ThreeVector > | GetField (const G4ThreeVector &position, const G4double t=0) const |
Return the interpolated field value at a given point. | |
const BDSInterpolator4D * | EInterpolator () const |
const BDSInterpolator4D * | BInterpolator () const |
![]() | |
BDSFieldEMInterpolated (const BDSInterpolator *eInterpolator, const BDSInterpolator *bInterpolator, const G4Transform3D &offset, G4double eScalingIn=1.0, G4double bScalingIn=1.0) | |
virtual G4bool | TimeVarying () const |
G4double | SmallestSpatialStep () const |
G4double | EScaling () const |
Accessor. | |
G4double | BScaling () const |
Accessor. | |
void | SetEScaling (G4double eScalingIn) |
Setter. | |
void | SetBScaling (G4double bScalingIn) |
Setter. | |
![]() | |
BDSFieldEM () | |
BDSFieldEM (G4Transform3D transformIn) | |
virtual std::pair< G4ThreeVector, G4ThreeVector > | GetField (const G4ThreeVector &position, const G4double t=0) const =0 |
virtual G4bool | TimeVarying () const |
virtual void | GetFieldValue (const G4double point[4], G4double *field) const |
virtual std::pair< G4ThreeVector, G4ThreeVector > | GetFieldTransformed (const G4ThreeVector &position, const G4double t) const |
Get the field value after applying transform for local offset. | |
virtual void | SetTransform (const G4Transform3D &transformIn) |
virtual G4bool | DoesFieldChangeEnergy () const |
Required overload by Geant4. | |
void | SetModulator (BDSModulator *modulatorIn) |
Set the optional modulator. | |
G4bool | FiniteStrength () const |
Accessor. | |
Private Attributes | |
BDSInterpolator4D * | eInterpolator |
E Interpolator the field is based on. | |
BDSInterpolator4D * | bInterpolator |
B Interpolator the field is based on. | |
Additional Inherited Members | |
![]() | |
G4bool | timeVarying |
![]() | |
G4bool | finiteStrength |
Flag to cache whether finite nor not. | |
G4Transform3D | transform |
Transform to apply for the field relative to the local coordinates of the geometry. | |
G4bool | transformIsNotIdentity |
Cache of whether to use transform at all. | |
BDSModulator * | modulator |
Optional modulator;. | |
A 4D field from an interpolated array with any interpolation.
Owns interpolators.
This provides a simple interface for em fields to use a 4D interpolator irrespective of which type of interpolator it is.
Definition at line 42 of file BDSFieldEMInterpolated4D.hh.
BDSFieldEMInterpolated4D::BDSFieldEMInterpolated4D | ( | BDSInterpolator4D * | eInterpolatorIn, |
BDSInterpolator4D * | bInterpolatorIn, | ||
const G4Transform3D & | offset = G4Transform3D::Identity , |
||
G4double | eScalingIn = 1.0 , |
||
G4double | bScalingIn = 1.0 |
||
) |
Definition at line 27 of file BDSFieldEMInterpolated4D.cc.
|
virtual |
Definition at line 37 of file BDSFieldEMInterpolated4D.cc.
|
inline |
Definition at line 59 of file BDSFieldEMInterpolated4D.hh.
|
inline |
Definition at line 58 of file BDSFieldEMInterpolated4D.hh.
|
virtual |
Return the interpolated field value at a given point.
Implements BDSFieldEM.
Definition at line 43 of file BDSFieldEMInterpolated4D.cc.
References bInterpolator, BDSFieldEMInterpolated::BScaling(), eInterpolator, BDSFieldEMInterpolated::EScaling(), and BDSInterpolator4D::GetInterpolatedValue().
|
private |
B Interpolator the field is based on.
Definition at line 63 of file BDSFieldEMInterpolated4D.hh.
Referenced by GetField().
|
private |
E Interpolator the field is based on.
Definition at line 62 of file BDSFieldEMInterpolated4D.hh.
Referenced by GetField().