26 #ifndef GENIE_FLUX_GFLAVORMIXERFACTORY_H 27 #define GENIE_FLUX_GFLAVORMIXERFACTORY_H 133 #define FLAVORMIXREG( _name ) \ 134 genie::flux::GFlavorMixerI* _name ## _ctor_function () { return new _name; } \ 135 static bool _name ## _creator_registered = \ 136 genie::flux::GFlavorMixerFactory::Instance().RegisterCreator(# _name, \ 137 & _name ## _ctor_function, \ 138 & _name ## _creator_registered ); 140 #define FLAVORMIXREG3( _ns, _name, _fqname ) \ 142 genie::flux::GFlavorMixerI* _name ## _ctor_function () { return new _fqname; } \ 143 static bool _name ## _creator_registered = \ 144 genie::flux::GFlavorMixerFactory::Instance().RegisterCreator(# _fqname, \ 145 & _fqname ## _ctor_function, \ 146 & _fqname ## _creator_registered );} 148 #define FLAVORMIXREG4( _nsa, _nsb, _name, _fqname ) \ 151 genie::flux::GFlavorMixerI* _name ## _ctor_function () { return new _fqname; } \ 152 static bool _name ## _creator_registered = \ 153 genie::flux::GFlavorMixerFactory::Instance().RegisterCreator(# _fqname, \ 154 & _fqname ## _ctor_function, \ 155 & _fqname ## _creator_registered );}}
static GFlavorMixerFactory & Instance()
THE MAIN GENIE PROJECT NAMESPACE
genie::flux::GFlavorMixerI *(* GFlavorMixerICtorFuncPtr_t)()
static GFlavorMixerFactory * fgTheInstance
genie::flux::GFlavorMixerI * GetFlavorMixer(const std::string &)
std::vector< std::string > listnames
std::map< std::string, bool * > fBoolPtrMap
GENIE interface for flavor modification.
void operator=(const GFlavorMixerFactory &)
std::map< std::string, GFlavorMixerICtorFuncPtr_t > fFunctionMap
virtual ~GFlavorMixerFactory()
const std::vector< std::string > & AvailableFlavorMixers() const
bool IsKnownFlavorMixer(const std::string &)
A class for generating concrete GFlavorMixerI derived classes based on the factory pattern...
bool RegisterCreator(std::string name, GFlavorMixerICtorFuncPtr_t ctorptr, bool *ptr)