BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Factory for elliptical tunnel segments. Builds floor, tunnel and soil. More...
#include <BDSTunnelFactoryElliptical.hh>
Public Member Functions | |
virtual BDSTunnelSection * | CreateTunnelSection (G4String name, G4double length, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible) |
Create a tunnel section with flat input and output faces. | |
virtual BDSTunnelSection * | CreateTunnelSectionAngled (G4String name, G4double length, G4ThreeVector inputFace, G4ThreeVector outputFace, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible) |
Create a tunnel section with an angled input and output face. | |
![]() | |
virtual BDSTunnelSection * | CreateTunnelSection (G4String name, G4double length, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible)=0 |
Create a tunnel section with flat input and output faces. Pure virtual. | |
virtual BDSTunnelSection * | CreateTunnelSectionAngledIn (G4String name, G4double length, G4double angleIn, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible) |
virtual BDSTunnelSection * | CreateTunnelSectionAngledOut (G4String name, G4double length, G4double angleOut, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible) |
virtual BDSTunnelSection * | CreateTunnelSectionAngledInOut (G4String name, G4double length, G4double angleIn, G4double angleOut, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible) |
virtual BDSTunnelSection * | CreateTunnelSectionAngled (G4String name, G4double length, G4ThreeVector inputFaceIn, G4ThreeVector outputFaceIn, G4double tunnelThickness, G4double tunnelSoilThickness, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4bool tunnelFloor, G4double tunnelFloorOffset, G4double tunnel1, G4double tunnel2, G4bool visible)=0 |
Create a tunnel section with an angled input and output face. Pure virtual. | |
virtual | ~BDSTunnelFactoryBase () |
Virtual base destructor. | |
![]() | |
virtual void | FactoryBaseCleanUp () |
Empty containers for next use - factories are never deleted so can't rely on scope. | |
Private Member Functions | |
void | TestInputParameters (G4double &length, G4double &tunnelThickness, G4double &tunnelSoilThickness, G4Material *&tunnelMaterial, G4Material *&tunnelSoildMaterial, G4double &tunnelFloorOffset, G4double &tunnel1, G4double &tunnel2) |
functions below here are private to this particular factory | |
Additional Inherited Members | |
![]() | |
BDSTunnelFactoryBase () | |
protected default constructor so only derived classes can use it | |
void | CommontTestInputParameters (G4double &length, G4double &tunnelThickness, G4double &tunnelSoilThickness, G4Material *&tunnelMaterial, G4Material *&tunnelSoilMaterial) |
virtual void | CommonConstruction (G4String name, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial, G4double length, G4double containerXRadius, G4double contianerYRadius, G4bool visible) |
virtual void | BuildLogicalVolumes (G4String name, G4Material *tunnelMaterial, G4Material *tunnelSoilMaterial) |
Build logical volumes from solids + materials. | |
virtual void | SetVisAttributes (G4bool visible) |
Set the visual attributes for each logical volume. | |
virtual void | SetUserLimits () |
Set user limits for all logical volumes in the tunnel section. | |
virtual void | PrepareGeometryComponent (G4double containerXRadius, G4double containerYRadius, G4double containerZRadius) |
Prepare the assembled geometry component. | |
virtual void | PrepareTunnelSection (G4String name, G4double chordLength) |
Prepare the output BDSTunnelSection instance. | |
virtual void | SetSensitiveVolumes () |
Set the sensitive volumes. | |
virtual void | PlaceComponents (G4String name) |
Place components in container volume. | |
virtual void | CleanUp () |
![]() | |
BDSGeometryComponent * | tunnelComponent |
BDSTunnelSection * | tunnelSection |
G4VSolid * | containerSolid |
G4VSolid * | tunnelSolid |
G4VSolid * | soilSolid |
G4VSolid * | floorSolid |
G4VSolid * | intersectionSolid |
G4LogicalVolume * | containerLV |
G4LogicalVolume * | tunnelLV |
G4LogicalVolume * | soilLV |
G4LogicalVolume * | floorLV |
G4ThreeVector | floorDisplacement |
BDSTunnelInfo * | defaultModel |
G4double | cumulativeAngle |
![]() | |
std::set< G4LogicalVolume * > | allLogicalVolumes |
std::set< G4VPhysicalVolume * > | allPhysicalVolumes |
std::set< G4RotationMatrix * > | allRotationMatrices |
std::set< G4UserLimits * > | allUserLimits |
std::set< G4VSolid * > | allSolids |
std::set< G4VisAttributes * > | allVisAttributes |
G4double | lengthSafety |
Cache of global constants variable. | |
G4double | lengthSafetyLarge |
Cache of global constants variable. | |
G4bool | checkOverlaps |
Cache of global constants variable. | |
G4bool | visDebug |
Cache of global constants variable. | |
G4int | nSegmentsPerCircle |
Cache of global constants variable. | |
G4VisAttributes * | containerVisAttr |
Cache of global constants variable. | |
G4UserLimits * | defaultUserLimits |
Cache of global constants variable. | |
Factory for elliptical tunnel segments. Builds floor, tunnel and soil.
Definition at line 34 of file BDSTunnelFactoryElliptical.hh.
BDSTunnelFactoryElliptical::BDSTunnelFactoryElliptical | ( | ) |
Definition at line 41 of file BDSTunnelFactoryElliptical.cc.
|
inlinevirtual |
Definition at line 38 of file BDSTunnelFactoryElliptical.hh.
|
virtual |
Create a tunnel section with flat input and output faces.
Implements BDSTunnelFactoryBase.
Definition at line 44 of file BDSTunnelFactoryElliptical.cc.
References BDSTunnelFactoryBase::CleanUp(), BDSFactoryBase::lengthSafety, and TestInputParameters().
|
virtual |
Create a tunnel section with an angled input and output face.
Implements BDSTunnelFactoryBase.
Definition at line 217 of file BDSTunnelFactoryElliptical.cc.
References BDSTunnelFactoryBase::CleanUp(), BDSFactoryBase::lengthSafety, and TestInputParameters().
|
private |
functions below here are private to this particular factory
Test input parameters - this is only for basic viability not in comparison to the accelerator model or other components
Definition at line 436 of file BDSTunnelFactoryElliptical.cc.
References BDSTunnelInfo::aper1, BDSTunnelInfo::aper2, and BDSTunnelFactoryBase::CommontTestInputParameters().
Referenced by CreateTunnelSection(), and CreateTunnelSectionAngled().