GammaLib
2.0.0
|
Interface definition for the spectral model registry class. More...
#include <GModelSpectralRegistry.hpp>
Public Member Functions | |
GModelSpectralRegistry (void) | |
Void constructor. More... | |
GModelSpectralRegistry (const GModelSpectral *model) | |
Model constructor. More... | |
GModelSpectralRegistry (const GModelSpectralRegistry ®istry) | |
Copy constructor. More... | |
virtual | ~GModelSpectralRegistry (void) |
Destructor. More... | |
GModelSpectralRegistry & | operator= (const GModelSpectralRegistry ®istry) |
Assignment operator. More... | |
std::string | classname (void) const |
Return class name. More... | |
int | size (void) const |
Return number of registered models. More... | |
GModelSpectral * | alloc (const GXmlElement &xml) const |
Allocate spectral model that is found in XML element. More... | |
std::string | name (const int &index) const |
Returns model name. More... | |
std::string | print (const GChatter &chatter=NORMAL) const |
Print registry information. More... | |
Public Member Functions inherited from GRegistry | |
virtual | ~GRegistry (void) |
Destructor. More... | |
std::string | content (void) const |
Return list of names in registry. More... | |
Protected Member Functions | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GModelSpectralRegistry ®istry) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
Static Private Member Functions | |
static int & | number () |
static GRegistryPointer< const GModelSpectral * > & | models () |
Interface definition for the spectral model registry class.
The registry class allows the registration of spectral models that are not necessarily compiled into the GammaLib. It uses the static members m_number and m_models which are allocated globally to keep track of spectral models that are available throughout all linked libraries. To register a spectral model it is sufficient to add
const GModelSpectralXXX g_spectral_XXX_seed; const GModelSpectralRegistry g_spectral_XXX_registry(&g_spectral_XXX_seed);
at the top of the .cpp file of the spectral model. Here, XXX is a unique name that describes the model.
Definition at line 56 of file GModelSpectralRegistry.hpp.
GModelSpectralRegistry::GModelSpectralRegistry | ( | void | ) |
Void constructor.
Definition at line 58 of file GModelSpectralRegistry.cpp.
References init_members(), models(), and size().
GModelSpectralRegistry::GModelSpectralRegistry | ( | const GModelSpectral * | model | ) |
Model constructor.
[in] | model | Model. |
Construct registry by adding a model to the registry. This is the standard constructor that is used to register a new model to GammaLib.
Definition at line 85 of file GModelSpectralRegistry.cpp.
References init_members(), models(), number(), size(), and GModelSpectral::type().
GModelSpectralRegistry::GModelSpectralRegistry | ( | const GModelSpectralRegistry & | registry | ) |
Copy constructor.
[in] | registry | Registry. |
Definition at line 132 of file GModelSpectralRegistry.cpp.
References copy_members(), and init_members().
|
virtual |
GModelSpectral * GModelSpectralRegistry::alloc | ( | const GXmlElement & | xml | ) | const |
Allocate spectral model that is found in XML element.
[in] | xml | XML element. |
GException::invalid_value | No appropriate spectral model found in XML element. |
Returns a pointer to a spectral model instance that corresponds to the type and parameters found in an XML element. If no appropriate model is found the method will throw an exception.
Definition at line 210 of file GModelSpectralRegistry.cpp.
References GXmlElement::attribute(), G_ALLOC, models(), name(), GModelSpectral::read(), size(), and gammalib::xml_has_par().
Referenced by GCTAModelSpatialGaussSpectrum::read(), GModelSpectralComposite::read(), GModelSpectralMultiplicative::read(), GModelSpectralExponential::read(), GCTAModelIrfBackground::xml_spectral(), GCTAModelAeffBackground::xml_spectral(), GCTAModelCubeBackground::xml_spectral(), GCTAModelRadialAcceptance::xml_spectral(), GCTAModelBackground::xml_spectral(), GCTAModelSkyCube::xml_spectral(), and GModelSky::xml_spectral().
|
inlinevirtual |
Return class name.
Implements GRegistry.
Definition at line 105 of file GModelSpectralRegistry.hpp.
|
protected |
Copy class members.
[in] | registry | Registry. |
Definition at line 375 of file GModelSpectralRegistry.cpp.
Referenced by GModelSpectralRegistry(), and operator=().
|
protected |
Delete class members.
Definition at line 385 of file GModelSpectralRegistry.cpp.
Referenced by operator=(), and ~GModelSpectralRegistry().
|
protected |
Initialise class members.
Definition at line 363 of file GModelSpectralRegistry.cpp.
Referenced by GModelSpectralRegistry(), and operator=().
|
inlinestaticprivate |
Definition at line 92 of file GModelSpectralRegistry.hpp.
Referenced by alloc(), GModelSpectralRegistry(), name(), and print().
|
virtual |
Returns model name.
[in] | index | Model index [0,...,size()-1]. |
GException::out_of_range | Model index is out of range. |
Implements GRegistry.
Definition at line 298 of file GModelSpectralRegistry.cpp.
|
inlinestaticprivate |
Definition at line 87 of file GModelSpectralRegistry.hpp.
Referenced by GModelSpectralRegistry(), and size().
GModelSpectralRegistry & GModelSpectralRegistry::operator= | ( | const GModelSpectralRegistry & | registry | ) |
Assignment operator.
[in] | registry | Registry. |
Definition at line 170 of file GModelSpectralRegistry.cpp.
References copy_members(), free_members(), and init_members().
Print registry information.
[in] | chatter | Chattiness. |
Implements GRegistry.
Definition at line 319 of file GModelSpectralRegistry.cpp.
References models(), name(), NORMAL, gammalib::parformat(), SILENT, size(), and gammalib::str().
|
inlinevirtual |
Return number of registered models.
Returns the number of registered model.
Implements GRegistry.
Definition at line 119 of file GModelSpectralRegistry.hpp.
References number().
Referenced by alloc(), GModelSpectralRegistry(), name(), and print().