Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:28:08

0001 // -*- C++ -*-
0002 // AID-GENERATED
0003 // =========================================================================
0004 // This class was generated by AID - Abstract Interface Definition          
0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
0006 // =========================================================================
0007 #ifndef AIDA_IANALYSISFACTORY_H
0008 #define AIDA_IANALYSISFACTORY_H 1
0009 
0010 //  This file is part of the AIDA library
0011 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
0012 //  This library is free software and under the terms of the
0013 //  GNU Library General Public License described in the LGPL.txt 
0014 
0015 #include <string>
0016 
0017 namespace AIDA {
0018 
0019 class IDataPointSetFactory;
0020 class IFitFactory;
0021 class IFunctionFactory;
0022 class IHistogramFactory;
0023 class IPlotterFactory;
0024 class ITree;
0025 class ITreeFactory;
0026 class ITupleFactory;
0027 
0028 /**
0029  * The "master" factory from which other factories are obtained.
0030  * Typically accessed by:
0031  * <pre>
0032  *   IAnalysisFactory af =(IAnalysisFactory) ServiceManager.create("hep.aida.IAnalysisFactory");
0033  * </pre>
0034  *
0035  * In C++ IAnalysisFactory* af = AIDA_createAnalysisFactory();
0036  *
0037  * @author The AIDA team (http://aida.freehep.org/)
0038  */
0039 
0040 class IAnalysisFactory {
0041 
0042 public: 
0043     /// Destructor.
0044     virtual ~IAnalysisFactory() { /* nop */; }
0045 
0046   /**
0047    * Create an ITreeFactory.
0048    * @return The ITreeFactory.
0049    *
0050    */
0051     virtual ITreeFactory * createTreeFactory() = 0;
0052 
0053   /**
0054    * Create an IHistogramFactory.
0055    * @param tree The ITree which created histograms will be associated to.
0056    * @return     The IHistogramFactory.
0057    *
0058    */
0059     virtual IHistogramFactory * createHistogramFactory(ITree & tree) = 0;
0060 
0061   /**
0062    * Create an IDataPointSetFactory.
0063    * @param tree The ITree which created IDataPointSet will be associated to.
0064    * @return     The IDataPointSetFactory.
0065    *
0066    */
0067     virtual IDataPointSetFactory * createDataPointSetFactory(ITree & tree) = 0;
0068 
0069   /**
0070    * Create an ITupleFactory.
0071    * @param tree The ITree which created tuples will be associated to.
0072    * @return     The ITupleFactory.
0073    *
0074    */
0075     virtual ITupleFactory * createTupleFactory(ITree & tree) = 0;
0076 
0077   /**
0078    * Create an IFunctionFactory.
0079    * @param tree The ITree which created functions will be associated to.
0080    * @return     The IFunctionFactory.
0081    *
0082    */
0083     virtual IFunctionFactory * createFunctionFactory(ITree & tree) = 0;
0084 
0085     /**
0086      * Create an IPlotterFactory.
0087      * Due to the fact that the plotter factory may activate a GUI
0088      * tookit, the process arguments (passed to the main function)
0089      * could be passed to the plotter factory. Most of the GUI
0090      * toolkit ask for them (Motif, gtk, Qt, FLTK).
0091      * @param imp The AIDA implementation to use. The default uses the current implementation one.
0092      * @param lib The plotter to use within the choosen AIDA implementation (an AIDA implementation may have multiple plotters based on different technologies).
0093      */
0094            
0095                                            
0096       
0097           
0098     virtual IPlotterFactory * createPlotterFactory(int argc = 0, char * * args = 0, const std::string & imp = "", const std::string & lib = "") = 0;
0099 
0100   /**
0101    * Create an IFitFactory.
0102    * @return     The IFitFactory.
0103    *
0104    */
0105     virtual IFitFactory * createFitFactory() = 0;
0106 }; // class
0107 } // namespace AIDA
0108 
0109 
0110 
0111 /**
0112  * To hook an AIDA implementation.
0113  * For example :
0114  *   #include <AIDA/IAnalysisFactory.h>
0115  *   ...
0116  *   IAnalysisFactory* analysisFactory = AIDA_createAnalysisFactory();
0117  *   ...
0118  */
0119 
0120 extern "C" {
0121  AIDA::IAnalysisFactory* AIDA_createAnalysisFactory();
0122 }
0123 #endif /* ifndef AIDA_IANALYSISFACTORY_H */