Ntupleデータの解析入門コース#4:プログラム内からヒストグラムをfillする

2003.4.26 T. Kondo | 入門コース:目次概要#1#2#3→HERE→ #5#6#7#8#9 | PAWコマンド表

[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/ の中に入れておく。


[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

→→→→→ 入門コース#5ヘ行く。
[注1] f77コンパイラーとpawが使う1行づつのコンパイラーは違うことがある。

[注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倍になっている。

サンプルプログラムやファイル
  • xmass.f:4つのisolated muon +- pairsのinvariant massを計算して対応するヒストグラムをfillする。神前氏による。
  • hist200.kumac:200 GeV Higgs解析用のhistogram生成kumacファイル。
    Send your comments of this home page to Taka Kondo