散乱粒子数と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
最終更新:2008年01月19日 00:04