2000.04.22 Software Festa
PAW/HBOOK
戸村友宣
(東京大学)
HBOOKの作成
• moduleでhistogram/ntupleを定義、
作成
#include "tuple/BelleTupleManager.h" class User_ana : public Module { public:
…
void hist_def ( void ); … private: BelleHistogram* H1; BelleHIstogram* H2; BelleTuple* T1; … }
void User_ana::hist_def ( void ) {
extern BelleTupleManager* BASF_Histogram; BelleTupleManager* tm = BASF_Histogram;
H1 = tm->histogram("title", Nbin, min, max, id); //id は指定しなければ順番 H2 = tm->histogram("title", Nbinx, xmin, xmax, Nbiny, ymin, ymax, id); T1 = tm->ntuple("title", "var1 var2 …", id);
}
void User_ana::event ( BelleEvent* evptr, int* status ) { … H1->accumulate(x, 1.0); //weight は指定しなければ 1.0 H2->accumulate(x, y, 1.0); T1->column("var1", val1); T1->column("var2", val2); … T1->dumpData(); //これをしないと保存されない }
HBOOKの作成(続き)
• BASFでHBOOK fileを指定
basf> path add_module main user_ana
basf> initialize
basf> histogram define test.hbook
basf> process_event test.bbs 0
basf> terminate
– test.hbookというファイルができる。
– PAW, Mn_Fit, DISPLAY45など
PAW
• 参考文献
– PAW An Introductory Tutorial
• CERN Program Library Long
Writeup Q121
– PAW Which Even Monkeys Can
Use (猿でも使えるPAW)
• 起動
– pathが通っているものとして
xxxxxx [DCE:bwgxxx]% paw Calling 96a version of paw-X11
****************************************************** * * * W E L C O M E to P A W * * * * Version 2.07/23 13 May 1996 * * * ****************************************************** Workstation type (?=HELP) <CR>=1 : ←普通はただreturn Version 1.23/07 of HIGZ started
*** No default PAWLOGON file "/home/users/xxx/xxxxxx/.pawlogon.kumac" f ound
• 終了
PAW > quit
Exiting from PAW.
xxxxxx [DCE:bwgxxx]%
• ヘルプ
– command(指定しなければカテゴ
リーから選択)についてのヘルプ
を表示。表示手段はhost_pagerで
変更。($PAGER,$EDITORが
default。なければvi。)
– commandの使い方の表示。
• HBOOKファイルを開く
– lun : Logical Unit Number
• 0なら次に空いている番号。
– //LUNlun というdirectoryができる。
PAW > help [
command
]
PAW > usage
command
– PAWのdirectory
• // : Top
– //PAWC : memory上のPAWの作業領
域
– //LUN1など : userが開いたファイル
• directory関連のcommand(zebra/rz/)
– ldir : directoryの中身を表示。
– cdir : 指定したdirectoryへ移動。何も
指定しなければ今いるdirectoryを表示。
• ファイルを閉じる
– LUNがlunのファイルを閉じる。0
なら全て閉じる。
• histogram/ntupleの一覧を表示
P AW > c lo s e
lu n
PAW > histogram/list [
option
]
===> Directory :
1 (1) Mass difference
2 (1) Mass
3 (1) Proper time
4 (1) Proper time(3[s])
5 (1) Proper time(sideband)
6 (N)
D+-• histogramを表示する
– 範囲指定はid(min:max)のように
しておこなう。
• min,maxが整数ならbinの数、実数
なら横軸の値。
PAW > h is to g ra m /p lo t [id o p tion]• ntupleの一覧を表示
• ntupleのsummaryを表示
• ntupleのplot
– varをhistogramとしてplot。結果
はidh(defaultは1000000に保存。)
– 引数は!でdefaultを指定。
– で2次元plot。(縦軸var1、横軸
var2。)
PAW > ntuple/print id ******************************************************** * NTUPLE ID= id ENTRIES= xx name******************************************************** * Var numb * Name * Lower * Upper * ******************************************************** * 1 * var1 * 0.600000E+01 * 0.800000E+01 * * 2 * var2 * 0.250000E+03 * 0.223860E+05 * * 3 * var3 * 0.174913E+01 * 0.199489E+01 * ********************************************************
PAW > ntuple/list
===> Directory :
6 (N)
D+-PAW > ntuple/plot
id
.
var
[
uwfunc nevent ifirst nupd option idh
]
– まずhistoramを作る。
– projectする。
• ntupleをdumpする
– ファイル(指定しなければ画面)
にvarの値を書き出す。
– 変数の区切りはsep2。
• cut(uwfunc)について
– 指定することでuwfuncが1となる
eventだけを選ぶことができる。
• 例
–
–
としておいて
– これらのcombinationも可。
PAW > h istog ra m /cre a te /1 d h isto id title n b in m in m a x [v a lm a x] PAW > h is to g ra m /crea te /2 d h is to id title x n b in x m in x m a x y n b in y m in y m a x [v a lm a x]
PAW > n tu p le /p r o je c t id h id n .v a r [u w fu n c n e v e n t ifirs t]
PAW > n tu p le/d u m p id n .v a r(% v a r2 … ) [u w fu n c n e v e n t ifirst file n a m e se p 1 se p 2]
x>1.5.and.y>2.0
PAW > ntuple/cuts $1 x>1.5.and.y>2.0
• histogramのfit
– 簡単な場合
• g :
• e :
• pn :
PAW > histogram/fit
id func
[
option np par step pmin pmax
errpar
]
( )
( )
( )
°¿ ° ¾ ½ °¯ ° ® ¸¸¹ · ¨¨© § − ∗ − ∗ 2 3 2 5 . 0 exp 1 par par x par( )
( )
(
par
1
+
par
2
∗
x
)
exp
( )
( )
(
)
nx
n
par
x
par
par
1
+
2
∗
+
+
+
1
∗
PAW > histogram/fit 1 g 1 ********************************************** * * * Function minimization by SUBROUTINE HFITGA * * Variable-metric method * * ID = 1 CHOPT = TU * * * **********************************************Convergence when estimated distance to minimum (EDM) .LT. 0.10E+01
FCN= 0.5793983E-09 FROM MIGRAD STATUS=CONVERGED 40 CALLS 41 TOTAL EDM= 0.14E-05 STRATEGY=1 ERROR MATRIX UNCERTAINTY= 6.1%
EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 Constant 300.00 3.8190 -0.20826E-02 -0.37340E-05 2 Mean 0.28181E-05 0.11532E-01 0.19468E-06 0.12987E-07 3 Sigma 1.0000 0.53840E-02 0.73329E-05 0.28646
– 高度な場合
• functionをfortranで書く。
• fit用のvectorを作る。
– typeはI(Integer)かR(Real)。
– 例えば
• fitする。例えば
• optionの例
– e : better error estimation
– l : likelihood fit
REAL FUNCTION MASS(X) COMMON/PAWPAR/PAR(5)
DOUBLE PRECISION M_PI,MEAN
PARAMETER(M_PI=3.14159265358979323846D+00) MASS=PAR(1)*0.14/50/SQRT(2.0*M_PI)/PAR(3)*
& EXP(-0.5*((X-PAR(2))/PAR(3))**2)+PAR(4)+PAR(5)*X END