TOF Calibration


  1. start counter slewing correction
  2. 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つくる回数が増える。)

  3. start counter MIP
  4. 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してる。

  5. rf
  6. TOF Speed of Light & Attenation Length
  7. 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を残す。

  8. TOF t0
  9. 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を確認。

  10. TOF MIP
  11. directory : TofMIP
    mkTofHist(src : mkTofHist.f)で各slatのtopとbottomの 相乗平均を取ったhistをつくる。 BeamPosと使いかたは同じ。outputのfile名を書いたfileを 入力に使う。
    >./mkTofHist < io.dat
    すでにあるio fileには.datの名前も入ってるがこれは使われてない。
    使うntupleのあるpathをsrcの中で指定してるので とりあえずここを変えてmakeしなおしてつかう。 t0を決めたときのntuple(3-4run)を使えば十分な統計がある。
    できた各slatのhistをLandau fitしてMIPのpeak位置を求める。
    MIPfit.kumac
    file名の書き換えはすること。
    mouse左clickでfittingの範囲の上限と下限を選ぶ(どっちが先でもよい)。 右clickで決定。 fittingがうまくいっているようであれば 1 を入力して次のslatへ。 うまくいかなかったら 0 (default) を入力してもう一度範囲を選び直す。 TofMIPのparameter fileとhbk fileができる。

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を変えられる。


workへ
Last modified: Tue Nov 28 18:39:00 JST 2006