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

BDSBeamPipe * CreateBeamPipe (const G4String &name, G4double length, BDSBeamPipeInfo *bpi)
 
BDSBeamPipe * CreateBeamPipeForVacuumIntersection (const G4String &name, G4double length, BDSBeamPipeInfo *info)
 
BDSBeamPipe * 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="")
 
BDSBeamPipe * 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="")
 

Static Public Member Functions

static BDSBeamPipeFactory * Instance ()
 Singleton accessor.
 

Private Member Functions

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

Private Attributes

BDSBeamPipeFactoryBase * circular
 Factory instance.
 
BDSBeamPipeFactoryBase * elliptical
 Factory instance.
 
BDSBeamPipeFactoryBase * rectangular
 Factory instance.
 
BDSBeamPipeFactoryBase * lhc
 Factory instance.
 
BDSBeamPipeFactoryBase * lhcdetailed
 Factory instance.
 
BDSBeamPipeFactoryBase * rectellipse
 Factory instance.
 
BDSBeamPipeFactoryBase * racetrack
 Factory instance.
 
BDSBeamPipeFactoryBase * rhombus
 Factory instance.
 
BDSBeamPipeFactoryBase * octagonal
 Factory instance.
 
BDSBeamPipeFactoryBase * circularvacuum
 Factory instance.
 
BDSBeamPipeFactoryBase * clicpcl
 Factory instance.
 
BDSBeamPipeFactoryBase * pointsfile
 Factory instance.
 

Static Private Attributes

static BDSBeamPipeFactory * instance = 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 43 of file BDSBeamPipeFactory.hh.

Constructor & Destructor Documentation

◆ ~BDSBeamPipeFactory()

BDSBeamPipeFactory::~BDSBeamPipeFactory ( )

Definition at line 64 of file BDSBeamPipeFactory.cc.

◆ BDSBeamPipeFactory()

BDSBeamPipeFactory::BDSBeamPipeFactory ( )
private

Private constructor as singleton pattern.

Definition at line 48 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 193 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 174 of file BDSBeamPipeFactory.cc.

◆ CreateBeamPipe() [3/3]

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

Definition at line 136 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 118 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 81 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 97 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ circularvacuum

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::circularvacuum
private

Factory instance.

Definition at line 106 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ clicpcl

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::clicpcl
private

Factory instance.

Definition at line 107 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ elliptical

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::elliptical
private

Factory instance.

Definition at line 98 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ instance

BDSBeamPipeFactory * BDSBeamPipeFactory::instance = nullptr
staticprivate

Singleton instance pointer.

Definition at line 91 of file BDSBeamPipeFactory.hh.

Referenced by Instance().

◆ lhc

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::lhc
private

Factory instance.

Definition at line 100 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ lhcdetailed

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::lhcdetailed
private

Factory instance.

Definition at line 101 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ octagonal

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::octagonal
private

Factory instance.

Definition at line 105 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ pointsfile

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::pointsfile
private

Factory instance.

Definition at line 108 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ racetrack

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::racetrack
private

Factory instance.

Definition at line 103 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rectangular

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rectangular
private

Factory instance.

Definition at line 99 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rectellipse

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rectellipse
private

Factory instance.

Definition at line 102 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().

◆ rhombus

BDSBeamPipeFactoryBase* BDSBeamPipeFactory::rhombus
private

Factory instance.

Definition at line 104 of file BDSBeamPipeFactory.hh.

Referenced by BDSBeamPipeFactory(), and GetAppropriateFactory().


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