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

The main interface for using the beam pipe factories. More...

#include <BDSBeamPipeFactory.hh>

Collaboration diagram for BDSBeamPipeFactory:
Collaboration graph

Public Member Functions

BDSBeamPipeCreateBeamPipe (const G4String &name, G4double length, BDSBeamPipeInfo *bpi)
 
BDSBeamPipeCreateBeamPipeForVacuumIntersection (const G4String &name, G4double length, BDSBeamPipeInfo *info)
 
BDSBeamPipeCreateBeamPipe (BDSBeamPipeType beamPipeTypeIn, const G4String &nameIn, G4double lengthIn, G4double aper1=0, G4double aper2=0, G4double aper3=0, G4double aper4=0, G4Material *vacuumMaterialIn=nullptr, G4double beamPipeThicknessIn=0, G4Material *beamPipeMaterialIn=nullptr, const G4String &pointsFileIn="", const G4String &pointsUnitIn="")
 
BDSBeamPipeCreateBeamPipe (BDSBeamPipeType beamPipeType, const G4String &name, G4double length, const G4ThreeVector &inputFaceNormal, const G4ThreeVector &outputFaceNormal, G4double aper1, G4double aper2, G4double aper3, G4double aper4, G4Material *vacuumMaterial, G4double beamPipeThickness, G4Material *beamPipeMaterial, const G4String &pointsFileIn="", const G4String &pointsUnitIn="")
 

Static Public Member Functions

static BDSBeamPipeFactoryInstance ()
 Singleton accessor.
 

Private Member Functions

 BDSBeamPipeFactory ()
 Private constructor as singleton pattern.
 
BDSBeamPipeFactoryBaseGetAppropriateFactory (BDSBeamPipeType beamPipeTypeIn)
 Return the appropriate factory singleton pointer given a type.
 

Private Attributes

BDSBeamPipeFactoryBasecircular
 Factory instance.
 
BDSBeamPipeFactoryBaseelliptical
 Factory instance.
 
BDSBeamPipeFactoryBaserectangular
 Factory instance.
 
BDSBeamPipeFactoryBaselhc
 Factory instance.
 
BDSBeamPipeFactoryBaselhcdetailed
 Factory instance.
 
BDSBeamPipeFactoryBaserectellipse
 Factory instance.
 
BDSBeamPipeFactoryBaseracetrack
 Factory instance.
 
BDSBeamPipeFactoryBaserhombus
 Factory instance.
 
BDSBeamPipeFactoryBaseoctagonal
 Factory instance.
 
BDSBeamPipeFactoryBasecircularvacuum
 Factory instance.
 
BDSBeamPipeFactoryBaseclicpcl
 Factory instance.
 
BDSBeamPipeFactoryBasepointsfile
 Factory instance.
 

Static Private Attributes

static BDSBeamPipeFactoryinstance = nullptr
 Singleton instance pointer.
 

Detailed Description

The main interface for using the beam pipe factories.

Each function in this class mirrors one in BDSBeamPipeFactoryBase but with the addition of a BDSBeamPipeType enum as an argument. This factory dispatches the call to the correct factory and should be the only one used by the caller.

Author
Laurie Nevay

Definition at line 44 of file BDSBeamPipeFactory.hh.

Constructor & Destructor Documentation

◆ ~BDSBeamPipeFactory()

BDSBeamPipeFactory::~BDSBeamPipeFactory ( )

Definition at line 65 of file BDSBeamPipeFactory.cc.

◆ BDSBeamPipeFactory()

BDSBeamPipeFactory::BDSBeamPipeFactory ( )
private

Private constructor as singleton pattern.

Definition at line 49 of file BDSBeamPipeFactory.cc.

References circular, circularvacuum, clicpcl, elliptical, lhc, lhcdetailed, octagonal, pointsfile, racetrack, rectangular, rectellipse, and rhombus.

Referenced by Instance().

Here is the caller graph for this function:

Member Function Documentation

◆ CreateBeamPipe() [1/3]

BDSBeamPipe * BDSBeamPipeFactory::CreateBeamPipe ( BDSBeamPipeType  beamPipeType,
const G4String &  name,
G4double  length,
const G4ThreeVector &  inputFaceNormal,
const G4ThreeVector &  outputFaceNormal,
G4double  aper1,
G4double  aper2,
G4double  aper3,
G4double  aper4,
G4Material *  vacuumMaterial,
G4double  beamPipeThickness,
G4Material *  beamPipeMaterial,
const G4String &  pointsFileIn = "",
const G4String &  pointsUnitIn = "" 
)

Definition at line 194 of file BDSBeamPipeFactory.cc.

◆ CreateBeamPipe() [2/3]

BDSBeamPipe * BDSBeamPipeFactory::CreateBeamPipe ( BDSBeamPipeType  beamPipeTypeIn,
const G4String &  nameIn,
G4double  lengthIn,
G4double  aper1 = 0,
G4double  aper2 = 0,
G4double  aper3 = 0,
G4double  aper4 = 0,
G4Material *  vacuumMaterialIn = nullptr,
G4double  beamPipeThicknessIn = 0,
G4Material *  beamPipeMaterialIn = nullptr,
const G4String &  pointsFileIn = "",
const G4String &  pointsUnitIn = "" 
)

Definition at line 175 of file BDSBeamPipeFactory.cc.

◆ CreateBeamPipe() [3/3]

BDSBeamPipe * BDSBeamPipeFactory::CreateBeamPipe ( const G4String &  name,
G4double  length,
BDSBeamPipeInfo bpi 
)

Definition at line 137 of file BDSBeamPipeFactory.cc.

◆ CreateBeamPipeForVacuumIntersection()

BDSBeamPipe * BDSBeamPipeFactory::CreateBeamPipeForVacuumIntersection ( const G4String &  name,
G4double  length,
BDSBeamPipeInfo info 
)

Create a circular vacuum volume that's smaller than the aperture definition by length safety large suitable for intersections with something that should fit in the vacuum of a beam pipe that would be created with the same recipe.

Definition at line 119 of file BDSBeamPipeFactory.cc.

References BDSBeamPipeInfo::aper1, BDSBeamPipeInfo::aper2, BDSBeamPipeInfo::aper3, BDSBeamPipeInfo::aper4, BDSBeamPipeInfo::beamPipeMaterial, BDSBeamPipeInfo::beamPipeThickness, BDSGlobalConstants::Instance(), BDSBeamPipeInfo::ShrinkBy(), and BDSBeamPipeInfo::vacuumMaterial.

Here is the call graph for this function:

◆ GetAppropriateFactory()

BDSBeamPipeFactoryBase * BDSBeamPipeFactory::GetAppropriateFactory ( BDSBeamPipeType  beamPipeTypeIn)
private

Return the appropriate factory singleton pointer given a type.

Definition at line 82 of file BDSBeamPipeFactory.cc.

References circular, circularvacuum, clicpcl, elliptical, lhc, lhcdetailed, octagonal, pointsfile, racetrack, rectangular, rectellipse, rhombus, and BDSTypeSafeEnum< def, inner >::underlying().

Here is the call graph for this function:

◆ Instance()

BDSBeamPipeFactory * BDSBeamPipeFactory::Instance ( )
static

Field Documentation

◆ circular

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::circular
private

Factory instance.

Definition at line 98 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ circularvacuum

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::circularvacuum
private

Factory instance.

Definition at line 107 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ clicpcl

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::clicpcl
private

Factory instance.

Definition at line 108 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ elliptical

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::elliptical
private

Factory instance.

Definition at line 99 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ instance

BDSBeamPipeFactory * BDSBeamPipeFactory::instance = nullptr
staticprivate

Singleton instance pointer.

Definition at line 92 of file BDSBeamPipeFactory.hh.

Referenced by Instance().

◆ lhc

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::lhc
private

Factory instance.

Definition at line 101 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ lhcdetailed

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::lhcdetailed
private

Factory instance.

Definition at line 102 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ octagonal

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::octagonal
private

Factory instance.

Definition at line 106 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ pointsfile

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::pointsfile
private

Factory instance.

Definition at line 109 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ racetrack

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::racetrack
private

Factory instance.

Definition at line 104 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rectangular

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rectangular
private

Factory instance.

Definition at line 100 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rectellipse

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rectellipse
private

Factory instance.

Definition at line 103 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rhombus

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rhombus
private

Factory instance.

Definition at line 105 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().


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