SusyNtuple
|
00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id$ 00003 #ifndef D3PDREADER_D3PDPERFSTATS_H 00004 #define D3PDREADER_D3PDPERFSTATS_H 00005 00006 // ROOT include(s): 00007 #include <TVirtualPerfStats.h> 00008 00009 // Local include(s): 00010 #include "SusyNtuple/D3PDReadStats.h" 00011 00012 // Forward declaration(s): 00013 class TTree; 00014 00015 namespace D3PDReader { 00016 00028 class D3PDPerfStats : public ::TVirtualPerfStats { 00029 00030 public: 00032 ~D3PDPerfStats(); 00033 00035 static D3PDPerfStats* Instance(); 00036 00038 const D3PDReadStats& GetStats() const; 00039 00041 void NewTreeAccessed( ::TTree* tree ); 00042 00044 void Start( ::Bool_t clear = kTRUE ); 00046 void Stop(); 00047 00048 // 00049 // Functions inherited from TVirtualPerfStats: 00050 // 00051 virtual void SimpleEvent( EEventType type ); 00052 virtual void PacketEvent( const char *slave, const char *slavename, const char *filename, 00053 ::Long64_t eventsprocessed, ::Double_t latency, 00054 ::Double_t proctime, ::Double_t cputime, 00055 ::Long64_t bytesRead ); 00056 virtual void FileEvent( const char *slave, const char *slavename, const char *nodename, 00057 const char *filename, ::Bool_t isStart ); 00058 virtual void FileOpenEvent( ::TFile *file, const char *filename, ::Double_t start ); 00059 virtual void FileReadEvent( ::TFile *file, ::Int_t len, ::Double_t start ); 00060 virtual void UnzipEvent( ::TObject *tree, ::Long64_t pos, ::Double_t start, ::Int_t complen, 00061 ::Int_t objlen ); 00062 virtual void RateEvent( ::Double_t proctime, ::Double_t deltatime, 00063 ::Long64_t eventsprocessed, ::Long64_t bytesRead ); 00064 virtual void SetBytesRead( ::Long64_t num ); 00065 virtual ::Long64_t GetBytesRead() const; 00066 virtual void SetNumEvents( ::Long64_t num ); 00067 virtual ::Long64_t GetNumEvents() const; 00068 00069 protected: 00071 D3PDPerfStats(); 00072 00073 private: 00075 static D3PDPerfStats* fInstance; 00076 00078 ::TVirtualPerfStats* fOtherPerfStats; 00079 00081 ::Bool_t fRunning; 00083 ::Double_t fStartTime; 00084 00086 ::TTree* fTree; 00088 ::TFile* fFile; 00089 00091 ::Bool_t fTreeWarningPrinted; 00092 00094 D3PDReadStats fStats; 00095 00096 ClassDef( D3PDPerfStats, 1 ) 00097 00098 }; // class D3PDPerfStats 00099 00100 } // namespace D3PDReader 00101 00102 #endif // D3PDREADER_D3PDPERFSTATS_H