00001 00002 // 00003 // Class AlephExManager 00004 // 00005 // The class responsible for the execution = run over data 00006 // It inherits from AlephManager. 00007 // It is a singleton 00008 // 00009 // Author : G. Dissertori , 10.08.99 00010 // 00012 00013 #ifndef ALEPHEXMANAGER_H 00014 #define ALEPHEXMANAGER_H 00015 00016 #include "AlObject.h" 00017 #include "AlphaBanks.h" 00018 #include "AlephManager.h" 00019 #include "AlephDbManager.h" 00020 #include "AlephIoManager.h" 00021 #include "AlephCardsReader.h" 00022 #include "AlephNtupleWriter.h" 00023 00025 // further external fortran stuff needed for setup of Alphabanks 00027 #include "fortran_def.h" 00028 00029 // the AlephExManager class 00030 class AlephExManager : public AlephManager { 00031 00032 public: 00033 00034 // the instance function of the Singleton 00035 static AlephManager* TheAlephExManager(); 00036 // the initialization step 00037 virtual AlephRC initialize(); 00038 // the user init 00039 void UserInit(); 00040 // the running 00041 virtual AlephRC run(); 00042 // the user running 00043 bool UserEvent(AlphaBanks& ); 00044 // the terminating step 00045 virtual AlephRC terminate(); 00046 // the user termination 00047 void UserTerm(); 00048 // some general utility 00049 // set current run and event number 00050 void setCurrentRunEvt(const long& CurrentRun, 00051 const long& CurrentEvt); 00052 // get current Run number 00053 long getCurrentRun() const; 00054 // get current Evt number 00055 long getCurrentEvt() const; 00056 // get the event counter 00057 long getEventCount() const; 00058 // give pointers to managers (nice for the user) 00059 AlephSession* theSession() const; 00060 AlephDbManager* theDbm() const; 00061 AlephIoManager* theIom() const; 00062 AlephCardsReader* theCardsReader() const; 00063 AlephNtupleWriter* theNtupleWriter() const; 00064 00065 protected: 00066 00067 // constructor and destructor 00068 AlephExManager(); 00069 virtual ~AlephExManager(); 00070 // the pointer to the database manager 00071 AlephDbManager* _theDbManager; 00072 // event counter 00073 long EventCount; 00074 00075 private: 00076 00077 // the pointer to the single static instance 00078 static AlephManager* _theAlephExManager; 00079 // current run and event number 00080 long _currentRun; 00081 long _currentEvt; 00082 }; 00083 00084 #endif 00085