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

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

Private Member Functions

BDSSimpleComponent * CommonConstruction (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 43 of file BDSCurvilinearFactory.hh.

Constructor & Destructor Documentation

◆ BDSCurvilinearFactory()

BDSCurvilinearFactory::BDSCurvilinearFactory ( )

Definition at line 36 of file BDSCurvilinearFactory.cc.

◆ ~BDSCurvilinearFactory()

BDSCurvilinearFactory::~BDSCurvilinearFactory ( )

Definition at line 40 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 121 of file BDSCurvilinearFactory.cc.

References BDSGlobalConstants::Instance().

Referenced by CreateCurvilinearVolume(), and 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 107 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 62 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 86 of file BDSCurvilinearFactory.hh.

Referenced by CreateCurvilinearVolume(), and CreateCurvilinearVolume().


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