Files
geant4/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h
T
2016-06-08 16:57:27 +02:00

142 lines
4.6 KiB
C++

//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// -*- C++ -*-
// AID-GENERATED
// =========================================================================
// This class was generated by AID - Abstract Interface Definition
// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it.
// =========================================================================
#ifndef AIDA_IANALYSISFACTORY_H
#define AIDA_IANALYSISFACTORY_H 1
// This file is part of the AIDA library
// Copyright (C) 2002 by the AIDA team. All rights reserved.
// This library is free software and under the terms of the
// GNU Library General Public License described in the LGPL.txt
namespace AIDA {
class IDataPointSetFactory;
class IFitFactory;
class IFunctionFactory;
class IHistogramFactory;
class IPlotterFactory;
class ITree;
class ITreeFactory;
class ITupleFactory;
/**
* The "master" factory from which other factories are obtained.
* Typically accessed by:
* <pre>
* IAnalysisFactory af =(IAnalysisFactory) ServiceManager.create("hep.aida.IAnalysisFactory");
* </pre>
*
* In C++ IAnalysisFactory* af = AIDA_createAnalysisFactory();
*
* @author The AIDA team (http://aida.freehep.org/)
*/
class IAnalysisFactory {
public:
/// Destructor.
virtual ~IAnalysisFactory() { /* nop */; }
/**
* Create an ITreeFactory.
* @return The ITreeFactory.
*
*/
virtual ITreeFactory * createTreeFactory() = 0;
/**
* Create an IHistogramFactory.
* @param tree The ITree which created histograms will be associated to.
* @return The IHistogramFactory.
*
*/
virtual IHistogramFactory * createHistogramFactory(ITree & tree) = 0;
/**
* Create an IDataPointSetFactory.
* @param tree The ITree which created IDataPointSet will be associated to.
* @return The IDataPointSetFactory.
*
*/
virtual IDataPointSetFactory * createDataPointSetFactory(ITree & tree) = 0;
/**
* Create an ITupleFactory.
* @param tree The ITree which created tuples will be associated to.
* @return The ITupleFactory.
*
*/
virtual ITupleFactory * createTupleFactory(ITree & tree) = 0;
/**
* Create an IFunctionFactory.
* @param tree The ITree which created functions will be associated to.
* @return The IFunctionFactory.
*
*/
virtual IFunctionFactory * createFunctionFactory(ITree & tree) = 0;
/**
* Create an IPlotterFactory.
* Due to the fact that the plotter factory may activate a GUI
* tookit, the process arguments (passed to the main function)
* could be passed to the plotter factory. Most of the GUI
* toolkit ask for them (Motif, gtk, Qt, FLTK).
*/
virtual IPlotterFactory * createPlotterFactory(int argc = 0, char * * args = 0) = 0;
/**
* Create an IFitFactory.
* @return The IFitFactory.
*
*/
virtual IFitFactory * createFitFactory() = 0;
}; // class
}; // namespace AIDA
/**
* To hook an AIDA implementation.
* For example :
* #include <AIDA/IAnalysisFactory.h>
* ...
* IAnalysisFactory* analysisFactory = AIDA_createAnalysisFactory();
* ...
*/
extern "C" {
AIDA::IAnalysisFactory* AIDA_createAnalysisFactory();
}
#endif /* ifndef AIDA_IANALYSISFACTORY_H */