19#include "BDSCavityFactory.hh"
20#include "BDSCavityFactoryBase.hh"
21#include "BDSCavityFactoryElliptical.hh"
22#include "BDSCavityFactoryPillBox.hh"
23#include "BDSCavityFactoryRectangular.hh"
24#include "BDSCavityInfo.hh"
25#include "BDSCavityType.hh"
58 case BDSCavityType::elliptical:
60 case BDSCavityType::rectangular:
62 case BDSCavityType::pillbox:
71 G4double totalChordLength,
73 G4Material* vacuumMaterial)
77 return factory->
CreateCavity(name, totalChordLength, info, vacuumMaterial);
Abstract base class for rf cavity geometry factories.
BDSCavity * CreateCavity(G4String name, G4double totalChordLength, const BDSCavityInfo *info, G4Material *vacuumMaterial)
Factory for elliptical SRF cavity geometry.
Factory for elliptical SRF cavity geometry.
Factory for elliptical SRF cavity geometry.
Interface to create any RF cavity geometry.
BDSCavityFactoryPillBox * pillBox
Point to factory this main interface owns.
static BDSCavityFactory * instance
Singleton instance.
BDSCavityFactoryRectangular * rectangular
Point to factory this main interface owns.
BDSCavityFactory()
Private constructor as singleton pattern.
static BDSCavityFactory * Instance()
Singleton accessor.
BDSCavityFactoryElliptical * elliptical
Point to factory this main interface owns.
BDSCavity * CreateCavity(const G4String &name, G4double totalChordLength, const BDSCavityInfo *info, G4Material *vacuumMaterial)
Main function to create a piece of cavity geometry.
Holder for all Geometrical information required to create an RF cavity.
BDSCavityType cavityType
Cavity type.
A holder class for an RF cavity piece of geometry.
type underlying() const
return underlying value (can be used in switch statement)