Rivet  1.8.3
AnalysisLoader.hh
1 // -*- C++ -*-
2 #ifndef RIVET_AnalysisLoader_HH
3 #define RIVET_AnalysisLoader_HH
4 
5 #include "Rivet/Rivet.hh"
6 #include "Rivet/Tools/Logging.fhh"
7 #include <map>
8 #include <string>
9 
10 namespace Rivet {
11 
12 
13  // Forward declarations
14  class Analysis;
15  class AnalysisBuilderBase;
16 
17 
20  public:
21 
23  static vector<string> analysisNames();
24  static set<string> getAllAnalysisNames();
25 
29  static Analysis* getAnalysis(const string& analysisname);
30 
32  static vector<Analysis*> getAllAnalyses();
33 
34 
35  private:
36 
38  friend class AnalysisBuilderBase;
39 
41  static void _registerBuilder(const AnalysisBuilderBase* a);
42 
44  static void _loadAnalysisPlugins();
45 
46  typedef map<string, const AnalysisBuilderBase*> AnalysisBuilderMap;
47  static AnalysisBuilderMap _ptrs;
48 
49  };
50 
51 
52 }
53 
54 #endif
friend class AnalysisBuilderBase
Allow the analysis builders to call the private _registerBuilder function.
Definition: AnalysisLoader.hh:38
static vector< Analysis * > getAllAnalyses()
Get all the available analyses.
Definition: AnalysisLoader.cc:48
static vector< string > analysisNames()
Get all the available analyses&#39; names.
Definition: AnalysisLoader.cc:22
static Analysis * getAnalysis(const string &analysisname)
Definition: AnalysisLoader.cc:40
This is the base class of all analysis classes in Rivet.
Definition: Analysis.hh:51
Internal class which loads and registers analyses from plugin libs.
Definition: AnalysisLoader.hh:19