SusyNtuple
SusyNtuple/D3PDReadStats.h
00001 // Dear emacs, this is -*- c++ -*-
00002 // $Id$
00003 #ifndef D3PDREADER_D3PDREADSTATS_H
00004 #define D3PDREADER_D3PDREADSTATS_H
00005 
00006 // STL include(s):
00007 #include <map>
00008 #include <vector>
00009 
00010 // ROOT include(s):
00011 #include <TNamed.h>
00012 #include <TString.h>
00013 
00014 // Forward declaration(s):
00015 class TCollection;
00016 class TTree;
00017 class TH1;
00018 
00019 namespace D3PDReader {
00020 
00021    // Forward declaration(s):
00022    class D3PDPerfStats;
00023 
00035    class VariableStats : public ::TNamed {
00036 
00037    public:
00039       VariableStats( const char* name = "d3pd_variable",
00040                      const char* type = "Int_t",
00041                      ::Int_t nTreesAccessed = 0, ::Long64_t nReadEntries = 0,
00042                      ::Long64_t nUnzippedBytes = 0, ::Long64_t nZippedBytes = 0 );
00044       VariableStats( const VariableStats& parent );
00045 
00047       VariableStats& operator= ( const VariableStats& parent );
00048 
00050       ::Int_t GetTreesAccessed() const;
00052       void SetTreesAccessed( ::Int_t nTreesAccessed );
00053 
00055       ::Long64_t GetReadEntries() const;
00057       void SetReadEntries( ::Long64_t nReadEntries );
00058 
00060       ::Long64_t GetUnzippedBytesRead() const;
00062       void SetUnzippedBytesRead( ::Long64_t nUnzippedBytes );
00063 
00065       ::Long64_t GetZippedBytesRead() const;
00067       void SetZippedBytesRead( ::Long64_t nZippedBytes );
00068 
00070       VariableStats& Add( const VariableStats& rh );
00072       VariableStats& operator+= ( const VariableStats& rh );
00073 
00075       ::Int_t Merge( ::TCollection* coll );
00076 
00078       void Print( ::Option_t* option = "" ) const;
00079 
00080    private:
00081       ::Int_t fTreesAccessed; 
00082       ::Long64_t fReadEntries; 
00083       ::Long64_t fUnzippedBytes; 
00084       ::Long64_t fZippedBytes; 
00085 
00086       ClassDef( VariableStats, 2 )
00087 
00088    }; // class VariableStats
00089 
00102    class D3PDReadStats : public ::TNamed {
00103 
00104    public:
00106 
00111       typedef std::map< ::TString, VariableStats > Map_t;
00112 
00114       D3PDReadStats( const char* name = "D3PDReadStats",
00115                      const char* title = "D3PD reading statistics" );
00117       D3PDReadStats( const D3PDReadStats& parent );
00118 
00120       D3PDReadStats& operator= ( const D3PDReadStats& parent );
00121 
00123       void Clear( ::Option_t* opt = "" );
00124 
00126       void SetBytesRead( ::Long64_t num );
00128       ::Long64_t GetBytesRead() const;
00129 
00131       void SetVariableNum( ::Int_t num );
00133       ::Int_t GetVariableNum() const;
00134 
00136       void SetFileReads( ::Int_t num );
00138       ::Int_t GetFileReads() const;
00139 
00141       void SetCacheSize( ::Int_t size );
00143       ::Int_t GetCacheSize() const;
00144 
00146       void SetUnzipTime( ::Double_t time );
00148       ::Double_t GetUnzipTime() const;
00149 
00151       void SetProcessTime( ::Double_t time );
00153       ::Double_t GetProcessTime() const;
00154 
00156       D3PDReadStats& AddVariable( const VariableStats& var );
00158       const VariableStats* GetVariable( const char* name ) const;
00160       const Map_t& GetVariables() const;
00161 
00163       ::Bool_t IsCompatible( const D3PDReadStats& rh ) const;
00165       D3PDReadStats& Add( const D3PDReadStats& rh );
00167       D3PDReadStats& operator+= ( const D3PDReadStats& rh );
00168 
00170       void AddToTreeCache( ::TTree* tree ) const;
00172       void AddToTreeCacheByEntries( ::TTree* tree, ::Long64_t minEntries ) const;
00174       void AddToTreeCacheByEntryFrac( ::TTree* tree,
00175                                       ::Double_t minEvFraction ) const;
00177       void AddToTreeCacheByBytes( ::TTree* tree, ::Long64_t minBytes ) const;
00179       void AddToTreeCacheByByteFrac( ::TTree* tree,
00180                                      ::Double_t minByteFraction ) const;
00181 
00183       std::vector< TString > GetBranchesByEntries( ::Long64_t minEntries ) const;
00185       std::vector< TString > GetBranchesByEntryFrac( ::Double_t minEvFraction ) const;
00187       std::vector< TString > GetBranchesByBytes( ::Long64_t minBytes ) const;
00189       std::vector< TString > GetBranchesByByteFrac( ::Double_t minByteFraction ) const;
00190 
00192       ::TH1* GetTreeAccessStat() const;
00194       ::TH1* GetEntryReadStat() const;
00196       ::TH1* GetZippedByteReadStat() const;
00198       ::TH1* GetUnzippedByteReadStat() const;
00199 
00201       ::Int_t Merge( ::TCollection* coll );
00202 
00204       void Print( ::Option_t* option = "" ) const;
00205 
00206    private:
00208       Map_t fVariables;
00210       ::Long64_t fBytesRead;
00212       ::Int_t fVariableNum;
00214       ::Int_t fFileReads;
00216       ::Int_t fCacheSize;
00218       ::Double_t fUnzipTime;
00220       ::Double_t fProcessTime;
00221 
00222       ClassDef( D3PDReadStats, 2 )
00223 
00224    }; // class D3PDReadStats
00225 
00226 } // namespace D3PDReader
00227 
00228 #endif // D3PDREADER_D3PDREADSTATS_H
 All Classes Functions Variables Typedefs Enumerations Enumerator