rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.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* 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
Definition: ALICE_2010_I880049.cc:13
friend class AnalysisBuilderBase
Allow the analysis builders to call the private _registerBuilder function.
Definition: AnalysisLoader.hh:38
static vector< string > analysisNames()
Get all the available analyses&#39; names.
Definition: AnalysisLoader.cc:22
static vector< unique_ptr< Analysis > > getAllAnalyses()
Get all the available analyses.
Definition: AnalysisLoader.cc:48
Internal class which loads and registers analyses from plugin libs.
Definition: AnalysisLoader.hh:19
static unique_ptr< Analysis > getAnalysis(const string &analysisname)
Definition: AnalysisLoader.cc:40