19#ifndef BDSBEAMPIPEFACTORY_H
20#define BDSBEAMPIPEFACTORY_H
22#include "BDSBeamPipeType.hh"
25#include "G4ThreeVector.hh"
56 const G4String& nameIn,
62 G4Material* vacuumMaterialIn =
nullptr,
63 G4double beamPipeThicknessIn = 0,
64 G4Material* beamPipeMaterialIn =
nullptr,
65 const G4String& pointsFileIn =
"",
66 const G4String& pointsUnitIn =
"");
71 const G4ThreeVector& inputFaceNormal,
72 const G4ThreeVector& outputFaceNormal,
77 G4Material* vacuumMaterial,
78 G4double beamPipeThickness,
79 G4Material* beamPipeMaterial,
80 const G4String& pointsFileIn =
"",
81 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.
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.