GENIEGenerator
Loading...
Searching...
No Matches
GFlavorMixerFactory.h File Reference
#include <string>
#include <vector>
#include <map>
#include "Tools/Flux/GFlavorMixerI.h"
Include dependency graph for GFlavorMixerFactory.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  genie::flux::GFlavorMixerFactory
 A class for generating concrete GFlavorMixerI derived classes based on the factory pattern. This code supplies a CPP macro which allows the classes to self-register and thus no modification of this class is needed in order to expand the list of classes it knows about. More...
struct  genie::flux::GFlavorMixerFactory::Cleaner

Namespaces

namespace  genie
 THE MAIN GENIE PROJECT NAMESPACE
namespace  genie::flux
 GENIE flux drivers.

Macros

#define FLAVORMIXREG(_name)
#define FLAVORMIXREG3(_ns, _name, _fqname)
#define FLAVORMIXREG4(_nsa, _nsb, _name, _fqname)

Typedefs

typedef genie::flux::GFlavorMixerI *(* genie::flux::GFlavorMixerICtorFuncPtr_t) ()

Macro Definition Documentation

◆ FLAVORMIXREG

#define FLAVORMIXREG ( _name)
Value:
genie::flux::GFlavorMixerI* _name ## _ctor_function () { return new _name; } \
static bool _name ## _creator_registered = \
genie::flux::GFlavorMixerFactory::Instance().RegisterCreator(# _name, \
& _name ## _ctor_function, \
& _name ## _creator_registered );
GENIE interface for flavor modification.

Definition at line 133 of file 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 );

◆ FLAVORMIXREG3

#define FLAVORMIXREG3 ( _ns,
_name,
_fqname )
Value:
namespace _ns { \
genie::flux::GFlavorMixerI* _name ## _ctor_function () { return new _fqname; } \
static bool _name ## _creator_registered = \
genie::flux::GFlavorMixerFactory::Instance().RegisterCreator(# _fqname, \
& _fqname ## _ctor_function, \
& _fqname ## _creator_registered );}

Definition at line 140 of file GFlavorMixerFactory.h.

140#define FLAVORMIXREG3( _ns, _name, _fqname ) \
141namespace _ns { \
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 );}

◆ FLAVORMIXREG4

#define FLAVORMIXREG4 ( _nsa,
_nsb,
_name,
_fqname )
Value:
namespace _nsa { \
namespace _nsb { \
genie::flux::GFlavorMixerI* _name ## _ctor_function () { return new _fqname; } \
static bool _name ## _creator_registered = \
genie::flux::GFlavorMixerFactory::Instance().RegisterCreator(# _fqname, \
& _fqname ## _ctor_function, \
& _fqname ## _creator_registered );}}

Definition at line 148 of file GFlavorMixerFactory.h.

148#define FLAVORMIXREG4( _nsa, _nsb, _name, _fqname ) \
149namespace _nsa { \
150 namespace _nsb { \
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 );}}