この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
ja:root:wantto19 [2018/11/03 07:10] kota 作成 |
ja:root:wantto19 [2018/11/03 07:40] (現在) kota |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== ヒストグラムのbin、境界上はどっちに入る? ====== | ====== ヒストグラムの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を含まない。 | ||
例えば、 | 例えば、 | ||
<code cpp> | <code cpp> | ||
TH1D *hist = new TH1D("hist","",10,0,10); | TH1D *hist = new TH1D("hist","",10,0,10); | ||
hist->Fill(1); | 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) | ||
</code> | </code> | ||
- | とした場合、fillしたものはどちらのbinに入るか? | + | とした場合、 |
+ | * 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:histbin.png | + | {{:ja:root:histbin.png?600|}} |
- | にあるように、1−2の間のbinに入る。 | + | |