(旧)研究メモ

kennkyuumemo

2次元ヒストグラムのピークのところでの軸の値をそれぞれもってきたいとき

二次元ヒストグラムでなんかの分布を見て、一番データが集中してるところでのx, yの値がほしいときがよくある
ヒストグラムの名前をhist1とすると、

int maxbin;          
int maximum_xbin;
int maximum_ybin;
int dammyz;
double maximum_x;
double maximum_y;

maxbin = hist1->GetMaximumBin();                      //グローバルなbinの値をとってくる
hist1->GetBinXYZ(maxbin, maximum_xbin, maximum_ybin, dammyz); //グローバルなbinの値を、x,y,z軸それぞれのbin番号に変える(今は二次元なのでzはダミー)
maximum_x = hist1->GetXaxis()->GetBinCenter(maximum_xbin); //bin番号を、その軸上での値に変える
maximum_y = hist1->GetYaxis()->GetBinCenter(maximum_ybin);

とする。Hough変換とかで便利

コンパイルして使用している場合、これらの関数はTH1で定義されているので、TH1.hをincludeする