19#include "BDSDimensionType.hh"
20#include "BDSFieldEInterpolated3D.hh"
21#include "BDSInterpolator3D.hh"
23#include "G4ThreeVector.hh"
26BDSFieldEInterpolated3D::BDSFieldEInterpolated3D(
BDSInterpolator3D* interpolatorIn,
27 const G4Transform3D& offset,
30 interpolator(interpolatorIn),
31 firstDimensionIndex((interpolatorIn->FirstDimension()).underlying()),
32 firstTime((interpolatorIn->FirstDimension()).underlying() > 2),
33 secondDimensionIndex((interpolatorIn->SecondDimension()).underlying()),
34 secondTime((interpolatorIn->SecondDimension()).underlying() > 2),
35 thirdDimensionIndex((interpolatorIn->ThirdDimension()).underlying()),
36 thirdTime((interpolatorIn->ThirdDimension()).underlying() > 2)
39BDSFieldEInterpolated3D::~BDSFieldEInterpolated3D()
45 const G4double t)
const
47 G4double fCoordinate = 0;
52 G4double sCoordinate = 0;
57 G4double tCoordinate = 0;
virtual G4ThreeVector GetField(const G4ThreeVector &position, const G4double t=0) const
Return the interpolated field value at a given point.
const G4bool secondTime
Cache of whether to use time coordinate.
const G4int thirdDimensionIndex
Integer index to dimension to use.
const G4int secondDimensionIndex
Integer index to dimension to use.
const G4bool firstTime
Cache of whether to use time coordinate.
const G4bool thirdTime
Cache of whether to use time coordinate.
BDSInterpolator3D * interpolator
Interpolator the field is based on.
const G4int firstDimensionIndex
Integer index to dimension to use.
Class to provide scaling and a base class pointer for interpolator fields.
Interface for all 3D interpolators.
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.