東京工業大学大学院理工学研究科基礎物理学専攻中村研究室メンバーTakayuki Sako

MakeVsta


CAEN V792の.vtsaをpedestalのパラメータファイルから自動生成するツール。

仕様

  • 言語 : C++
  • 使用しているライブラリ : 特になし

目的

pedestalをフィットした結果から.vstaを作るのが面倒臭い。IPDの関係でケーブルの繋ぎ方をスワップさせているのを修正するのが特に面倒。 そこで、ANAPAW用のmapファイルを読み込んでケーブルのスワップに完全対応した.vsta自動生成ツールを作った。

ファイル置き場

NEBULAのDAQPC nebula01の
/home/nebula/exp/test-2011aug/analysis/users/sk/tool/MakeVsta
に置いてある。WEB上にも置いておく。

更新履歴

  • Ver. 20111024 : 微修正。
  • Ver. 20111019 : 色々修正。これ以降は更新しないつもり。
    • ペデスタルをカットする際のマージンをガウシアンの幅で決定するように変更。これにより入力ファイルが1個増えた。
    • 簡易Helpを追加。引数が4個未満の時、Helpが表示される。
    • 変換チェックの為の.chkファイル出力オプションを追加。
    • ゼロモードを追加。
  • Ver. 20111016 : 公開。使い方がこれ以降のバージョンと異なる。

ファイル

Ver. 20111024に基づく
MakeVsta
|-- MakeVsta
|-- MakeVsta.cc
|-- MakeVsta.ini
|-- MakeVsta.o
|-- makefile
|-- nebula.map :テスト用sample
|-- test.vsta :テスト用sample
|-- ped_peak.txt :テスト用sample
`-- ped_sigma.txt :テスト用sample

使い方

MakeVsta.ini

現在のモジュールの設定に合わせてiniファイルを編集する。 一度設定すればほぼ変える必要はない。
  • コメントアウトは#。ただし各行の一文字目でないと認識しない
  • 無駄な改行があるとエラーになる
  • 順番を変えてはいけない
# QDC Model
v792
# Cut Margin : X sigma
6 //ペデスタルをカットする際に何σのマージンでカットするか。
# ModuleNoMax
10 //モジュールを何枚挿しているか
# ModuleIDMax
32 //1モジュール辺りのチャンネル数
# DetectorNumber
144 //全検出器数
# forbidden
255 //使わないチャンネルのTHEの値
# CtrlAddress
0x0000
# DetectorName
NEUT 101-130 U //検出器の名前。コメントアウト用なので何でも良い。
NEUT 101-130 D //このセクション以降はモジュールの順番に値を並べる
……
VETO 201-212 U/D
# ModuleAddress
0x0500 //各モジュールのアドレス
0x0501
……
0x0509
# ModuleGEO
21 //各モジュールのGEO
22
……
30
# ModuleIPD
240 //各モジュールのIPD
240
……
255

実行

$ ./MakeVsta peakfile sigmafile outputfile mapfile [-d]
  • peakfile : ペデスタルのピーク値を収めたパラメータファイル。ANAPAWに用いる物。全チャンネルのアップ→ダウンと並んでいることを前提としている。 NEBULAならN101U-N430U,V101U-V212U,N101D-N430D,V101D-V212Dの順。
  • sigmafile : ペデスタルをガウシアンでフィットした際の幅を収めたファイル。並び順はpeakfileと同一。
  • outputfile : 出力ファイルの名前
  • mapfile : ANAPAWで用いているGEOとIDの関係が記されているもの。実行するディレクトリにシンボリックリンクを張っておくと便利。
  • option : オプション
    • -a : デフォルト(=空白)。変換時の詳細情報を出力しない。
    • -d : 変換時の詳細情報を出力する。また、.chkファイルを出力する。このファイルにはGEO,Channel,検出器の名前もしくはその有無が並んでいる。変換のチェックとGEO,Channel,検出器のIDの対応の確認に使える。

ゼロモード

inputfileを0とすると存在するチャンネルのTHEを全て0にして、存在しないチャンネルのTHEを全てforbiddenで設定した値にする。これはペデスタルキル用に使うファイルになる。
$ ./MakeVsta 0 sigmafile outputfile mapfile [-d]

実行結果

実行すると以下のように表示される。
$ ./MakeVsta peakfile sigmafile outputfile mapfile
-------------------------------
MakeVsta
  IniFile = MakeVsta.ini
  MapFile = nebula.map
  peakfile -> outputfile
  number of lines : 289
    === Conversion is completed !! ===
-------------------------------
Conversion is completed !!と表示されると重大なエラーが起きていない可能性が高い。 ただし、出力ファイルを必ず確認のこと。

ヘルプ

./MakeVstaの際に引数が4個未満だと最低限のヘルプが表示される。 このヘルプで引数の並び順の確認等が行える。