ユーザ用ツール

サイト用ツール


サイドバー

Menu


2023年度:実験ゼミ:caen

CAEN DT5740の使い方

データ取得のためのプログラムはC:/Program Files/CAEN/Digitizer/WaveDump/bin/WaveDump.exe、その設定ファイルは同じディレクトリのWaveDumpConfig_X740.txt(1 eventのデータ点の数、トリガーの掛け方などを設定できる)。
WaveDump.exeの使い方は以下の通り。

キー 意味
s データ取得のstart/stop(まだファイルの書き込みは行わない)
P continuousにplotを表示
A gnuplotのwindowを選択して押すとオートスケール
W continuousなファイルへの書き込みをstart/stop
q quit
(space) help

基本は
s(データの記録開始) → W(ファイルへの書き込み開始) → W(ファイルへの書き込み終了) → s(データ取得終了) → q(exit)
必要に応じてPでplotを確認する(Aでオートスケール)。
※注意点
小文字pとwはシングルイベントについての書き込みやプロット、大文字PとWはcontinuousな書き込みやプロットになります

ファイルの保存先はC:/Users/p1/WaveDump/、ファイル名はwave?.txt (? = ch)。
1023点で1 event(改行などの区切りはない)。(多分)62.5 MHz Sampling (1目盛 = 16 nsec)。
また書き込みの中断はevent中でも強制的に行うため、最後のeventは不完全になることがある(解析時に無視する必要あり)。
トリガーの位置はデータ取得時間の50%に設定しているため(Configファイルで設定可)、多分512あたり。

ファイルのかんたんな読み方(ROOTがさっと動く人向け)

pythonでやりそうなので、暇な人向け。
2023/07/07に取得したNa22の511 keV gamma線のデータはここ
以下のマクロ(make_ttree.cpp)を動かす。

$ root 'make_ttree.cpp("wave0.txt")'
root [1] .q

(もしくはwave2.txt)。するとwave0.rootというファイルができるので、あとは好きに解析する。
このファイルの中には、treeという名前のTTreeにvoltage[1023]という波形のファイルが入っている。各Entryは各eventに対応している。

make_ttree.cpp
#include <stdio.h>
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <TString.h>
#include <TFile.h>
#include <TTree.h>
 
void make_ttree(TString filename){
  //constant
  int nsample = 1023;
 
  //global variable
  double voltage[nsample];
  double value;
  std::cout << "FILENAME : " << filename << std::endl;
  std::ifstream data(filename);
 
  TString rootfile_name = filename.ReplaceAll(".txt",".root");
  TFile *rootfile = new TFile(rootfile_name,"recreate");
  TTree * tree = new TTree("tree","tree");
 
  tree->Branch("nsample",&nsample,"nsample/I");
  tree->Branch("voltage",voltage,"voltage[nsample]/D");
 
  std::string line;
  int j = 0;
  int i = 0;
  while(std::getline(data,line))
  {
    voltage[i] = stod(line);
    std::cout << "time  " << i << " : " << voltage[i] << std::endl;
    i++;
    if(i == nsample)
    {
      tree->Fill();
      i = 0;
      j++;
    }
  }
  std::cout << "# of event : " << j << std::endl;
  tree->Write();
  rootfile->Close();
  return 0;
}

例:かんたんな波形の確認の仕方

$ root wave0.root 
root [1] tree->Draw("voltage:Iteration$","Entry$==0","l")

これで、0番目のeventの波形を見ることができた。

2023年度/実験ゼミ/caen.txt · 最終更新: 2023/11/24 05:32 by kataoka