SusyNtuple
SusyNtuple/D3PDPerfStats.h
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
 All Classes Functions Variables Typedefs Enumerations Enumerator