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

// Author: Markus Fasel

#include <TNamed.h>

class TArrayD;
class TAxis;
class TList;
class THashList;

class THistManager : public TNamed {
public:
	THistManager();
	THistManager(const char *name);
	~THistManager();
	void ReleaseOwner() { fIsOwner = kFALSE; };

	void CreateHistoGroup(const char *groupname, const char *parent = "/");

	void CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax);
	void CreateTH1(const char *name, const char *title, int nbins, const double *xbins);
	void CreateTH1(const char *name, const char *title, const TArrayD &xbins);
	void CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax);
	void CreateTH2(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy, const double *ybins);
	void CreateTH2(const char *name, const char *title, const TArrayD &xbins, const TArrayD &ybins);
	void CreateTH3(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, int nbinsz, double zmin, double zmax);
	void CreateTH3(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy, const double *ybins, int nbinsz, const double *zbins);
	void CreateTH3(const char *name, const char *title, const TArrayD &xbins, const TArrayD &ybins, const TArrayD &zbins);
	void CreateTHnSparse(const char *name, const char *title, int ndim, const int *nbins, const double *min, const double *max);
	void CreateTHnSparse(const char *name, const char *title, int ndim, const TAxis **axes);
	void SetObject(TObject * const o, const char *group = "/");
	void FillTH1(const char *hname, double x, double weight = 1.);
	void FillTH2(const char *hname, double x, double y, double weight = 1.);
	void FillTH2(const char *hname, double *point, double weight = 1.);
	void FillTH3(const char *hname, double x, double y, double z, double weight = 1.);
	void FillTH3(const char *hname, const double *point, double weight = 1.);
	void FillTHnSparse(const char *name, const double *x, double weight = 1.);

	THashList *GetListOfHistograms() { return fHistos; }
	TObject *FindObject(const char *name) const;
	virtual TObject *FindObject(const TObject *obj) const;

private:
	THistManager(const THistManager &);
	THistManager &operator=(const THistManager &);
	THashList *FindGroup(const char *dirname) const;
	void TokenizeFilename(const char *name, const char *delim, std::vector<std::string> &listoftokens) const;
	const char *basename(const char *path) const;
	const char *histname(const char *path) const;

	THashList *fHistos;                   // List of histograms
	bool fIsOwner;                        // Set the ownership

	ClassDef(THistManager, 1);  // Container for histograms
};

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