2#ifndef RIVET_AnalysisBuilder_HH
3#define RIVET_AnalysisBuilder_HH
5#include "Rivet/Config/RivetCommon.hh"
6#include "Rivet/AnalysisLoader.hh"
7#include "Rivet/Tools/Logging.hh"
19 class AnalysisBuilderBase {
23 AnalysisBuilderBase() =
default;
26 AnalysisBuilderBase(
const string& alias)
30 virtual ~AnalysisBuilderBase() =
default;
33 virtual unique_ptr<Analysis> mkAnalysis()
const = 0;
38 auto a = mkAnalysis();
45 const string& alias()
const {
53 AnalysisLoader::_registerBuilder(
this);
66 class AnalysisBuilder :
public AnalysisBuilderBase {
73 AnalysisBuilder(
const string& alias)
74 : AnalysisBuilderBase(alias)
79 unique_ptr<Analysis> mkAnalysis()
const {
80 return unique_ptr<T>(
new T);
Definition: MC_Cent_pPb.hh:10