ROOT logo
#ifndef ALILNHISTOMAP_H
#define ALILNHISTOMAP_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// class for handling histograms
// author: Eulogio Serradilla <eulogio.serradilla@cern.ch>

#include <TObject.h>
#include <TMap.h>

class TString;
class TH1;
class TH1D;
class TH2D;
class TAxis;
class TObjString;

class AliLnHistoMap: public TObject
{
  public:
	AliLnHistoMap();
	
	virtual ~AliLnHistoMap();
	
	//virtual Int_t Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0);
	//virtual Int_t Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const;
	
	TObject* Get(const TString& keyname) const { return fHistoMap->GetValue(keyname.Data()); }
	TObject* Get(const char* keyname) const { return fHistoMap->GetValue(keyname); }
	TObject* Get(const TObjString* key) const { return fHistoMap->GetValue((TObject*)key); }
	
	TMap* GetMap() const { return fHistoMap; }
	
	TObject* Add(const TString& keyname, TObject* value);
	
	TH1D* Add(const TString& name, Int_t nbins, Double_t xmin, Double_t xmax, const TString& title="", const TString& xlabel="", const TString& ylabel="", Bool_t logx=0);
	
	TH1D* Add(const TString& name, Int_t nbins, Double_t* xbins, const TString& title="", const TString& xlabel="", const TString& ylabel="");
	
	TH2D* Add(const TString& name, Int_t xbins, Double_t xmin, Double_t xmax, Int_t ybins, Double_t ymin, Double_t ymax, const TString& title="", const TString& xlabel="", const TString& ylabel="", Bool_t logx=0, Bool_t logy=0);
	
	TH2D* Add(const TString& name, Int_t nbinsx, Double_t* xbins, Int_t nbinsy, Double_t* ybins, const TString& title="", const TString& xlabel="", const TString& ylabel="");
	
	TH2D* Add(const TString& name, Int_t nbinsx, Double_t* xbins, Int_t ybins, Double_t ymin, Double_t ymax, const TString& title="", const TString& xlabel="", const TString& ylabel="");
	
	TH2D* Add(const TString& name, Int_t xbins, Double_t xmin, Double_t xmax, Int_t nbinsy, Double_t* ybins, const TString& title="", const TString& xlabel="", const TString& ylabel="");
	
	Bool_t SetLogXaxis(TH1* h);
	Bool_t SetLogYaxis(TH1* h);
	
  private:

	AliLnHistoMap(const AliLnHistoMap& other);
	AliLnHistoMap& operator=(const AliLnHistoMap& other);
	
	Bool_t SetLogBins(TAxis* axis);

  private:
 
	TMap* fHistoMap; //-> histogram map
	
	ClassDef(AliLnHistoMap, 1)
};

#endif // ALILNHISTOMAP_H
 AliLnHistoMap.h:1
 AliLnHistoMap.h:2
 AliLnHistoMap.h:3
 AliLnHistoMap.h:4
 AliLnHistoMap.h:5
 AliLnHistoMap.h:6
 AliLnHistoMap.h:7
 AliLnHistoMap.h:8
 AliLnHistoMap.h:9
 AliLnHistoMap.h:10
 AliLnHistoMap.h:11
 AliLnHistoMap.h:12
 AliLnHistoMap.h:13
 AliLnHistoMap.h:14
 AliLnHistoMap.h:15
 AliLnHistoMap.h:16
 AliLnHistoMap.h:17
 AliLnHistoMap.h:18
 AliLnHistoMap.h:19
 AliLnHistoMap.h:20
 AliLnHistoMap.h:21
 AliLnHistoMap.h:22
 AliLnHistoMap.h:23
 AliLnHistoMap.h:24
 AliLnHistoMap.h:25
 AliLnHistoMap.h:26
 AliLnHistoMap.h:27
 AliLnHistoMap.h:28
 AliLnHistoMap.h:29
 AliLnHistoMap.h:30
 AliLnHistoMap.h:31
 AliLnHistoMap.h:32
 AliLnHistoMap.h:33
 AliLnHistoMap.h:34
 AliLnHistoMap.h:35
 AliLnHistoMap.h:36
 AliLnHistoMap.h:37
 AliLnHistoMap.h:38
 AliLnHistoMap.h:39
 AliLnHistoMap.h:40
 AliLnHistoMap.h:41
 AliLnHistoMap.h:42
 AliLnHistoMap.h:43
 AliLnHistoMap.h:44
 AliLnHistoMap.h:45
 AliLnHistoMap.h:46
 AliLnHistoMap.h:47
 AliLnHistoMap.h:48
 AliLnHistoMap.h:49
 AliLnHistoMap.h:50
 AliLnHistoMap.h:51
 AliLnHistoMap.h:52
 AliLnHistoMap.h:53
 AliLnHistoMap.h:54
 AliLnHistoMap.h:55
 AliLnHistoMap.h:56
 AliLnHistoMap.h:57
 AliLnHistoMap.h:58
 AliLnHistoMap.h:59
 AliLnHistoMap.h:60
 AliLnHistoMap.h:61
 AliLnHistoMap.h:62
 AliLnHistoMap.h:63
 AliLnHistoMap.h:64
 AliLnHistoMap.h:65
 AliLnHistoMap.h:66
 AliLnHistoMap.h:67