ユーザ用ツール

サイト用ツール


public:f4500

分光蛍光光度計 日立 F-4500

KEKにあるやつだが、なぜかうちにある。

Spec.

あとでだれかかいて。

消耗品

ランプ

  • 標準ランプ (P/N 650-1500)
  • 長寿命ランプ (P/N 250-1600)
    • L2175-01

PMT

解析手順 (簡易版)

分光器で測定したファイル sample.xls をrootで解析して表示するためには以下の手順をおこないます。

  1. excel ファイルを csv ファイルに変換
    • csv (Comma Separated Values): “,” で区切られたテキスト形式
  2. csv ファイルを root ファイルに変換
    • ここで2次元だけでなく、励起波長・発光波長を固定したときの分布(1次元)作成を決める。
  3. root ファイルから pdf ファイルを作成
    • 作成したヒストグラムを出力
  4. 2次元分布からピークになる励起波長・発光波長を調べる
  5. 2 に戻って、ピークの励起波長・発光波長の断面の1次元分布をroot ファイルに追加する。
    • ずれていたら波長を修正して、再度root ファイルを作成する。

解析プログラムの準備

解析プログラム f4500_v402.tar.gzをダウンロードして、 Ubuntu環境のホームディレクトリに置き、tar コマンドで展開します。

$ cd
$ tar xvf f4500_v402.tar.gz
x ./f4500/
x ./f4500/xls/
:
f4500というディレクトリができますので、そちらに移動。
$ cd f4500

ディレクトリ構成

解析したいファイルには、Y11200-01.xls を例として使います。

以下のディレクトリ(フォルダ)ができていますので、f4500/xls/ の下に解析したいY11200-01.xlsを置きます。

f4500 ---- bin                      解析プログラムの実行ファイルを保存
        |- csv                      csv file を保存
        |- macro                    rootのマクロファイル (root fileからpdf fileを作成するマクロ)
        |- pdf                      pdf file を保存
        |- root                     root file を保存
        |- src                      解析プログラムのソースファイル
        |- xls  ---- Y11200-01.xls  excel file を保存

解析プログラムの作成

解析プログラムをソースファイルからコンパイルして実行ファイルを作成します。

$ cd src
$ make clean
$ make
$ cd ..
すると bin の下に、f4500_root というファイルが出来ます。 これが実行ファイルになります。

f4500 ---- bin  ---- f4500_root     解析プログラムの実行ファイルを保存
        |- csv                      csv file を保存
        |- macro                    rootのマクロファイル (root fileからpdf fileを作成するマクロ)
        |- pdf                      pdf file を保存
        |- root                     root file を保存
        |- src                      解析プログラムのソースファイル
        |- xls  ---- Y11200-01.xls  excel file を保存

(srcやbinの下には他のファイルもあるので注意)

excel -> csv

excelファイルからcsvファイルに変換

$ xls2csv xls/Y11200-01.xls | nkf -w > csv/Y11200-01.csv
csv/ の下に Y11200-01.csvが作成されます。

f4500 ---- bin  ---- f4500_root     解析プログラムの実行ファイルを保存
        |- csv  ---- Y11200-01.csv  csv file を保存
        |- macro                    rootのマクロファイル (root fileからpdf fileを作成するマクロ)
        |- pdf                      pdf file を保存
        |- root                     root file を保存
        |- src                      解析プログラムのソースファイル
        |- xls  ---- Y11200-01.xls  excel file を保存

csv -> root

csv ファイルからrootファイルを作成するには、先ほど実行ファイルを作成したf4500_rootを使います。

$ ./bin/f4500_root Y11200-01
./csv/Y11200-01.csv
Title:   Y11200-01
Excit:   200-600 Step: 5 Slit: 1 Bin: 81
Emit:    200-600 Step: 5 Slit: 1 Bin: 81
$
解析するファイルの指定は、csv/xxxx.csv からディレクトリと拡張子.csvを抜いた xxxx のみを書きます。

f4500 ---- bin  ---- f4500_root     解析プログラムの実行ファイルを保存
        |- csv  ---- Y11200-01.csv  csv file を保存
        |- macro                    rootのマクロファイル (root fileからpdf fileを作成するマクロ)
        |- pdf                      pdf file を保存
        |- root ---- Y11200-01.root root file を保存
        |- src                      解析プログラムのソースファイル
        |- xls  ---- Y11200-01.xls  excel file を保存

励起波長・発光波長の範囲やステップはcsvファイルに書かれているので自動的に読み込んで root ファイルを作成します。

root -> pdf

root ファイルのままだと中身をみるのが大変なので、今回は作成されたヒストグラムをすべてpdfファイルに出力します。

$ root 
root [0] .x ./macro/print2d.cc("Y11200-01", "")
Info in <TCanvas::Print>: pdf file ./pdf//Y11200-01_ALL.pdf has been created
 :
root [1] .q
$
root内でマクロprint2d.ccを実行すると、別ウィンドウが開いて、ヒストグラムが表示され、pdfファイルpdf/Y11200-01_ALL.pdfが作成されます。

f4500 ---- bin  ---- f4500_root         解析プログラムの実行ファイルを保存
        |- csv  ---- Y11200-01.csv      csv file を保存
        |- macro                        rootのマクロファイル (root fileからpdf fileを作成するマクロ)
        |- pdf  ---- Y11200-01_ALL.pdf  pdf file を保存
        |- root ---- Y11200-01.root     root file を保存
        |- src                          解析プログラムのソースファイル
        |- xls  ---- Y11200-01.xls      excel file を保存

pdf ファイル

作成されたpdf ファイルは6ページになります。

  1. 縦軸:励起波長(nm) 横軸:発光波長(nm) の 2次元分布 (Linear)
  2. 縦軸:励起波長(nm) 横軸:発光波長(nm) の 2次元分布 (Log)
  3. 縦軸:励起波長(nm) 横軸:発光波長(nm) の 2次元分布 cut済み (Linear)
  4. 縦軸:励起波長(nm) 横軸:発光波長(nm) の 2次元分布 cut済み (Log)
  5. 横軸:発光波長(nm) へ射影した1次元のヒストグラム
  6. 縦軸:励起波長(nm) へ射影した1次元のヒストグラム

特定の励起・発光波長での分布の追加

出力したpdfの2次元分布をみて、ピークとなっている励起・発光波長を見積もります。 例のY11200-01_ALL.pdfの場合、励起波長が425nmと325nm 発光波長が490nmあたりと見られますので、 その波長でのピーク波長での断面を作成します。そのためにはroot ファイルを作成し直します。 rootファイル作成の解析プログラムのオプションで指定します。 指定する波長は測定した値、今回の場合は5nm stepで測定していますので、5の倍数の波長を入れてください。

$ ./bin/f4500_root -x 425 -x 325 -m 490 Y11200-01
./csv/Y11200-01.csv
Title:   Y11200-01
Excit:   200-600 Step: 5 Slit: 1 Bin: 81
Emit:    200-600 Step: 5 Slit: 1 Bin: 81
Excit1D: 425nm
Excit1D: 325nm
Emit1D:  490nm
$
その後、pdfの作成をすると、ページ数が増えて、励起波長425nmと325nm, 発光波長490nmの断面の1次元ヒストグラムが表示されます。

作成されたpdfファイルで2次元分布には断面を作成した波長に赤線が引かれますので、その波長がピークになっているかを確認して ずれていたら、波長を修正して再度解析プログラムf4500_rootを実行し、マクロでpdfファイルを作成します。

これを繰り返すことで、目的のヒストグラムが得られます。 y11200-01_all.pdf

解析プログラム (詳細解説)

excel to csv 変換

収集したExcelデータをcsv形式に変換する

$ xls2csv input.xls | nkf -w > output.csv
$ # 一括変換 (*.xls -> *.csv)
$ for i in `ls $SRCDIR/*.xls `; do echo $i; CSV=`echo ${i##*/} | sed 's/xls/csv/'`; xls2csv $i | nkf -w >$DSTDIR/$CSV;  done
\$SRCDIR (excel fileのあるディレクトリ), \$DSTDIR (csv fileを出力するディレクトリ)は個々に指定

  • xls2csvでは自動的にUTF-8に変換されるが半角カナが残るためnkfをかましている
  • Excelのcsv保存はShift JISになるかだったかで面倒(できると思うが試していない)

xls2csv, nkfがない場合

パッケージでインストールする

  • debian (Ubuntu?) では xls2csvはcatdocのパッケージにある

# apt-get install nkf catdoc

csvからroot file作成

サンプルコード(最新verson4.01):f4500_v401.tar.gz

src/ でmakeすると、bin/f4500_rootができる。

$ ls csv/*.csv
Y11200-01.csv
$ bin/f4500_root Y11200-01 # root/Y11200-01.rootを作成 (2次元plot(TH2D)Y11200-01とY11200-01Cut(カット条件を入れたもの)と1次元射影(TH1D) Y11200-01_Ex, Y11200-01_Em ができる、)
Title: Y11200-01
Excit: 200-600 Step: 5 Slit: 1 Bin: 81   # 波長範囲、ステップはcsvファイルから読み込んで自動設定
Emit:  200-600 Step: 5 Slit: 1 Bin: 81
$ ls root
Y11200-01.root
$ ls csv/20210813/*.csv
Y11-02.csv
$ mkdir -p root/20210813
$ bin/f4500_root -d 20210813 -l 220:230 -a 240 -c 1.0 -p -x 455 Y11-02 
  # 2次元plot (TH2D: Y11-02)が作られる
  # カット条件は-l -a -c, (-2, -o) で指定。カットした結果が(TH2D: Y11-02Cut)で、
  # このplotの最大値でY11-02はスケールされる
  # Y11-02Cutを各軸に射影したものが (TH1D Y11-02_Ex, Y11-02_Em)
  # -pで最大値の点のslice(発光波長490nmの励起波長分布と励起波長425nmの発光波長分布
  # (Y11-02_Em490, Y11-02_Ex425)をTH1Dで作成される
  # sliceする波長を自分で決める場合は -x 励起波長、 -m 発光波長 で指定 (TH1D Y11-02_Em455)
  #
  # -d subdir : csv, root fileがsub directory にあるときは指定($F4500_BASE/$F4500_[CSV|ROOT]/subdir/filename.[csv|root] にアクセス)
  # 環境変数でファイルの有るディレクトリは変更できる(ver.3より)
  #   F4500_BASE: base directory (default: ./)
  #   F4500_CSV:  csv directory  (default: csv/)
  #   F4500_ROOT: root directory (default: root/)
./csv/20210813/Y11-02.csv
Title:   Y11-02
Excit:   200-600 Step: 5 Slit: 1 Bin: 81
Emit:    200-600 Step: 5 Slit: 1 Bin: 81
Excit1D: 455nm
Excit1D: 425nm
Emit1D:  490nm
$ root -l root/20191014/Y11-02.root
Attaching file ./root/Y11-02.root as _file0...
root [1] _file0->ls()
TFile**		./root/20210813/Y11-02.root
 TFile*		./root/20210813/Y11-02.root
  KEY: TH2D	Y11-02;1	Y11-02                 # 2次元plot
  KEY: TH2D	Y11-02Cut;1	Y11-02Cut              # 2次元plot (cut後)
  KEY: TH1D	Y11-02_Em;1	Y11-02Cut              # Emission 軸への射影   (横軸 Emission)
  KEY: TH1D	Y11-02_Ex;1	Y11-02Cut              # Excitation 軸への射影 (横軸 Excitation)
  KEY: TH1D	Y11-02_Ex455;1	Y11-02_Ex455           # Excitation 455nmのときのEmission分布 (option指定 -x 455)
  KEY: TH1D	Y11-02_Ex425;1	Y11-02_Ex425           # Excitation 455nmのときのEmission分布 (最大値自動生成 -p)
  KEY: TH1D	Y11-02_Em490;1	Y11-02_Em490           # Emission   490nmのときのExcitation分布 (最大値自動生成 -p)
cutの設定についての詳細はこちらの図を参照

macro/ 以下に2次元plotの印刷サンプルがある

$ mkdir pdf/20210813

$ root 
root [1] .x ./macro/print2d.cc("Y11-02", "20210813")
# or
$ root -l -q -x 'macro/print2d.cc("Y11-02", "20210813")'
# pdf/20191014/Y11-02_all.pdfを作成(2次元4枚・1次元射影5枚)

$ ls pdf/20210813
Y11-02.pdf
y11-02_all.pdf

cutの手法例

f4500_root のオプション設定が大変難しいので、どのようにカットしていくのかの例を以下にあげます。 解析例

public/f4500.txt · 最終更新: by tajima