|
BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
1D array with spatial mapping derived from BDSArray4DCoords. More...
#include <BDSArray1DCoords.hh>


Public Member Functions | |
| BDSArray1DCoords ()=delete | |
| BDSArray1DCoords (G4int nX, G4double xMinIn, G4double xMaxIn, BDSDimensionType dimensionIn=BDSDimensionType::x) | |
| virtual void | ExtractSection2 (G4double x, BDSFieldValue(&localData)[2], G4double &xFrac) const |
| Extract 2 points lying around coordinate x. | |
| virtual void | ExtractSection4 (G4double x, BDSFieldValue(&localData)[4], G4double &xFrac) const |
| Extract 4 points lying around coordinate x, where x will be between points 2 and 3. | |
| virtual BDSFieldValue | ExtractNearest (G4double x, G4double y=0, G4double z=0, G4double t=0) const |
| Extract nearest field value from array. y,z,t ignored but required for overload. | |
| virtual BDSExtent | Extent () const |
Public Member Functions inherited from BDSArray2DCoords | |
| 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. | |
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, BDSArray1DCoords 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. | |
1D array with spatial mapping derived from BDSArray4DCoords.
Definition at line 37 of file BDSArray1DCoords.hh.
|
delete |
No default constructor as the array is not adjustable after construction and therefore the size must be known at construction time.
| BDSArray1DCoords::BDSArray1DCoords | ( | G4int | nX, |
| G4double | xMinIn, | ||
| G4double | xMaxIn, | ||
| BDSDimensionType | dimensionIn = BDSDimensionType::x |
||
| ) |
Definition at line 31 of file BDSArray1DCoords.cc.
|
inlinevirtual |
Definition at line 47 of file BDSArray1DCoords.hh.
|
virtual |
Return the SPATIAL (only) extent of this field without any offset. Ignores time. This override gives infinite limit in y,z, but accurate in x. TODO - check for if not in x,y,z order.
Reimplemented from BDSArray2DCoords.
Definition at line 90 of file BDSArray1DCoords.cc.
References BDSArray4DCoords::xMax, and BDSArray4DCoords::xMin.
Referenced by BDSInterpolator1D::Extent().

|
virtual |
Extract nearest field value from array. y,z,t ignored but required for overload.
Reimplemented from BDSArray2DCoords.
Reimplemented in BDSArray1DCoordsTransformed.
Definition at line 77 of file BDSArray1DCoords.cc.
References BDSArray4D::GetConst(), and BDSArray4DCoords::NearestX().
Referenced by BDSInterpolator1DNearest::GetInterpolatedValueT().


|
virtual |
Extract 2 points lying around coordinate x.
Reimplemented in BDSArray1DCoordsTransformed.
Definition at line 55 of file BDSArray1DCoords.cc.
References BDSArray4DCoords::ArrayCoordsFromX(), and BDSArray4D::GetConst().
Referenced by BDSInterpolator1DLinear::GetInterpolatedValueT(), and BDSInterpolator1DLinearMag::GetInterpolatedValueT().


|
virtual |
Extract 4 points lying around coordinate x, where x will be between points 2 and 3.
Reimplemented in BDSArray1DCoordsTransformed.
Definition at line 66 of file BDSArray1DCoords.cc.
References BDSArray4DCoords::ArrayCoordsFromX(), and BDSArray4D::GetConst().
Referenced by BDSInterpolator1DCubic::GetInterpolatedValueT().


|
friend |
Output stream.
Definition at line 85 of file BDSArray1DCoords.cc.