cmlab変換


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

散乱粒子数とFCの値などを入力していけば断面積を計算し、
非相対論でCM系に変換して出力します。

あと、gnuplotでグラフをつくりやすいようにマクロも同時に出力します。
それと、テキストでもグラフを無理やり出力します。

texで、テーブルとグラフも出せるようなソースも出します。

使い方。

基本的にはkinematicsのprogramと使い方は同じで、parameterを入力しておいたファイルを
読み込ませて計算します。

1.tex2datを実行。

fittingの結果のtexファイルから
tex2datで、必要な情報だけを抜き出す。
~~.tex -> ~~.dat
としたファイルを出力する。
~~.datを見ると、12Cdd12Cなどなどと反応名が書いてありますが、変な反応名があったら修正してください。

2.crosssectionを実行。

tex2datで変換したファイルを、変換します。
~~.dat -> ~~plus.tex
としたファイルを出力。および、断面積のデータファイルを出力。
makegraph.plt
gnuplotのマクロ。
注意:データが多いと途中でデータが切れることがあるので、適当な量で分けてください。

3.gnuplot

gnuplot makegraph.plt
とすればすべてのグラフを一発で書きます。

4.platex

platex ~~plus.tex
で図を付けた表をつくります。


ファイルの内容は

#27Aldd27Al cross section [barn]
#E_LAB = 10, E_CM = 9.31, Ex = 0.00, Q-value = 0.00
#run, deg_LAB, crssc_LAB, error, deg_CM, crssc_CM, error
run0140 35.9 2.204e-01 1.192e-03 38.4 1.961e-01 1.061e-03
run0139 40.9 1.707e-01 8.425e-04 43.7 1.531e-01 7.557e-04
run0141 45.9 2.405e-01 1.177e-03 49.0 2.176e-01 1.065e-03

と、Lab系でのエネルギー、CM系でのエネルギー
そして、それぞれの系での散乱角と断面積(単位はbarnです)が出力されます。
誤差としては散乱粒子の平方根でしか評価していないので、
後々その点は、議論する必要があります。

あと、果てしなく無駄な機能として、ファイルの終わりに
次のようなグラフを出力します。

#graph
#THETA(CM)-2             -1             0              1              2 THETA(CM)
#       36|++++++++++++++|++++++++++++++|++++++++++++++|++++++++++++++|    36
#       37+                                                           +    37
#       38+                   *                                       +    38
#       39+                                                           +    39
#       40+                                                           +    40
#       41+                                                           +    41
#       42+                                                           +    42
#       43+                                                           +    43
#       44+                 *                                         +    44
#       45+                                                           +    45
#       46+                                                           +    46
#       47+                                                           +    47
#       48+                                                           +    48
#       49+                    *                                      +    49
#       50+                                                           +    50
#       51+                                                           +    51
#       52+               *                                           +    52
#       53+                                                           +    53
#       54+                                              *            +    54
#       55|++++++++++++++|++++++++++++++|++++++++++++++|++++++++++++++|    55
#THETA(CM)-2             -1             0              1              2 THETA(CM)


pltファイルは
gnuplot 27Aldd27Al.plt
のようにして、gnuplotでそのまま実行できて、epsファイルを出力します。

とりあえずプログラムとサンプルファイルを置いておきます。
ファイルが散らかってますが、具体的には
crosssec.c 
  program本体
defines.h
  いろいろな定数の設定。calibrationなどの情報もここに書いてある。
commonfunction.h
  excitedenergy.cとの共通部分。
awm.txt
  mass excessの数値表
reaction.txt
  12Cdp13Cなどの反応名から、質量数、原子番号の数値
toi.txt
  12Cdp13C1stなどの反応名から、励起エネルギーの文献値
rundatalist.txt
  run numberからターゲットの種類、傾きを得る
tex2dat.c
  tex->datへの変換program