directory:staslew
start counterのHVなどをかえていなければ
何度もやる必要はない。
TOFのみ、e+e-のみのntupleをつくる。
(switch.in のリンク先をswitch.in.tofeeにする.)
BunchSele.kumac
slewing correctionの関数を求めるための1bunchを選び、rangeを決める。
staslew (src:staslew.f)
上で決めたrangeをsrcの中で設定する。
つくったntupleをこのdirectoryにcopyする。
ntupleの名前、数をsrcの中で設定する。
bunchのselectionに用いるsta_sqr(= adc_sta(1)*adc_sta(2)/StartMIP )の中に
StartMIPがでてくるが
1bunchが選びだせればよいのであとでStartMIPを求める。
(先にもとめるにはntupleつくる回数が増える。)
directory:rffit
(使うntupleがee eventでないので)
これもstart counterのHVなどをかえていなければ
何度もやる必要はない。
TOFのみのntupleをつくる。
(switch.in のリンク先をswitch.intofにする.)
rffitのdirectoryで
StaMIP.kumac (LandauFit.f mkStaMip.sh)
これはhadron eventで1MIPのピークにLandau fitしてる。
trackも含む解析をしたntupleをつくる。(1runで十分。)
tofdiff.kumacを実行し、各slatでtofdiff(topTDCとbottomTDCの差から求めたy)と
DCのtrackから求めたTOFの位置のyの差がどれだけずれてるかcheck。
解析するntupleがあるdirectoryにリンクとしてntinを張って
remake (src: remake.f)
TofAtt[run number].dat,TofSol[run number].dat ができるので
LEPSana parameter directoryにおいてもう一度ntupleをつくる。
tofdiff.kumac#all を実行し、tofdiff-ytof % slat が平らになってることを確認したら
AttSol 決定。
tofdiff#save [run number]でps fileとhistを残す。
directory:t0/t0calib
+側はproton、-側はpi-のmassが正しく分布するようにt0を決める。
まずはmomentumとmass(or mass2)のscatter plotをcheck。
particleに対応するlocusが真っ直ぐになっているか確認する。
trackも含む解析をしたntupleをつくる。3~4run必要。ただしはじめは
AttSol用につくったものでだいたいの様子を見ればよい。
rangesele.kumac (#all 1) 全slatあわえてpp%pm/qqをplot。
rangesele.kumac (#allslat) 各slatごとにpp%pm/qqをplot。
曲がり方がばらばらだったり曲がりすぎてparticleのlocusのmass軸への射影が
重なってしまったりしたら、
pm2cor.f のdt0を調整して
exe rangesele [slat No.] [slat No.]
でlocusが真っ直ぐになるようにして、この時のdt0の値をもともとのt0の値に
加えて新しいt0を求める。
曲がり方がひどくても、どのslatもおなじようならばt0glbだけ変えればよい。
この場合、上のdt0をもともと使っていたt0glb file の値に加えて
新たなt0glbとする。
曲がり方がまちまちの場合、t0calc (src:t0calc.c)を使う。
まず、各slatごとに、もともとのt01 fileの値を配列t0orgに、
dt0の値を配列t0diffに入れてcompileし、
新たなt01 fileにredirectするかたちで実行する。
(はじめからlocusがだいたい真っ直ぐならすぐ以下の作業に移ってよい。)
これでだいたいのt0をきめたらこのt0を使って再びntupleをつくる。
ntupleができたらlocusが真っ直ぐか一応確認して
t0.kumac(t0.f) を実行。
このとき、ntupleをつくったときのt01 file をこのdirectoryに置いておく。
また、t0.kumacの中身もfile名など必要なところは変更する。
dt0の分布の中心をgaussian fitで求めているので、
とりあえずこのmacroでdt0の分布をslat 1本ずつplotしてみながら
gaussian fitする範囲を決め、macroを編集する(fitting rangeのところ)。
特に-側はpionにelectronが混じってきてふた山になるので
またがってfitしないように注意する。
macroを編集したらもう一度実行してうまくfitしてるか確認。
t0.fはproton,pionのrangeを設定しているので、
pm2の分布をみてrangeがあっているか確認する。
rangesele#all 0 (pm2cor.fをつかってるので、
pm2cor.fのdt0を0にしておくこと。)
TofT01_[run number].datというfileができるので適宜名前を変えて
t01 directoryに置く。
t0.kumac を実行するとt0diffのhistができる(t0_[run#].hbk)ので、これを利用した
t0diff.kumac を実行し(file名などは適宜変更する)、t0がどれくらいずれてるかcheckする。
t0diffの分布の中心が0ならOK.この時点でt0決定。
0からずれていれば、t0.kumacによってできたt0を用いて再びntupleをつくり同じcheckをする。
pidの様子をps fileに残す。
PAW> rangesele#ps [runnumber]-[何回目か]
これで例えば pid35237-3.ps のようなfileができる。
これはslatごとのpp%pm/qq(ee rejectionゆるい.abs(ybar)>30.)と、
abs(ybar)>30 と abs(ybar)>110 の全slatのpp%pm/qqとpm/qqの1d-histをかく。
massのpeak,sigmaを確認。
2trk run の場合
2006.11.16現在、上記のやり方ではうまくいかない。
trackingがうまくいっていないようだ。
rfは上のとおりでよい。triggerがかわるので当然ずれる。
AttSolはどちらも値が小さくでる。
e+e-が相当入ってるはずだから、ybarでcutをかけると一部(8,9あたり)以外
ほぼまともになる。
ただしdiffsolから求めたposition resolutionは30くらいになってしまう
(普通20以下)。
とりあえずslat dependenceなく、皆0を中心に分布すればよしとする。
下手にremakeせず、直前のstd runで決めたparameterで解析してみて
よければそれでok。
t0もt0.f,t0.kumacがうまく行かない。
TOFのHVをかえてなければ直前のstd runのt0glbだけ
変えればよいはずなので、
pm2cor.fのdt0を変えながら
<exe rangesele#all-2trk 2
で確認しながら手で決めてしまう。all-eeRejの中でybarcutを変えられる。