|
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 |
Public Member Functions inherited from BDSArray3DCoords | |
| 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. | |
Public Member Functions inherited from BDSArray4DCoords | |
| 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 std::ostream & | Print (std::ostream &out) const |
| 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. | |
Public Member Functions inherited from BDSArray4D | |
| 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. | |
| 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 | |
Protected Member Functions inherited from BDSArray4DCoords | |
| void | BuildDimensionIndex () |
| Build up an array of ints based on the order of dimensions stored in the array. | |
Protected Attributes inherited from BDSArray4DCoords | |
| 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. | |
Protected Attributes inherited from BDSArray4D | |
| 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.