27#include "G4ThreeVector.hh"
44 BDSExtent(
const std::pair<G4double, G4double>& extXIn,
45 const std::pair<G4double, G4double>& extYIn,
46 const std::pair<G4double, G4double>& extZIn);
48 BDSExtent(G4double extXNegIn, G4double extXPosIn,
49 G4double extYNegIn, G4double extYPosIn,
50 G4double extZNegIn, G4double extZPosIn);
52 BDSExtent(G4double extXIn, G4double extYIn, G4double extZIn);
54 BDSExtent(G4ThreeVector extInNeg, G4ThreeVector extInPos);
108 G4bool
Encompasses(
const G4ThreeVector& point)
const;
117 G4double z)
const {
return Encompasses(G4ThreeVector(x,y,z));}
141 G4double MaximumX()
const {
return std::max(std::abs(
extXNeg), std::abs(
extXPos));}
142 G4double MaximumY()
const {
return std::max(std::abs(
extYNeg), std::abs(
extYPos));}
143 G4double MaximumZ()
const {
return std::max(std::abs(
extZNeg), std::abs(
extZPos));}
180 return xOK && yOK && zOK;
188 return xOK && yOK && zOK;
Holder for +- extents in 3 dimensions.
std::pair< G4double, G4double > ExtentX() const
Accessor.
G4double XPos() const
Accessor.
BDSExtent Tilted(G4double angle) const
Provide a new copy of this extent but rotated along Z by a given tilt angle.
BDSExtent Translate(const G4ThreeVector &offset) const
Provide a new copy of this extent with an offset applied.
G4bool operator==(const BDSExtent &r) const
Equality operator.
G4ThreeVector ExtentNegative() const
Accessor.
std::vector< G4ThreeVector > AllBoundaryPoints() const
All 8 boundary points of the bounding box.
G4bool operator<=(const BDSExtent &r) const
Comparison operator.
G4bool TransverselyGreaterEquals(const BDSExtent &r) const
Comparison operator for x,y only. Ignores z (length).
BDSExtent()
Default constructor gives 0 in all extents - typically unphysical.
G4bool TransverselyGreaterThan(const BDSExtent &r) const
Comparison operator for x,y only. Ignores z (length).
G4bool Encompasses(G4double x, G4double y, G4double z) const
Return whether the extent encompasses the point. Similar, but with separate x,y,z coordinates.
G4bool operator>=(const BDSExtent &r) const
Comparison operator.
G4bool operator>(const BDSExtent &r) const
Comparison operator.
friend std::ostream & operator<<(std::ostream &out, BDSExtent const &ext)
Output stream.
G4double ZPos() const
Accessor.
G4ThreeVector ExtentPositive() const
Accessor.
G4double MaximumAbsTransverse() const
Return the maximum absolute value considering only x,y.
BDSExtent ExpandBy(G4double margin) const
Return a copy expanded in all dimensions by the given margin.
G4bool Encompasses(const G4ThreeVector &point) const
Return whether the extent encompasses the point. True if point lies inside the extent.
G4double MaximumAbs() const
Return the maximum absolute value considering all dimensions.
void ExpandToEncompass(const BDSExtent &other)
G4double XNeg() const
Accessor.
G4bool operator!=(const BDSExtent &r) const
Equality operator.
G4double DZ() const
The difference in a dimension.
G4double YNeg() const
Accessor.
G4bool operator<(const BDSExtent &r) const
Comparison operator.
BDSExtent TiltOffset(const BDSTiltOffset *tiltOffset) const
Provide a new copy of this extent with both a tilt and an offset applied.
std::pair< G4double, G4double > ExtentZ() const
Accessor.
G4double MinimumAbsTransverse() const
Return the minimum absolute value considering only x,y.
G4double DX() const
The difference in a dimension.
std::pair< G4double, G4double > ExtentY() const
Accessor.
G4double MinimumAbs() const
Return the minimum absolute value considering all dimensions.
G4bool TransverselyLessEquals(const BDSExtent &r) const
Comparison operator for x,y only. Ignores z (length).
G4double DY() const
The difference in a dimension.
G4bool TransverselyLessThan(const BDSExtent &r) const
Comparison operator for x,y only. Ignores z (length).
BDSExtent ExpandTransverselyBy(G4double margin) const
Return a copy expanded in x and y by the given margin.
G4double YPos() const
Accessor.
G4double ZNeg() const
Accessor.
G4double TransverseBoundingRadius() const
Return a radius that would encompass the maximum x,y extent.
A set of particle coordinates.
A holder for any placement offsets and rotations for a BDSAcceleratorComponent.
Return either G4Tubs or G4CutTubs depending on flat face.
BDSExtent MaximumCombinedExtent(const BDSExtent &first, const BDSExtent &second)
Returns the extent which is the greatest extent in all six directions.