BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
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)
 
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. More...
 

Private Member Functions

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

Private Attributes

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

Static Private Attributes

static BDSBeamPipeFactoryinstance = nullptr
 Singleton instance pointer. More...
 

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 62 of file BDSBeamPipeFactory.cc.

◆ BDSBeamPipeFactory()

BDSBeamPipeFactory::BDSBeamPipeFactory ( )
private

Private constructor as singleton pattern.

Definition at line 47 of file BDSBeamPipeFactory.cc.

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

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 170 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 151 of file BDSBeamPipeFactory.cc.

◆ CreateBeamPipe() [3/3]

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

Definition at line 113 of file BDSBeamPipeFactory.cc.

◆ GetAppropriateFactory()

BDSBeamPipeFactoryBase * BDSBeamPipeFactory::GetAppropriateFactory ( BDSBeamPipeType  beamPipeTypeIn)
private

Return the appropriate factory singleton pointer given a type.

Definition at line 78 of file BDSBeamPipeFactory.cc.

References circular, circularvacuum, clicpcl, elliptical, lhc, lhcdetailed, octagonal, pointsfile, racetrack, rectangular, rectellipse, 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 91 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ circularvacuum

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::circularvacuum
private

Factory instance.

Definition at line 99 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ clicpcl

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::clicpcl
private

Factory instance.

Definition at line 100 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ elliptical

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::elliptical
private

Factory instance.

Definition at line 92 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ instance

BDSBeamPipeFactory * BDSBeamPipeFactory::instance = nullptr
staticprivate

Singleton instance pointer.

Definition at line 85 of file BDSBeamPipeFactory.hh.

Referenced by Instance().

◆ lhc

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::lhc
private

Factory instance.

Definition at line 94 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ lhcdetailed

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::lhcdetailed
private

Factory instance.

Definition at line 95 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ octagonal

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::octagonal
private

Factory instance.

Definition at line 98 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ pointsfile

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::pointsfile
private

Factory instance.

Definition at line 101 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ racetrack

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::racetrack
private

Factory instance.

Definition at line 97 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rectangular

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rectangular
private

Factory instance.

Definition at line 93 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rectellipse

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rectellipse
private

Factory instance.

Definition at line 96 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().


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