[4-1] Fortran program内でヒストグラムをfillする: ・複雑な解析は、PAWコマンドでは限界がある。プログラムの中からヒストグラムをfillする方が発展性がある。 ・hist200.kumac で生成したヒストグラムをfillするためのプログラム xmass.f を作る。 ・xmass.fが呼ぶサブルーチンは、mkdirでlibrary/を作っておき amass.f, amass2.f, pmass2.f, psum.f, pttop.f を library/ の中に入れておく。→→→→→ 入門コース#5ヘ行く。[4-2] PAWで解析する: > paw | PAW 起動 PAW> exec datafile.kumac | ntuple dataをopen PAW> exec hist200.kumac | histogram creation PAW> cd //pawc PAW> h/li | lsit up histograms PAW> cd //lun1 PAW> zone 2 2 PAW> n/loop 102 xmass.f(7.0) | ntuple data scanning using n/loop [注2] PAW> opt logy | y軸をlogスケールにする。 PAW> h/pl 11 PAW> opt liny | y軸をlinearスケールに戻す。 PAW> h/pl 12,13,14 | plot histograms --> out4a.gif PAW> h/pl 21,22,23,24 | plot histograms --> out4b.gif PAW> h/pl 25,26,27,28 | plot histograms --> out4c.gif PAW> h/pl 29,31,32,33 | plot histograms --> out4d.gif
[4-3] ヒストグラムをガウス関数でfitする: PAW> h/op/reset 0 PAW> n/loop //lun1/102 xmass.f(7.0) PAW> zone 1 1 PAW> h/fit 31(170.:230.) g | 170-230GeVの範囲をガウス関数でfitしdisplayする。 PAW> opt fit | fitしたパラメターを表につける。 PAW> h/pl 31 | out4e.gif PAW> exit
[注2] n/loop 102 xmass.f(7.0) では、xmass.fを1回のみ実行するので、xmass.f内からfillしたヒストグラムは正しい結果になる。ところが[2-4]で学んだntupleのプロット方法の
PAW> n/pl 102.xmass.f(7.0)を使うと、n/pl は xmass.f を(プロット範囲設定のためらしい)2回呼ぶ。するとプログラム内でヒストグラムは2回 fillされてしまうので、間違った答えがでる。 --> xmass.fなどのプログラムを使ってヒストグラムを fill する時は 必ず n/loop を使うこと!! 次のようにして確かめられる:
PAW> hist/op/reset 0 PAW> n/pl 102.xmass.f(7.0) PAW> h/copy 11 1011 'output with n/pl' PAW> hist/op/reset 11 33 PAW> n/loop 102 xmass.f(7.0) PAW> zone 2 1 PAW> opt stat PAW> h/pl 1011,11 | out4f.gifに見るようにHIST=1011の各ビンの頻度は2倍になっている。