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
BDSCurvilinearFactory Class Reference

Factory to create curvilinear geometry for parallel world. More...

#include <BDSCurvilinearFactory.hh>

Collaboration diagram for BDSCurvilinearFactory:
Collaboration graph

Public Member Functions

BDSSimpleComponentCreateCurvilinearVolume (const G4String &name, G4double chordLength, G4double radius)
 Build a straight curvilinear volume.
 
BDSSimpleComponentCreateCurvilinearVolume (const G4String &name, G4double arcLength, G4double chordLength, G4double radius, G4double angle, const G4ThreeVector &inputFaceNormal, const G4ThreeVector &outputFaceNormal, const BDSTiltOffset *tiltOffset=nullptr)
 
BDSSimpleComponentCreateCurvilinearVolume (const G4String &name, G4double arcLength, G4double chordLength, G4double radius, G4double angle, const BDSTiltOffset *tiltOffset=nullptr)
 

Private Member Functions

BDSSimpleComponentCommonConstruction (const G4String &name, G4double arcLength, G4double chordLength, G4double radius, G4VSolid *solid, G4double angle)
 

Private Attributes

const G4double lengthSafety
 Cache of length safety from BDSGlobalConstants.
 

Detailed Description

Factory to create curvilinear geometry for parallel world.

Creates cylinders for straight or angled sections that can be used in a parallel world (only!) for curvilinear coordinates. These have logical volumes with nullptr for material, so can therefore only be used in a parallel world.

The length supplied should be the full length desired. The length of the object returned will be this length - 2x length safety.

Author
Laurie Nevay

Definition at line 44 of file BDSCurvilinearFactory.hh.

Constructor & Destructor Documentation

◆ BDSCurvilinearFactory()

BDSCurvilinearFactory::BDSCurvilinearFactory ( )

Definition at line 37 of file BDSCurvilinearFactory.cc.

◆ ~BDSCurvilinearFactory()

BDSCurvilinearFactory::~BDSCurvilinearFactory ( )

Definition at line 41 of file BDSCurvilinearFactory.cc.

Member Function Documentation

◆ CommonConstruction()

BDSSimpleComponent * BDSCurvilinearFactory::CommonConstruction ( const G4String &  name,
G4double  arcLength,
G4double  chordLength,
G4double  radius,
G4VSolid *  solid,
G4double  angle 
)
private

Common construction. G4VSolid* can't be const as G4LogicalVolume won't take a const solid.

Definition at line 122 of file BDSCurvilinearFactory.cc.

References BDSGlobalConstants::Instance().

Referenced by CreateCurvilinearVolume().

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

◆ CreateCurvilinearVolume() [1/3]

BDSSimpleComponent * BDSCurvilinearFactory::CreateCurvilinearVolume ( const G4String &  name,
G4double  arcLength,
G4double  chordLength,
G4double  radius,
G4double  angle,
const BDSTiltOffset tiltOffset = nullptr 
)

Convenience method to use the angled method above but with the angle evently spit between each face.

Definition at line 108 of file BDSCurvilinearFactory.cc.

References BDS::CalculateFaces(), and CreateCurvilinearVolume().

Here is the call graph for this function:

◆ CreateCurvilinearVolume() [2/3]

BDSSimpleComponent * BDSCurvilinearFactory::CreateCurvilinearVolume ( const G4String &  name,
G4double  arcLength,
G4double  chordLength,
G4double  radius,
G4double  angle,
const G4ThreeVector &  inputFaceNormal,
const G4ThreeVector &  outputFaceNormal,
const BDSTiltOffset tiltOffset = nullptr 
)

Build a straight section of curvilinear geometry, but with angled faces - typically used for a bend section. Note this is straight though. The normal vectors are w.r.t. the chord of the volume to be built.

Definition at line 63 of file BDSCurvilinearFactory.cc.

References CommonConstruction(), BDSTiltOffset::GetTilt(), BDS::IsFinite(), and lengthSafety.

Here is the call graph for this function:

◆ CreateCurvilinearVolume() [3/3]

BDSSimpleComponent * BDSCurvilinearFactory::CreateCurvilinearVolume ( const G4String &  name,
G4double  chordLength,
G4double  radius 
)

Field Documentation

◆ lengthSafety

const G4double BDSCurvilinearFactory::lengthSafety
private

Cache of length safety from BDSGlobalConstants.

Definition at line 87 of file BDSCurvilinearFactory.hh.

Referenced by CreateCurvilinearVolume().


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