Public Member Functions | |
BDSCollimatorBase (G4String name, G4double length, G4double outerDiameter, G4String type, G4double xApertureIn=0, G4double yApertureIn=0, G4String collimatorMaterial="copper", G4String vacuumMaterial="vacuum", BDSTiltOffset tiltOffset=BDSTiltOffset()) | |
~BDSCollimatorBase () | |
Protected Member Functions | |
virtual void | Build () |
virtual void | BuildContainerLogicalVolume () |
virtual void | BuildInnerCollimator ()=0 |
Protected Attributes | |
G4VSolid * | collimatorSolid |
G4VSolid * | innerSolid |
G4VSolid * | vacuumSolid |
G4double | outerDiameter |
G4double | xAperture |
G4double | yAperture |
G4String | collimatorMaterial |
G4String | vacuumMaterial |
Definition at line 17 of file BDSCollimatorBase.hh.
void BDSCollimatorBase::Build | ( | ) | [protected, virtual] |
Build the container only. Should be overridden by derived class to add more geometry apart from the container volume. The overridden Build() function can however, call make use of this function to call BuildContainerLogicalVolume() by calling BDSAcceleratorComponent::Build() at the beginning.
Reimplemented from BDSAcceleratorComponent.
Definition at line 66 of file BDSCollimatorBase.cc.
References BDSAcceleratorComponent::Build(), BuildInnerCollimator(), BDSAcceleratorComponent::chordLength, collimatorMaterial, collimatorSolid, BDSGeometryComponent::containerLogicalVolume, BDSMaterials::GetMaterial(), innerSolid, BDSGlobalConstants::Instance(), BDSMaterials::Instance(), BDS::IsFinite(), BDSAcceleratorComponent::lengthSafety, BDSAcceleratorComponent::name, outerDiameter, BDSGeometryComponent::RegisterLogicalVolume(), BDSGeometryComponent::RegisterSensitiveVolume(), vacuumMaterial, vacuumSolid, xAperture, and yAperture.
Here is the call graph for this function:
void BDSCollimatorBase::BuildContainerLogicalVolume | ( | ) | [protected, virtual] |
Build the container solid and logical volume that all parts of the component will contained within - must be provided by derived class.
Implements BDSAcceleratorComponent.
Definition at line 54 of file BDSCollimatorBase.cc.
References BDSAcceleratorComponent::chordLength, BDSGeometryComponent::containerLogicalVolume, BDSGeometryComponent::containerSolid, BDSAcceleratorComponent::emptyMaterial, BDSAcceleratorComponent::name, and outerDiameter.
virtual void BDSCollimatorBase::BuildInnerCollimator | ( | ) | [protected, pure virtual] |
Pure virtual function to be provided by derived classes. Must produce vacuumSolid and innerSolid - the inner is used to subtract from the mass and the vacuum is placed inside it all
Implemented in BDSCollimatorElliptical, and BDSCollimatorRectangular.
Referenced by Build().
Here is the caller graph for this function: