00001 00002 // 00003 // Class AlephROOTDbManager 00004 // 00005 // The class responsible for the database handling 00006 // It inherits from AlephManager. 00007 // It is a singleton 00008 // 00009 // Author : C. Delaere 14.08.02 00010 // 00012 00013 #ifndef ALEPHROOTDBMANAGER_H 00014 #define ALEPHROOTDBMANAGER_H 00015 00016 #include "AlephDbManager.h" 00017 #include <vector> 00018 #include <list> 00019 00020 class TFile; 00021 class TTree; 00022 class AlphaBanks; 00023 00025 class AlephROOTDbManager : public AlephDbManager 00026 { 00027 public: 00028 00029 friend class AlephDbManager; 00030 00032 virtual AlephRC initialize(); 00034 virtual AlephRC terminate(); 00036 virtual AlephRC StoreEvent(AlphaBanks*); 00038 virtual AlephRC GetEvent(AlphaBanks*); 00040 virtual AlephRC openExistingDb(const vector<string>& aDbName, 00041 const string& mode = "TRANSTY"); 00043 virtual AlephRC openNewDb(const string& aDbName); 00044 protected: 00045 00046 // constructor and destructor 00047 AlephROOTDbManager(); 00048 virtual ~AlephROOTDbManager(); 00049 private: 00050 00051 // ROOT objects used to store / retrieve information 00052 TFile *ROOTDbFile; 00053 TTree *ROOTDbTree; 00054 AlphaBanks* mylocalevent; 00055 int eventnumber, runnumber, edirclass ; 00056 int entry; 00057 long classbitpattern; 00058 list<long> asrucardlist; 00059 long lowentry; 00060 long highentry; 00061 00062 }; 00063 00064 #endif 00065