#ifndef HRICH700HISTMANAGER_H_
#define HRICH700HISTMANAGER_H_
#include "TObject.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TGraph.h"
#include "TGraph2D.h"
#include "TProfile.h"
#include "TProfile2D.h"
#include "TCanvas.h"
#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <cassert>
#include <utility>
#include <functional>
class TFile;
class TNamed;
using std::map;
using std::make_pair;
using std::string;
using std::vector;
class HRich700HistManager : public TObject
{
public:
HRich700HistManager();
virtual ~HRich700HistManager();
void Add( const string& name,TNamed* object);
template<class T> void Create1(const string& name,
const string& title,
Int_t nofBins,
Double_t minBin,
Double_t maxBin)
{
T* h = new T(name.c_str(), title.c_str(), nofBins, minBin, maxBin);
Add(name, h);
};
template<class T> void Create2(const string& name,
const string& title,
Int_t nofBinsX,
Double_t minBinX,
Double_t maxBinX,
Int_t nofBinsY,
Double_t minBinY,
Double_t maxBinY)
{
T* h = new T(name.c_str(), title.c_str(), nofBinsX, minBinX, maxBinX, nofBinsY, minBinY, maxBinY);
Add(name, h);
};
template<class T> void Create3(const string& name,
const string& title,
Int_t nofBinsX,
Double_t minBinX,
Double_t maxBinX,
Int_t nofBinsY,
Double_t minBinY,
Double_t maxBinY,
Int_t nofBinsZ,
Double_t minBinZ,
Double_t maxBinZ)
{
T* h = new T(name.c_str(), title.c_str(), nofBinsX, minBinX, maxBinX, nofBinsY, minBinY, maxBinY, nofBinsZ, minBinZ, maxBinZ);
Add(name, h);
}
TH1* H1( const string& name) const;
TH2* H2( const string& name) const;
TH3* H3( const string& name) const;
TGraph* G1( const string& name) const;
TGraph2D* G2( const string& name) const;
TProfile* P1( const string& name) const;
TProfile2D* P2( const string& name) const ;
Bool_t Exists( const string& name) const;
void WriteToFile();
void ReadFromFile(TFile* file);
void AddTNamedObject(TObject* obj);
void AddTDirectoryObject(TObject* obj);
void Clear(Option_t*);
void ShrinkEmptyBinsH1(const string& histName);
void ShrinkEmptyBinsH2(const string& histName);
void Scale( const string& histName, Double_t scale);
void NormalizeToIntegral(const string& histName);
void Rebin( const string& histName, Int_t ngroup);
string ToString() const;
TCanvas* CreateCanvas(
const string& name,
const string& title,
Int_t width,
Int_t height);
void SaveCanvasToImage(
const string& outputDir,
const string& options = "png");
friend std::ostream& operator<<(std::ostream& strm, const HRich700HistManager& histManager) {
strm << histManager.ToString();
return strm;
}
private:
map<string, TNamed*> fMap;
vector<TCanvas*> fCanvases;
ClassDef(HRich700HistManager, 1)
};
#endif /* HRICH700HISTMANAGER_H_ */
hrich700histmanager.h:100 hrich700histmanager.h:101 hrich700histmanager.h:102 hrich700histmanager.h:103 hrich700histmanager.h:104 hrich700histmanager.h:105 hrich700histmanager.h:106 hrich700histmanager.h:107 hrich700histmanager.h:108 hrich700histmanager.h:109 hrich700histmanager.h:110 hrich700histmanager.h:111 hrich700histmanager.h:112 hrich700histmanager.h:113 hrich700histmanager.h:114 hrich700histmanager.h:115 hrich700histmanager.h:116 hrich700histmanager.h:117 hrich700histmanager.h:118 hrich700histmanager.h:119 hrich700histmanager.h:120 hrich700histmanager.h:121 hrich700histmanager.h:122 hrich700histmanager.h:123 hrich700histmanager.h:124 hrich700histmanager.h:125 hrich700histmanager.h:126 hrich700histmanager.h:127 hrich700histmanager.h:128 hrich700histmanager.h:129 hrich700histmanager.h:130 hrich700histmanager.h:131 hrich700histmanager.h:132 hrich700histmanager.h:133 hrich700histmanager.h:134 hrich700histmanager.h:135 hrich700histmanager.h:136 hrich700histmanager.h:137 hrich700histmanager.h:138 hrich700histmanager.h:139 hrich700histmanager.h:140 hrich700histmanager.h:141 hrich700histmanager.h:142 hrich700histmanager.h:143 hrich700histmanager.h:144 hrich700histmanager.h:145 hrich700histmanager.h:146 hrich700histmanager.h:147 hrich700histmanager.h:148 hrich700histmanager.h:149 hrich700histmanager.h:150 hrich700histmanager.h:151 hrich700histmanager.h:152 hrich700histmanager.h:153 hrich700histmanager.h:154 hrich700histmanager.h:155 hrich700histmanager.h:156 hrich700histmanager.h:157 hrich700histmanager.h:158 hrich700histmanager.h:159 hrich700histmanager.h:160 hrich700histmanager.h:161 hrich700histmanager.h:162 hrich700histmanager.h:163 hrich700histmanager.h:164