BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Interface for all 3D interpolators. More...
#include <BDSInterpolator3D.hh>
Public Member Functions | |
BDSInterpolator3D (BDSArray3DCoords *arrayIn) | |
G4ThreeVector | GetInterpolatedValue (G4double x, G4double y, G4double z) const |
Public interface to a 3D interpolator. Returns Geant4 type as that's what will be needed. | |
const BDSArray3DCoords * | Array () const |
BDSDimensionType | FirstDimension () const |
Accessor for the active dimension this represents (first). | |
BDSDimensionType | SecondDimension () const |
Accessor for the active dimension this represents (second). | |
BDSDimensionType | ThirdDimension () const |
Accessor for the active dimension this represents (second). | |
virtual BDSExtent | Extent () const |
Extent of field. | |
virtual G4bool | TimeVarying () const |
![]() | |
BDSInterpolator (BDSArray4DCoords *arrayIn=nullptr) | |
virtual BDSExtent | Extent () const =0 |
Interface each derived class must provide. | |
virtual G4bool | TimeVarying () const =0 |
G4double | SmallestSpatialStep () const |
Protected Member Functions | |
virtual BDSFieldValue | GetInterpolatedValueT (G4double x, G4double y, G4double z) const =0 |
Protected Attributes | |
BDSArray3DCoords * | array |
The field data. | |
![]() | |
G4double | smallestSpatialStep |
Interface for all 3D interpolators.
Does not own data - so multiple interpolators could be used on same data.
Definition at line 38 of file BDSInterpolator3D.hh.
|
explicit |
Definition at line 24 of file BDSInterpolator3D.cc.
|
inlinevirtual |
Definition at line 43 of file BDSInterpolator3D.hh.
|
inline |
Definition at line 48 of file BDSInterpolator3D.hh.
|
inlinevirtual |
Extent of field.
Implements BDSInterpolator.
Definition at line 60 of file BDSInterpolator3D.hh.
References array, and BDSArray4DCoords::Extent().
|
inline |
Accessor for the active dimension this represents (first).
Definition at line 51 of file BDSInterpolator3D.hh.
References array, and BDSArray4DCoords::FirstDimension().
G4ThreeVector BDSInterpolator3D::GetInterpolatedValue | ( | G4double | x, |
G4double | y, | ||
G4double | z | ||
) | const |
Public interface to a 3D interpolator. Returns Geant4 type as that's what will be needed.
Definition at line 29 of file BDSInterpolator3D.cc.
References GetInterpolatedValueT(), BDSThreeVector< T >::x(), BDSThreeVector< T >::y(), and BDSThreeVector< T >::z().
Referenced by BDSFieldEInterpolated3D::GetField(), BDSFieldEMInterpolated3D::GetField(), and BDSFieldMagInterpolated3D::GetField().
|
protectedpure virtual |
Each derived class should implement this function. Note T suffix (was templated) to distinguish it from GetInterpolatedValue which returns Geant4 types and is the main interface to should have the clean name.
Implemented in BDSInterpolator3DCubic, BDSInterpolator3DLinear, BDSInterpolator3DLinearMag, and BDSInterpolator3DNearest.
Referenced by GetInterpolatedValue().
|
inline |
Accessor for the active dimension this represents (second).
Definition at line 54 of file BDSInterpolator3D.hh.
References array, and BDSArray4DCoords::SecondDimension().
|
inline |
Accessor for the active dimension this represents (second).
Definition at line 57 of file BDSInterpolator3D.hh.
References array, and BDSArray4DCoords::ThirdDimension().
|
inlinevirtual |
Implements BDSInterpolator.
Definition at line 62 of file BDSInterpolator3D.hh.
|
protected |
The field data.
Definition at line 71 of file BDSInterpolator3D.hh.
Referenced by Extent(), FirstDimension(), BDSInterpolator3DCubic::GetInterpolatedValueT(), BDSInterpolator3DLinear::GetInterpolatedValueT(), BDSInterpolator3DLinearMag::GetInterpolatedValueT(), BDSInterpolator3DNearest::GetInterpolatedValueT(), SecondDimension(), and ThirdDimension().