19#ifndef BDSBEAMPIPEFACTORY_H
20#define BDSBEAMPIPEFACTORY_H
22#include "BDSBeamPipeType.hh"
25#include "G4ThreeVector.hh"
63 const G4String& nameIn,
69 G4Material* vacuumMaterialIn =
nullptr,
70 G4double beamPipeThicknessIn = 0,
71 G4Material* beamPipeMaterialIn =
nullptr,
72 const G4String& pointsFileIn =
"",
73 const G4String& pointsUnitIn =
"");
78 const G4ThreeVector& inputFaceNormal,
79 const G4ThreeVector& outputFaceNormal,
84 G4Material* vacuumMaterial,
85 G4double beamPipeThickness,
86 G4Material* beamPipeMaterial,
87 const G4String& pointsFileIn =
"",
88 const G4String& pointsUnitIn =
"");
Abstract base class for beampipe factory classes.
The main interface for using the beam pipe factories.
BDSBeamPipeFactoryBase * racetrack
Factory instance.
BDSBeamPipeFactoryBase * rhombus
Factory instance.
BDSBeamPipeFactoryBase * elliptical
Factory instance.
static BDSBeamPipeFactory * instance
Singleton instance pointer.
BDSBeamPipe * CreateBeamPipeForVacuumIntersection(const G4String &name, G4double length, BDSBeamPipeInfo *info)
BDSBeamPipeFactoryBase * circularvacuum
Factory instance.
BDSBeamPipeFactoryBase * GetAppropriateFactory(BDSBeamPipeType beamPipeTypeIn)
Return the appropriate factory singleton pointer given a type.
static BDSBeamPipeFactory * Instance()
Singleton accessor.
BDSBeamPipeFactoryBase * rectellipse
Factory instance.
BDSBeamPipeFactoryBase * lhc
Factory instance.
BDSBeamPipeFactoryBase * clicpcl
Factory instance.
BDSBeamPipeFactoryBase * pointsfile
Factory instance.
BDSBeamPipeFactoryBase * lhcdetailed
Factory instance.
BDSBeamPipeFactory()
Private constructor as singleton pattern.
BDSBeamPipeFactoryBase * rectangular
Factory instance.
BDSBeamPipeFactoryBase * octagonal
Factory instance.
BDSBeamPipeFactoryBase * circular
Factory instance.
Holder class for all information required to describe a beam pipe model.
A holder class for a piece of beam pipe geometry.