19#include "BDSCollimatorElliptical.hh"
21#include "BDSUtilities.hh"
22#include "BDSWarning.hh"
25#include "G4EllipticalTube.hh"
26#include "G4EllipticalCone.hh"
31 G4double horizontalWidthIn,
32 G4Material* collimatorMaterialIn,
33 G4Material* vacuumMaterialIn,
36 G4double xApertureOutIn,
37 G4double yApertureOutIn,
39 G4bool circularOuterIn):
41 collimatorMaterialIn, vacuumMaterialIn,
42 xApertureIn, yApertureIn, xApertureOutIn, yApertureOutIn, colourIn, circularOuterIn)
52 {BDS::Warning(__METHOD_NAME__,
"element: \"" +
name +
"\": X/Y half axes ratio at entrance and exit apertures are not equal");}
const G4String name
Const protected member variable that may not be changed by derived classes.
static G4double lengthSafety
Useful variable often used in construction.
G4double chordLength
Protected member variable that can be modified by derived classes.
BDSCollimatorElliptical()
Private default constructor to force the use of the supplied one.
virtual void CheckParameters()
virtual void BuildInnerCollimator()
Base class for collimators with common construction.
G4double xAperture
Aperture at entrance in x dimension.
G4bool tapered
Flag for tapered collimator.
G4double yApertureOut
Aperture at exit in y dimension.
G4VSolid * innerSolid
Geometrical objects:
virtual void CheckParameters()
G4double xApertureOut
Aperture at exit in x dimension.
G4VSolid * vacuumSolid
Geometrical objects:
G4double yAperture
Aperture at entrance in y dimension.
void RegisterSolid(G4VSolid *solid)
G4bool IsFinite(G4double value, G4double tolerance=std::numeric_limits< double >::epsilon())