19#include "BDSComponentConstructor.hh"
20#include "BDSComponentFactoryUser.hh"
26BDSComponentFactoryUser::BDSComponentFactoryUser()
29BDSComponentFactoryUser::~BDSComponentFactoryUser()
32 {
delete constructor.second;}
Abstract class that represents a component of an accelerator.
A class that holds the current integrated quantities along a beam line.
Interface class the developer should derive to construct their element.
G4bool CanConstructComponentByName(const G4String &componentTypeName) const
Check whether a component can be constructed - ie if the name exists.
void RegisterComponent(const G4String &componentTypeName, BDSComponentConstructor *componentConstructor)
Register a constructor instance by a given name.
std::map< G4String, BDSComponentConstructor * > userFunctions
Map of user component name with constructors to build a component.
BDSAcceleratorComponent * ConstructComponent(const G4String &componentTypeName, GMAD::Element const *elementIn, GMAD::Element const *prevElementIn, GMAD::Element const *nextElementIn, const BDSBeamlineIntegral &integral)