00001
00002
00003
00004
00005
00006
00007 #ifndef AIDA_IANALYSISFACTORY_H
00008 #define AIDA_IANALYSISFACTORY_H 1
00009
00010
00011
00012
00013
00014
00015 namespace AIDA {
00016
00017 class IDataPointSetFactory;
00018 class IFitFactory;
00019 class IFunctionFactory;
00020 class IHistogramFactory;
00021 class IPlotterFactory;
00022 class ITree;
00023 class ITreeFactory;
00024 class ITupleFactory;
00025
00038 class IAnalysisFactory {
00039
00040 public:
00042 virtual ~IAnalysisFactory() { ; }
00043
00049 virtual ITreeFactory * createTreeFactory() = 0;
00050
00057 virtual IHistogramFactory * createHistogramFactory(ITree & tree) = 0;
00058
00065 virtual IDataPointSetFactory * createDataPointSetFactory(ITree & tree) = 0;
00066
00073 virtual ITupleFactory * createTupleFactory(ITree & tree) = 0;
00074
00081 virtual IFunctionFactory * createFunctionFactory(ITree & tree) = 0;
00082
00094 virtual IPlotterFactory * createPlotterFactory(int argc = 0, char * * args = 0) = 0;
00095
00101 virtual IFitFactory * createFitFactory() = 0;
00102 };
00103 };
00104
00105
00106
00116 extern "C" {
00117 AIDA::IAnalysisFactory* AIDA_createAnalysisFactory();
00118 }
00119 #endif