Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:root:wantto19 [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:root:wantto19

ヒストグラムのbin、境界上はどっちに入る?

ヒストグラムのbin IDは, ヒストグラムのbin数をnbinsとして

bin = 0;       underflow bin
bin = 1;       first bin with low-edge xlow INCLUDED
bin = nbins;   last bin with upper-edge xup EXCLUDED
bin = nbins+1; overflow bin

のように振られる。 bin = i, (1<i<nbins)のときも、low-edgeを含み、upper-edgeを含まない。 例えば、

  TH1D *hist = new TH1D("hist","",10,0,10);
  hist->Fill(1);
  Int_t ibin = hist->FindBin(1);
  cout << "Integral [0,1] : " << hist->Integral( hist->FindBin(0), hist->FindBin(1) ) << endl;/// <-(a)
  cout << "Integral [0,1) : " << hist->Integral( hist->FindBin(0), hist->FindBin(1-1e-6) ) << endl;/// <-(b)
  cout << "bin content[0,1): " << hist->GetBinContent( hist->FindBin(0) ) << endl;/// <-(c)

とした場合、

  • bin=1 : 0 ≦ x < 1, bin=2 : 1≦ x < 2 のようになる。
  • Fillした1は以下の図のように、bin=2 : 1≦ x < 2 のbinに入る。
  • ibinには2が返る
  • (a)のようにした場合は0を含むbin (bin=1) から1を含むbin (bin=2)までのIntegralを取りなさい、ということなので、bin=2も含んでしまって1が返る。0-1のbinのことを指定したいのであれば、(b)のようにする。(これは(c)と同じこと)

となる。

ja/root/wantto19.txt · 最終更新: 2018/11/03 07:40 by kota