ROOT使用THistogram类来绘制统计直方图。本文只总结了官网上部分代码和最最常用的构造函数等。如果能读透做很大一部分图像完全没问题。有些部分我会使用英语。
一、继承关系-Inheritance
如图所示,TH1为一维直方图,TH2为二维直方图,TH3为三维直方图。后缀的C,D,F,I,S分别为char,double,float,int,short。其意义为该直方图内每个道填充的事例的数量的上限。
具体的细节如下,引自官网:
- 1-D histograms:
- TH1C : histograms with one byte per channel. Maximum bin content = 127
- TH1S : histograms with one short per channel. Maximum bin content = 32767
- TH1I : histograms with one int per channel. Maximum bin content = INT_MAX (*)
- TH1F : histograms with one float per channel. Maximum precision 7 digits
- TH1D : histograms with one double per channel. Maximum precision 14 digits
- 2-D histograms:
- TH2C : histograms with one byte per channel. Maximum bin content = 127
- TH2S : histograms with one short per channel. Maximum bin content = 32767
- TH2I : histograms with one int per channel. Maximum bin content = INT_MAX (*)
- TH2F : histograms with one float per channel. Maximum precision 7 digits
- TH2D : histograms with one double per channel. Maximum precision 14 digits
- 3-D histograms:
- TH3C : histograms with one byte per channel. Maximum bin content = 127
- TH3S : histograms with one short per channel. Maximum bin content = 32767
- TH3I : histograms with one int per channel. Maximum bin content = INT_MAX (*)
- TH3F : histograms with one float per channel. Maximum precision 7 digits
- TH3D : histograms with one double per channel. Maximum precision 14 digits
二、构造函数-Constructor
对于所有的TH1(包含TH1C,TH1S,TH1I,TH1F,TH1D)具有类似的构造函数,合并为一类进行介绍。TH2以及TH3同理。
1、TH1
(1)Constructor for const bin size histograms
最常用的histogram构造函数,可以用来构建一个各区间等长的直方图。除最后一个区间为闭区间以外,每个区间均为前闭后开。
TH1::TH1 ( const char * name,
const char * title,
Int_t nbins,
Double_t xlow,
Double_t xup
)
Example:
TH1* th1 = new TH1("th1","test1",100,1.,100.);
//or you can:
TH1C* th1 = new TH1C("th1","test1",100,1.,100.);
TH1I* th1 = new TH1I("th1","test1",100,1.,100.);
TH1F* th1 = new TH1F("th1","test1",100,1.,100.);
TH1D* th1 = new TH1D("th1","test1",100,1.,100.);
(2)Constructor for variable bin size histograms
TH1::TH1 ( const char * name,
const char * title,
Int_t nbins,
const Float_t * xbins
)
TH1::TH1 ( const char * name,
const char * title,
Int_t nbins,
const Double_t * xbins
)
2、TH2
TH2类常用的构造函数。
TH2::TH2 ( const char * name,
const char * title,
Int_t nbinsx,
Double_t xlow,
Double_t xup,
Int_t nbinsy,
Double_t ylow,
Double_t yup
)
3、TH3
用处较少,仅罗列。
TH3::TH3 ( const char * name,
const char * title,
Int_t nbinsx,
Double_t xlow,
Double_t xup,
Int_t nbinsy,
Double_t ylow,
Double_t yup,
Int_t nbinsz,
Double_t zlow,
Double_t zup
)
三、常用方法
TH1类用处极广,方法极多,常用于绘制统计直方图,各类粒子谱,数学统计量分布等,具体请参阅《TH1绘制一维直方图》。TH2类常用于做平面散点图或截面密度或通量分布,之后也会单作一篇文章。TH3一般情况下使用频率较小,不再单独总结。此篇文章仅简单梳理THistogram的脉络,有兴趣的读者可以自行查看文尾的参考网站。
【资料】
1、ROOT官网——ROOT: analyzing petabytes of data, scientifically. - ROOT
2、ROOT文档——ROOT: Histogram Library
如有错误请指正。