BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes
BDSTunnelFactoryRectAboveGround Class Reference

Factory for rectangular tunnel segments above ground. More...

#include <BDSTunnelFactoryRectAboveGround.hh>

Inheritance diagram for BDSTunnelFactoryRectAboveGround:
Inheritance graph
Collaboration diagram for BDSTunnelFactoryRectAboveGround:
Collaboration graph

Public Member Functions

virtual BDSTunnelSectionCreateTunnelSection (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 BDSTunnelSectionCreateTunnelSectionAngled (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.
 
- Public Member Functions inherited from BDSTunnelFactoryBase
virtual BDSTunnelSectionCreateTunnelSection (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 BDSTunnelSectionCreateTunnelSectionAngledIn (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 BDSTunnelSectionCreateTunnelSectionAngledOut (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 BDSTunnelSectionCreateTunnelSectionAngledInOut (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 BDSTunnelSectionCreateTunnelSectionAngled (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.
 
- Public Member Functions inherited from BDSFactoryBase
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 &tunnel1, G4double &tunnel2)
 functions below here are private to this particular factory
 
virtual void CleanUp ()
 
G4VSolid * BuildContainerStraight (G4String name, G4double lengthIn, G4double tunnel1, G4double tunnel2, G4double tunnelThickness, G4ThreeVector slabDisplacement)
 

Private Attributes

G4VSolid * slabSolid
 
G4double slabXHalfWidth
 
G4double slabYHalfWidth
 
G4double containerXRadius
 
G4double containerYRadius
 

Additional Inherited Members

- Protected Member Functions inherited from BDSTunnelFactoryBase
 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 ()
 
- Protected Attributes inherited from BDSTunnelFactoryBase
BDSGeometryComponenttunnelComponent
 
BDSTunnelSectiontunnelSection
 
G4VSolid * containerSolid
 
G4VSolid * tunnelSolid
 
G4VSolid * soilSolid
 
G4VSolid * floorSolid
 
G4VSolid * intersectionSolid
 
G4LogicalVolume * containerLV
 
G4LogicalVolume * tunnelLV
 
G4LogicalVolume * soilLV
 
G4LogicalVolume * floorLV
 
G4ThreeVector floorDisplacement
 
BDSTunnelInfodefaultModel
 
G4double cumulativeAngle
 
- Protected Attributes inherited from BDSFactoryBase
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.
 

Detailed Description

Factory for rectangular tunnel segments above ground.

There is no soil. Builds tunnel, floor (optional) and concrete slab that it all sits on.

Author
Laurie Nevay

Definition at line 39 of file BDSTunnelFactoryRectAboveGround.hh.

Constructor & Destructor Documentation

◆ BDSTunnelFactoryRectAboveGround()

BDSTunnelFactoryRectAboveGround::BDSTunnelFactoryRectAboveGround ( )

Definition at line 40 of file BDSTunnelFactoryRectAboveGround.cc.

◆ ~BDSTunnelFactoryRectAboveGround()

virtual BDSTunnelFactoryRectAboveGround::~BDSTunnelFactoryRectAboveGround ( )
inlinevirtual

Definition at line 43 of file BDSTunnelFactoryRectAboveGround.hh.

Member Function Documentation

◆ BuildContainerStraight()

G4VSolid * BDSTunnelFactoryRectAboveGround::BuildContainerStraight ( G4String  name,
G4double  lengthIn,
G4double  tunnel1,
G4double  tunnel2,
G4double  tunnelThickness,
G4ThreeVector  slabDisplacement 
)
private

Definition at line 236 of file BDSTunnelFactoryRectAboveGround.cc.

◆ CleanUp()

void BDSTunnelFactoryRectAboveGround::CleanUp ( )
privatevirtual

Reset factory members for next usage - avoids previously constructed parts being accidently used in new object

Reimplemented from BDSTunnelFactoryBase.

Definition at line 49 of file BDSTunnelFactoryRectAboveGround.cc.

References BDSTunnelFactoryBase::CleanUp().

Referenced by CreateTunnelSection(), and CreateTunnelSectionAngled().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateTunnelSection()

BDSTunnelSection * BDSTunnelFactoryRectAboveGround::CreateTunnelSection ( G4String  name,
G4double  length,
G4double  tunnelThickness,
G4double  tunnelSoilThickness,
G4Material *  tunnelMaterial,
G4Material *  tunnelSoilMaterial,
G4bool  tunnelFloor,
G4double  tunnelFloorOffset,
G4double  tunnel1,
G4double  tunnel2,
G4bool  visible 
)
virtual

Create a tunnel section with flat input and output faces.

Implements BDSTunnelFactoryBase.

Definition at line 57 of file BDSTunnelFactoryRectAboveGround.cc.

References CleanUp(), BDSFactoryBase::lengthSafety, and TestInputParameters().

Here is the call graph for this function:

◆ CreateTunnelSectionAngled()

BDSTunnelSection * BDSTunnelFactoryRectAboveGround::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 
)
virtual

Create a tunnel section with an angled input and output face.

Implements BDSTunnelFactoryBase.

Definition at line 124 of file BDSTunnelFactoryRectAboveGround.cc.

References CleanUp(), BDSFactoryBase::lengthSafety, and TestInputParameters().

Here is the call graph for this function:

◆ TestInputParameters()

void BDSTunnelFactoryRectAboveGround::TestInputParameters ( G4double &  length,
G4double &  tunnelThickness,
G4double &  tunnelSoilThickness,
G4Material *&  tunnelMaterial,
G4Material *&  tunnelSoildMaterial,
G4double &  tunnel1,
G4double &  tunnel2 
)
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 219 of file BDSTunnelFactoryRectAboveGround.cc.

References BDSTunnelInfo::aper1, BDSTunnelInfo::aper2, BDSTunnelFactoryBase::CommontTestInputParameters(), and BDS::IsFinite().

Referenced by CreateTunnelSection(), and CreateTunnelSectionAngled().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ containerXRadius

G4double BDSTunnelFactoryRectAboveGround::containerXRadius
private

Definition at line 97 of file BDSTunnelFactoryRectAboveGround.hh.

◆ containerYRadius

G4double BDSTunnelFactoryRectAboveGround::containerYRadius
private

Definition at line 98 of file BDSTunnelFactoryRectAboveGround.hh.

◆ slabSolid

G4VSolid* BDSTunnelFactoryRectAboveGround::slabSolid
private

Definition at line 93 of file BDSTunnelFactoryRectAboveGround.hh.

◆ slabXHalfWidth

G4double BDSTunnelFactoryRectAboveGround::slabXHalfWidth
private

Definition at line 94 of file BDSTunnelFactoryRectAboveGround.hh.

◆ slabYHalfWidth

G4double BDSTunnelFactoryRectAboveGround::slabYHalfWidth
private

Definition at line 95 of file BDSTunnelFactoryRectAboveGround.hh.


The documentation for this class was generated from the following files: