BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
2D array with spatial mapping derived from BDSArray4DCoords. More...
#include <BDSArray2DCoords.hh>
Public Member Functions | |
BDSArray2DCoords ()=delete | |
BDSArray2DCoords (G4int nX, G4int nY, G4double xMinIn, G4double xMaxIn, G4double yMinIn, G4double yMaxIn, BDSDimensionType xDimensionIn=BDSDimensionType::x, BDSDimensionType yDimensionIn=BDSDimensionType::y) | |
virtual void | ExtractSection2x2 (G4double x, G4double y, BDSFieldValue(&localData)[2][2], G4double &xFrac, G4double &yFrac) const |
Extract 2x2 points lying around coordinate x. | |
virtual void | ExtractSection4x4 (G4double x, G4double y, BDSFieldValue(&localData)[4][4], G4double &xFrac, G4double &yFrac) const |
Extract 4x4 points lying around coordinate x. | |
virtual BDSFieldValue | ExtractNearest (G4double x, G4double y=0, G4double z=0, G4double t=0) const |
Extract nearest field value from array. z,t ignored but required for overload. | |
virtual BDSExtent | Extent () const |
![]() | |
BDSArray3DCoords ()=delete | |
BDSArray3DCoords (G4int nX, G4int nY, G4int nZ, G4double xMinIn, G4double xMaxIn, G4double yMinIn, G4double yMaxIn, G4double zMinIn, G4double zMaxIn, BDSDimensionType xDimensionIn=BDSDimensionType::x, BDSDimensionType yDimensionIn=BDSDimensionType::y, BDSDimensionType zDimensionIn=BDSDimensionType::z) | |
virtual void | ExtractSection2x2x2 (G4double x, G4double y, G4double z, BDSFieldValue(&localData)[2][2][2], G4double &xFrac, G4double &yFrac, G4double &zFrac) const |
Extract 2x2x2 points lying around coordinate x. | |
virtual void | ExtractSection4x4x4 (G4double x, G4double y, G4double z, BDSFieldValue(&localData)[4][4][4], G4double &xFrac, G4double &yFrac, G4double &zFrac) const |
Extract 4x4x4 points lying around coordinate x. | |
virtual BDSFieldValue | ExtractNearest (G4double x, G4double y=0, G4double z=0, G4double t=0) const |
Extract nearest field value from array. t ignored but required for overload. | |
![]() | |
BDSArray4DCoords ()=delete | |
BDSArray4DCoords (G4int nXIn, G4int nYIn, G4int nZIn, G4int nTIn, G4double xMinIn, G4double xMaxIn, G4double yMinIn, G4double yMaxIn, G4double zMinIn, G4double zMaxIn, G4double tMinIn, G4double tMaxIn, BDSDimensionType xDimensionIn=BDSDimensionType::x, BDSDimensionType yDimensionIn=BDSDimensionType::y, BDSDimensionType zDimensionIn=BDSDimensionType::z, BDSDimensionType tDimensionIn=BDSDimensionType::t) | |
G4double | SmallestSpatialStep () const |
virtual G4bool | OutsideCoords (G4double x, G4double y, G4double z, G4double t) const |
Whether the spatial coordinates lie outside the range of the array or not. | |
virtual void | OutsideCoordsWarn (G4double x, G4double y, G4double z, G4double t) const |
BDSFourVector< G4double > | ArrayCoordsFromXYZT (G4double x, G4double y, G4double z, G4double t) const |
Convenience function to easily get array coords in all dimensions at once. | |
BDSFourVector< G4double > | XYZTFromArrayCoords (G4double x, G4double y, G4double z, G4double t) const |
BDSFourVector< G4int > | NearestXYZT (G4double x, G4double y, G4double z, G4double t) const |
Return the index of the nearest field value in space. | |
BDSFourVector< G4int > | NearestXYZT (const BDSFourVector< G4double > &pos) const |
Return the index of the nearest field value in space via four-vector. | |
virtual void | ExtractSection2x2x2x2 (G4double x, G4double y, G4double z, G4double t, BDSFieldValue(&localData)[2][2][2][2], G4double &xFrac, G4double &yFrac, G4double &zFrac, G4double &tFrac) const |
Extract 2x2x2x2 points lying around coordinate x. | |
virtual void | ExtractSection4x4x4x4 (G4double x, G4double y, G4double z, G4double t, BDSFieldValue(&localData)[4][4][4][4], G4double &xFrac, G4double &yFrac, G4double &zFrac, G4double &tFrac) const |
Extract 4x4x4x4 points lying around coordinate x. | |
virtual BDSFieldValue | ExtractNearest (G4double x, G4double y=0, G4double z=0, G4double t=0) const |
Extract nearest field value from array. | |
virtual std::ostream & | Print (std::ostream &out) const |
virtual BDSExtent | Extent () const |
Return the SPATIAL (only) extent of this field without any offset. Ignores time. | |
G4double | XMin () const |
G4double | YMin () const |
G4double | ZMin () const |
G4double | TMin () const |
G4double | XMax () const |
G4double | YMax () const |
G4double | ZMax () const |
G4double | TMax () const |
virtual G4bool | TimeVarying () const |
G4int | DimensionIndex (BDSDimensionType spatialDimension) const |
std::array< G4int, 4 > | ArrayToSpatialDimensionIndices () const |
Access all indices at once. | |
G4double | XStep () const |
The distance in spatial coordinates between any two points in the array. | |
G4double | YStep () const |
The distance in spatial coordinates between any two points in the array. | |
G4double | ZStep () const |
The distance in spatial coordinates between any two points in the array. | |
G4double | TStep () const |
The distance in spatial coordinates between any two points in the array. | |
virtual G4double | ArrayCoordsFromX (G4double x) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
virtual G4double | ArrayCoordsFromY (G4double y) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
virtual G4double | ArrayCoordsFromZ (G4double z) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
virtual G4double | ArrayCoordsFromT (G4double t) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
void | ArrayCoordsFromXY (G4double &x, G4double &xArr, G4double &y, G4double &yArr) const |
Utility version to forward to individual function. | |
void | ArrayCoordsFromXYZ (G4double &x, G4double &xArr, G4double &y, G4double &yArr, G4double &z, G4double &zArr) const |
Utility version to forward to individual function. | |
void | ArrayCoordsFromXYZT (G4double &x, G4double &xArr, G4double &y, G4double &yArr, G4double &z, G4double &zArr, G4double &t, G4double &tArr) const |
Utility version to forward to individual function. | |
G4double | XFromArrayCoords (G4double xCoord) const |
Return spatial value from a continuous array coordinate in one dimension. | |
G4double | YFromArrayCoords (G4double yCoord) const |
Return spatial value from a continuous array coordinate in one dimension. | |
G4double | ZFromArrayCoords (G4double zCoord) const |
Return spatial value from a continuous array coordinate in one dimension. | |
G4double | TFromArrayCoords (G4double tCoord) const |
Return spatial value from a continuous array coordinate in one dimension. | |
virtual G4int | NearestX (G4double x) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
virtual G4int | NearestY (G4double y) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
virtual G4int | NearestZ (G4double z) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
virtual G4int | NearestT (G4double t) const |
Not much point in being both virtual and inline (in our use case) but has to be virtual. | |
BDSDimensionType | FirstDimension () const |
Accessor for each dimension label. e.g. array 'x' = spatial z. | |
BDSDimensionType | SecondDimension () const |
Accessor for each dimension label. e.g. array 'x' = spatial z. | |
BDSDimensionType | ThirdDimension () const |
Accessor for each dimension label. e.g. array 'x' = spatial z. | |
BDSDimensionType | FourthDimension () const |
Accessor for each dimension label. e.g. array 'x' = spatial z. | |
![]() | |
BDSArray4D ()=delete | |
BDSArray4D (G4int nXIn, G4int nYIn, G4int nZIn, G4int nTIn) | |
virtual BDSFieldValue & | operator() (G4int x, G4int y=0, G4int z=0, G4int t=0) |
Setter & (technically, a non-const) accessor. | |
const BDSFieldValue & | operator() (BDSFourVector< G4int > &pos) |
Convenience accessor to operator(). | |
virtual const BDSFieldValue & | GetConst (G4int x, G4int y=0, G4int z=0, G4int t=0) const |
virtual const BDSFieldValue & | operator() (G4int x, G4int y=0, G4int z=0, G4int t=0) const |
Convenience shortcut to GetConst(). | |
const BDSFieldValue & | operator() (const BDSFourVector< G4int > &pos) const |
Convenience accessor to operator(). | |
virtual G4bool | Outside (G4int x, G4int y, G4int z, G4int t) const |
Return whether the indices are valid and lie within the array boundaries or not. | |
virtual void | OutsideWarn (G4int x, G4int y, G4int z, G4int t) const |
Use Outside() but warn and exit if the coordinates requested are outside the array. | |
virtual std::ostream & | Print (std::ostream &out) const |
G4int | NX () const |
Access the number of elements in a given dimension. | |
G4int | NY () const |
Access the number of elements in a given dimension. | |
G4int | NZ () const |
Access the number of elements in a given dimension. | |
G4int | NT () const |
Access the number of elements in a given dimension. | |
BDSFourVector< G4int > | NXYZT () const |
Access the number of elements in a given dimension. | |
Friends | |
std::ostream & | operator<< (std::ostream &out, BDSArray2DCoords const &a) |
Output stream. | |
Additional Inherited Members | |
![]() | |
void | BuildDimensionIndex () |
Build up an array of ints based on the order of dimensions stored in the array. | |
![]() | |
G4double | smallestSpatialStep |
BDSDimensionType | xDimension |
BDSDimensionType | yDimension |
BDSDimensionType | zDimension |
BDSDimensionType | tDimension |
std::array< G4int, 4 > | dimensions |
G4bool | timeVarying |
G4double | xMin |
Dimension parameter - protected for derived class access. | |
G4double | xMax |
Dimension parameter - protected for derived class access. | |
G4double | yMin |
Dimension parameter - protected for derived class access. | |
G4double | yMax |
Dimension parameter - protected for derived class access. | |
G4double | zMin |
Dimension parameter - protected for derived class access. | |
G4double | zMax |
Dimension parameter - protected for derived class access. | |
G4double | tMin |
Dimension parameter - protected for derived class access. | |
G4double | tMax |
Dimension parameter - protected for derived class access. | |
G4double | xStep |
Dimension parameter - protected for derived class access. | |
G4double | yStep |
Dimension parameter - protected for derived class access. | |
G4double | zStep |
Dimension parameter - protected for derived class access. | |
G4double | tStep |
Dimension parameter - protected for derived class access. | |
![]() | |
BDSFieldValue | defaultValue |
Need to store a default value so it can be return by reference. | |
const G4int | nX |
Dimension. | |
const G4int | nY |
Dimension. | |
const G4int | nZ |
Dimension. | |
const G4int | nT |
Dimension. | |
2D array with spatial mapping derived from BDSArray4DCoords.
Definition at line 37 of file BDSArray2DCoords.hh.
|
delete |
No default constructor as the array is not adjustable after construction and therefore the size must be known at construction time.
BDSArray2DCoords::BDSArray2DCoords | ( | G4int | nX, |
G4int | nY, | ||
G4double | xMinIn, | ||
G4double | xMaxIn, | ||
G4double | yMinIn, | ||
G4double | yMaxIn, | ||
BDSDimensionType | xDimensionIn = BDSDimensionType::x , |
||
BDSDimensionType | yDimensionIn = BDSDimensionType::y |
||
) |
Definition at line 31 of file BDSArray2DCoords.cc.
|
inlinevirtual |
Definition at line 49 of file BDSArray2DCoords.hh.
|
virtual |
Return the SPATIAL (only) extent of this field without any offset. Ignores time. This override gives infinite limit in z, but accurate in x,y. TODO - check for if not in x,y,z order.
Reimplemented from BDSArray4DCoords.
Reimplemented in BDSArray1DCoords.
Definition at line 127 of file BDSArray2DCoords.cc.
References BDSArray4DCoords::xMax, BDSArray4DCoords::xMin, BDSArray4DCoords::yMax, and BDSArray4DCoords::yMin.
Referenced by BDSInterpolator2D::Extent().
|
virtual |
Extract nearest field value from array. z,t ignored but required for overload.
Reimplemented from BDSArray3DCoords.
Reimplemented in BDSArray1DCoords, BDSArray1DCoordsTransformed, and BDSArray2DCoordsTransformed.
Definition at line 111 of file BDSArray2DCoords.cc.
References BDSArray4D::GetConst(), BDSArray4DCoords::NearestX(), and BDSArray4DCoords::NearestY().
Referenced by BDSInterpolator2DNearest::GetInterpolatedValueT().
|
virtual |
Extract 2x2 points lying around coordinate x.
Reimplemented in BDSArray2DCoordsTransformed.
Definition at line 59 of file BDSArray2DCoords.cc.
References BDSArray4DCoords::ArrayCoordsFromXY(), and BDSArray4D::GetConst().
Referenced by BDSInterpolator2DLinear::GetInterpolatedValueT(), and BDSInterpolator2DLinearMag::GetInterpolatedValueT().
|
virtual |
Extract 4x4 points lying around coordinate x.
Reimplemented in BDSArray2DCoordsTransformed.
Definition at line 81 of file BDSArray2DCoords.cc.
References BDSArray4DCoords::ArrayCoordsFromXY(), and BDSArray4D::GetConst().
Referenced by BDSInterpolator2DCubic::GetInterpolatedValueT().
|
friend |
Output stream.
Definition at line 122 of file BDSArray2DCoords.cc.