00001 #ifndef BANKITER_H 00002 #define BANKITER_H 00003 00004 //C++/STL 00005 00006 //ROOT 00007 #include <TTree.h> 00008 00009 //Local 00010 #include "definitions.h" 00011 #include "BankSelection.h" 00012 00013 00014 template <typename BANK> class BankIter { 00018 private: 00019 typedef IDs::source SourceID; 00020 00021 public: 00022 00024 BankIter() {}; 00025 virtual ~BankIter(){}; 00026 00028 // bool IsLocked() const {return fLocked;} 00029 00032 int Count() const; 00033 00035 //BankIter& Lock() {fLocked =1; return *this;} 00036 00039 const BANK* Next(); 00040 00044 BankIter& Rewind(); 00045 00048 00049 protected: 00050 BankIter(const BankIter&); 00051 BankIter& operator= (const BankIter &); 00052 00054 TTree* GetTree(); 00055 00056 private: 00058 const BankSelection fCriteria; 00059 00061 TTree* fTree; 00062 00063 }; 00064 00065 typedef BankIter<PulseIslandList> PulseIslandBankIter; 00066 typedef BankIter<AnalysedPulseList> AnalysedPulseBankIter; 00067 typedef BankIter<DetectorPulseList> DetectorPulseBankIter; 00068 00069 #endif //BANKITER_H 00070 00071 // emacs metadata 00072 // Local Variables: 00073 // mode: c++ 00074 // End: