Rivet  3.1.0
AnalysisLoader.hh
1 // -*- C++ -*-
2 #ifndef RIVET_AnalysisLoader_HH
3 #define RIVET_AnalysisLoader_HH
4 
5 #include "Rivet/Config/RivetCommon.hh"
6 #include <map>
7 #include <string>
8 
9 namespace Rivet {
10 
11 
12  // Forward declarations
13  class Analysis;
14  class AnalysisBuilderBase;
15  class Log;
16 
17 
20  public:
21 
23  static vector<string> analysisNames();
24  static set<string> getAllAnalysisNames();
25 
29  static unique_ptr<Analysis> getAnalysis(const string& analysisname);
30 
32  static vector<unique_ptr<Analysis>> getAllAnalyses();
33 
34 
35  private:
36 
38  friend class AnalysisBuilderBase;
39 
41  static void _registerBuilder(const AnalysisBuilderBase* ab);
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
Definition: MC_Cent_pPb.hh:10
static unique_ptr< Analysis > getAnalysis(const string &analysisname)
friend class AnalysisBuilderBase
Allow the analysis builders to call the private _registerBuilder function.
Definition: AnalysisLoader.hh:38
static vector< unique_ptr< Analysis > > getAllAnalyses()
Get all the available analyses.
Internal class which loads and registers analyses from plugin libs.
Definition: AnalysisLoader.hh:19
static vector< string > analysisNames()
Get all the available analyses&#39; names.