GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | List of all members
genie::EventGeneratorListAssembler Class Reference

Assembles a list of all the EventGeneratorI subclasses that can be employed during a neutrino event generation job. More...

#include <EventGeneratorListAssembler.h>

Inheritance diagram for genie::EventGeneratorListAssembler:
Inheritance graph
[legend]
Collaboration diagram for genie::EventGeneratorListAssembler:
Collaboration graph
[legend]

Public Member Functions

 EventGeneratorListAssembler ()
 
 EventGeneratorListAssembler (string config)
 
 ~EventGeneratorListAssembler ()
 
EventGeneratorListAssembleGeneratorList ()
 
- Public Member Functions inherited from genie::Algorithm
virtual ~Algorithm ()
 
virtual void Configure (const Registry &config)
 
virtual void Configure (string config)
 
virtual void FindConfig (void)
 
virtual const RegistryGetConfig (void) const
 
RegistryGetOwnedConfig (void)
 
virtual const AlgIdId (void) const
 Get algorithm ID. More...
 
virtual AlgStatus_t GetStatus (void) const
 Get algorithm status. More...
 
virtual bool AllowReconfig (void) const
 
virtual AlgCmp_t Compare (const Algorithm *alg) const
 Compare with input algorithm. More...
 
virtual void SetId (const AlgId &id)
 Set algorithm ID. More...
 
virtual void SetId (string name, string config)
 
const AlgorithmSubAlg (const RgKey &registry_key) const
 
void AdoptConfig (void)
 
void AdoptSubstructure (void)
 
virtual void Print (ostream &stream) const
 Print algorithm info. More...
 

Private Member Functions

const EventGeneratorILoadGenerator (int ip)
 

Additional Inherited Members

- Static Public Member Functions inherited from genie::Algorithm
static string BuildParamVectKey (const std::string &comm_name, unsigned int i)
 
static string BuildParamVectSizeKey (const std::string &comm_name)
 
static string BuildParamMatKey (const std::string &comm_name, unsigned int i, unsigned int j)
 
static string BuildParamMatRowSizeKey (const std::string &comm_name)
 
static string BuildParamMatColSizeKey (const std::string &comm_name)
 
- Protected Member Functions inherited from genie::Algorithm
 Algorithm ()
 
 Algorithm (string name)
 
 Algorithm (string name, string config)
 
void Initialize (void)
 
void DeleteConfig (void)
 
void DeleteSubstructure (void)
 
RegistryExtractLocalConfig (const Registry &in) const
 
RegistryExtractLowerConfig (const Registry &in, const string &alg_key) const
 Split an incoming configuration Registry into a block valid for the sub-algo identified by alg_key. More...
 
template<class T >
bool GetParam (const RgKey &name, T &p, bool is_top_call=true) const
 
template<class T >
bool GetParamDef (const RgKey &name, T &p, const T &def) const
 
template<class T >
int GetParamVect (const std::string &comm_name, std::vector< T > &v, bool is_top_call=true) const
 Handle to load vectors of parameters. More...
 
int GetParamVectKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
 
template<class T >
int GetParamMat (const std::string &comm_name, TMatrixT< T > &mat, bool is_top_call=true) const
 Handle to load matrix of parameters. More...
 
template<class T >
int GetParamMatSym (const std::string &comm_name, TMatrixTSym< T > &mat, bool is_top_call=true) const
 
int GetParamMatKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
 
int AddTopRegistry (Registry *rp, bool owns=true)
 add registry with top priority, also update ownership More...
 
int AddLowRegistry (Registry *rp, bool owns=true)
 add registry with lowest priority, also update ownership More...
 
int MergeTopRegistry (const Registry &r)
 
int AddTopRegisties (const vector< Registry * > &rs, bool owns=false)
 Add registries with top priority, also udated Ownerships. More...
 
- Protected Attributes inherited from genie::Algorithm
bool fAllowReconfig
 
bool fOwnsSubstruc
 true if it owns its substructure (sub-algs,...) More...
 
AlgId fID
 algorithm name and configuration set More...
 
vector< Registry * > fConfVect
 
vector< bool > fOwnerships
 ownership for every registry in fConfVect More...
 
AlgStatus_t fStatus
 algorithm execution status More...
 
AlgMapfOwnedSubAlgMp
 local pool for owned sub-algs (taken out of the factory pool) More...
 

Detailed Description

Assembles a list of all the EventGeneratorI subclasses that can be employed during a neutrino event generation job.

Author
Costas Andreopoulos <c.andreopoulos cern.ch> University of Liverpool
Created:
January 25, 2004
License:
Copyright (c) 2003-2024, The GENIE Collaboration For the full text of the license visit http://copyright.genie-mc.org

Definition at line 31 of file EventGeneratorListAssembler.h.

Constructor & Destructor Documentation

EventGeneratorListAssembler::EventGeneratorListAssembler ( )

Definition at line 27 of file EventGeneratorListAssembler.cxx.

27  :
28 Algorithm("genie::EventGeneratorListAssembler")
29 {
30 
31 }
EventGeneratorListAssembler::EventGeneratorListAssembler ( string  config)

Definition at line 33 of file EventGeneratorListAssembler.cxx.

33  :
34 Algorithm("genie::EventGeneratorListAssembler", config)
35 {
36 
37 }
EventGeneratorListAssembler::~EventGeneratorListAssembler ( )

Definition at line 39 of file EventGeneratorListAssembler.cxx.

40 {
41 
42 }

Member Function Documentation

EventGeneratorList * EventGeneratorListAssembler::AssembleGeneratorList ( )

Definition at line 44 of file EventGeneratorListAssembler.cxx.

References genie::Algorithm::AddTopRegistry(), genie::Algorithm::GetConfig(), genie::Registry::GetInt(), genie::RunOpt::Instance(), genie::AlgConfigPool::Instance(), LoadGenerator(), pNOTICE, genie::utils::print::PrintFramedMesg(), and SLOG.

Referenced by genie::GEVGDriver::BuildGeneratorList().

45 {
46  SLOG("EvGenListAssembler", pNOTICE)
48  "Loading requested Event Generators", 0, '-');
49 
50  if ( RunOpt::Instance() -> EventGeneratorList() == "Default" ) {
51  AddTopRegistry( AlgConfigPool::Instance() -> TuneGeneratorList(), false ) ;
52 
53  SLOG("EvGenListAssembler", pNOTICE)
54  << "** Using Tune Generator List: " ;
55 
56  }
57 
58 
60 
61 // if (!fConfig) {
62 // SLOG("EvGenListAssembler", pFATAL)
63 // << "Cannot instantiate EventGeneratorList with no config.";
64 // gAbortingInErr = true;
65 // exit(-1);
66 // }
67 
68  int nproc = GetConfig().GetInt("NGenerators");
69  assert(nproc > 0);
70 
71  //-- Loop over the event generators for all requested processes
72  for(int ip = 0; ip < nproc; ip++) {
73  const EventGeneratorI * evgen = this->LoadGenerator(ip);
74  evgl->push_back(evgen);
75  }
76  return evgl;
77 }
Defines the EventGeneratorI interface.
RgInt GetInt(RgKey key) const
Definition: Registry.cxx:467
virtual const Registry & GetConfig(void) const
Definition: Algorithm.cxx:246
int AddTopRegistry(Registry *rp, bool owns=true)
add registry with top priority, also update ownership
Definition: Algorithm.cxx:686
static RunOpt * Instance(void)
Definition: RunOpt.cxx:54
const EventGeneratorI * LoadGenerator(int ip)
string PrintFramedMesg(string mesg, unsigned int nl=1, const char f='*')
Definition: PrintUtils.cxx:164
A vector of EventGeneratorI objects.
#define pNOTICE
Definition: Messenger.h:61
#define SLOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a short string (using the FUNCTION and...
Definition: Messenger.h:84
static AlgConfigPool * Instance()
const EventGeneratorI * EventGeneratorListAssembler::LoadGenerator ( int  ip)
private

Definition at line 79 of file EventGeneratorListAssembler.cxx.

References genie::Algorithm::Id(), genie::AlgId::Key(), pNOTICE, SLOG, and genie::Algorithm::SubAlg().

Referenced by AssembleGeneratorList().

80 {
81 
82 
83  ostringstream alg_key;
84  alg_key << "Generator-" << ip;
85 
86  const EventGeneratorI * evgen =
87  dynamic_cast<const EventGeneratorI *> (this->SubAlg(alg_key.str()));
88  assert(evgen);
89 
90  SLOG("EvGenListAssembler", pNOTICE)
91  << "** Loaded generator: " << evgen->Id().Key();
92 
93  return evgen;
94 }
Defines the EventGeneratorI interface.
virtual const AlgId & Id(void) const
Get algorithm ID.
Definition: Algorithm.h:98
#define pNOTICE
Definition: Messenger.h:61
#define SLOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a short string (using the FUNCTION and...
Definition: Messenger.h:84
string Key(void) const
Definition: AlgId.h:46
const Algorithm * SubAlg(const RgKey &registry_key) const
Definition: Algorithm.cxx:345

The documentation for this class was generated from the following files: