絶望


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

今現在(12/9、9:00)アップされてるzetubou.Cの情報です。
バイナリから直で読む形式になってます。
"dat2e("****.dat" ,"title",binの数(区切りの数),範囲min,範囲max)"
でEカウンター側のヒスト。
"dat2de("****.dat" ,"title",binの数(区切りの数),範囲min,範囲max)"
でdEカウンター側のヒスト。
カットをかけたい場合。
dat2e("filename", "title" ,binの数(区切りの数),範囲min,範囲max,dEのmin,dEのmax)でカットをかけれます。
ただの散布図+プロジェクションx,y
dat2scat("filename", "title")
散布図+プロジェクション+範囲限定散布図
dat2scat("filename","title",Int_t nbinx,Int_t xmin, Int_t xmax,Int_t nbiny,Int_t ymin, Int_t ymax)
てなカンジで。

例えば、gfitE(範囲min,範囲max,const,mean,sigma)
と打つことでシングルガウシアンでフィットができます。const,mean,sigmaはパラメーターの初期値。経験上meanの値をちゃんと定めればあとは割と適当で大丈夫。backgroundの上にピークがあるぞ、という場合は、
gfitE(範囲min,範囲max,const,mean,sigma、slope,intercept)
と2つ変数を足すことでガウシアン+線形でfit可。こいつでbackgroundを消したことにします。
変数を足せばダブルガウシアン+直線とかも可。
gfitE(範囲min,範囲max,const1,mean1,sigma1,const2,mean2,sigma2,slope,intercept)

さらに手抜きガウシアンフィット機能を追加。
gfitE(範囲min,範囲max)
だけでシングルガウシアンフィットをしてくれる、かもしれません。

ここでフィットに定義したガウシアンはconst×normalizeされたガウシアンという形になってます。rootのpredefinedされたガウシアンとは違うので注意。

χ^2/NDFがコンソール上に現れるのでこいつが1に近かったらfit成功。2,3…とかなら範囲や初期値を変えてみてください。どうにもよくならない場合もあるけど。

c1->SaveAs("*****.ps")で画面をセーブ可、dEはc2、scatはc3。
gPad->SetLogy() でy軸ログスケール
gPad->SetLogy(0) で元通り


ただソースがだいぶややこしくなったので、万が一使いたい場合は一旦ソースをチェックされてから使うことをお薦めします。
添付ファイル