00001 #ifdef MARLIN_USE_AIDA
00002
00003 #ifndef AIDAProcessor_h
00004 #define AIDAProcessor_h 1
00005
00006 #include "marlin/Processor.h"
00007 #include "lcio.h"
00008
00009 namespace AIDA{
00010 class IAnalysisFactory ;
00011 class ITreeFactory ;
00012 class ITree ;
00013 class IHistogramFactory ;
00014 class ITupleFactory ;
00015 class IDataPointSetFactory ;
00016 }
00017
00018 class HistoManager ;
00019
00020 using namespace lcio ;
00021
00022 namespace marlin {
00023
00024
00044 class AIDAProcessor : public marlin::Processor {
00045
00046 public:
00047
00048 virtual Processor* newProcessor() ;
00049
00050
00051 AIDAProcessor() ;
00052
00056 virtual void init() ;
00057
00060 virtual void processRunHeader( LCRunHeader* run ) ;
00061
00064 virtual void processEvent( LCEvent * evt ) ;
00065
00068 virtual void check( LCEvent * evt ) ;
00069
00070
00073 virtual void end() ;
00074
00075
00080 static AIDA::IHistogramFactory* histogramFactory( const Processor* proc ) ;
00081
00086 static AIDA::ITupleFactory* tupleFactory( const Processor* proc ) ;
00087
00092 static AIDA::ITree* tree( const Processor* proc ) ;
00093
00098 static AIDA::IDataPointSetFactory* dataPointSetFactory( const Processor* proc ) ;
00099
00104 static AIDA::IAnalysisFactory* GetIAnalysisFactory( const Processor* proc );
00105
00106
00107 protected:
00108
00109 AIDA::IAnalysisFactory* _analysisFactory ;
00110 AIDA::ITreeFactory* _treeFactory ;
00111 AIDA::ITree* _tree ;
00112 AIDA::IHistogramFactory* _histoFactory ;
00113 AIDA::ITupleFactory* _tupleFactory ;
00114 AIDA::IDataPointSetFactory* _dataPointSetFactory ;
00115
00116 std::string _fileType ;
00117 std::string _fileName ;
00118 int _compress ;
00119
00120 private:
00121
00122 static AIDAProcessor* _me ;
00123 } ;
00124
00125 }
00126 #endif
00127
00128 #endif
00129
00130
00131