Rivet  3.1.5
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 
26  static vector<string> allAnalysisNames();
28  static vector<string> getAllAnalysisNames() { return allAnalysisNames(); }
29 
31  static vector<string> stdAnalysisNames();
32 
34  static map<string,string> analysisNameAliases();
35 
36 
40  static unique_ptr<Analysis> getAnalysis(const string& analysisname);
41 
43  static vector<unique_ptr<Analysis>> getAllAnalyses();
44 
45 
46  private:
47 
49  friend class AnalysisBuilderBase;
50 
52  static void _registerBuilder(const AnalysisBuilderBase* ab);
53 
55  static void _loadAnalysisPlugins();
56 
57  typedef map<string, const AnalysisBuilderBase*> AnalysisBuilderMap;
58  static AnalysisBuilderMap _ptrs;
59  static AnalysisBuilderMap _aliasptrs;
60 
61  };
62 
63 
64 }
65 
66 #endif
Definition: MC_Cent_pPb.hh:10
static unique_ptr< Analysis > getAnalysis(const string &analysisname)
static vector< string > allAnalysisNames()
Get all the available analyses&#39; names, including aliases.
friend class AnalysisBuilderBase
Allow the analysis builders to call the private _registerBuilder function.
Definition: AnalysisLoader.hh:49
static vector< string > stdAnalysisNames()
Get the standard analyses&#39; names (from a release-specific list file)
static map< string, string > analysisNameAliases()
Get the map of analysis alias-names to their canonical equivalents.
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 the available analyses&#39; canonical names.
static vector< string > getAllAnalysisNames()
Definition: AnalysisLoader.hh:28