Rivet  3.1.2
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 
28  static set<string> allAnalysisNames();
30  static set<string> getAllAnalysisNames() { return allAnalysisNames(); }
31 
33  static vector<string> stdAnalysisNames();
34 
35 
39  static unique_ptr<Analysis> getAnalysis(const string& analysisname);
40 
42  static vector<unique_ptr<Analysis>> getAllAnalyses();
43 
44 
45  private:
46 
48  friend class AnalysisBuilderBase;
49 
51  static void _registerBuilder(const AnalysisBuilderBase* ab);
52 
54  static void _loadAnalysisPlugins();
55 
56  typedef map<string, const AnalysisBuilderBase*> AnalysisBuilderMap;
57  static AnalysisBuilderMap _ptrs;
58 
59  };
60 
61 
62 }
63 
64 #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:48
static vector< string > stdAnalysisNames()
Get the standard analyses&#39; names (from a release-specific list file)
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 set< string > getAllAnalysisNames()
Definition: AnalysisLoader.hh:30
static set< string > allAnalysisNames()
static vector< string > analysisNames()
Get the available analyses&#39; names.