aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmass_profile/coolfunc_calc.sh102
-rwxr-xr-xmass_profile/coolfunc_calc2.sh173
-rwxr-xr-xmass_profile/fit_nfwmass.sh4
-rwxr-xr-xmass_profile/fit_sbp.sh2
4 files changed, 62 insertions, 219 deletions
diff --git a/mass_profile/coolfunc_calc.sh b/mass_profile/coolfunc_calc.sh
index c4935b7..9a01648 100755
--- a/mass_profile/coolfunc_calc.sh
+++ b/mass_profile/coolfunc_calc.sh
@@ -1,39 +1,32 @@
#!/bin/sh
-#
-# unalias -a
-#
-###########################################################
-## Task: ##
-## Calc `cooling function' data according to ##
-## given `temperature profile' ##
-## ##
-## NOTE: ##
-## given `tprofile': <radius> <temperature> ##
-## calc `cooling function' by invoking `XSPEC' ##
-## using model `wabs*apec' ##
-## ##
-## LIweitiaNux <liweitianux@gmail.com> ##
-## August 17, 2012 ##
-###########################################################
+##
+## Calculate the 'cooling function' profile with respect to the
+## given 'temperature profile' and the average abundance, redshift,
+## and column density nH, using the XSPEC model 'wabs*apec'.
+##
+## Weitian LI
+## Created: 2012-08-17
+## Updated: 2016-06-08
+##
## cmdline arguments {{{
-if [ $# -ne 5 ]; then
+if [ $# -eq 5 ]; then
+ :
+elif [ $# -eq 6 ]; then
+ COOLFUNC_BOLO="$6"
+ [ -e "${COOLFUNC_BOLO}" ] && rm -f ${COOLFUNC_BOLO}
+else
printf "usage:\n"
- printf " `basename $0` <tprofile> <avg_abund> <nH> <redshift> <coolfunc_outfile>\n"
+ printf " `basename $0` <tprofile> <avg_abund> <nH> <redshift> <coolfunc_outfile> [coolfunc_bolo]\n"
exit 1
fi
-base_path=`dirname $0`
TPROFILE=$1
ABUND_VAL=$2
N_H=$3
REDSHIFT=$4
-NORM=`$base_path/calc_distance $REDSHIFT|grep norm|awk '{print $2}'`
-
-echo $NORM
-
-
+NORM=`cosmo_calc ${REDSHIFT} | grep 'norm.*cooling_function' | awk -F':' '{ print $2 }'`
COOLFUNC_DAT=$5
-COOLFUNC_DAT_RATIO=flux_cnt_ratio.txt
+COOLFUNC_DAT_RATIO="flux_cnt_ratio.txt"
if [ ! -r "${TPROFILE}" ]; then
printf "ERROR: given tprofile '${TPROFILE}' NOT accessiable\n"
@@ -51,15 +44,14 @@ XSPEC_CF_XCM="_coolfunc_calc.xcm"
## generate xspec script {{{
cat >> ${XSPEC_CF_XCM} << _EOF_
## XSPEC Tcl script
-## calc cooling function data
+## Calculate the cooling function profile w.r.t the temperature profile
##
-## generated by: `basename $0`
-## date: `date`
+## Generated by: `basename $0`
+## Date: `date`
set xs_return_results 1
set xs_echo_script 0
# set tcl_precision 12
-dummyrsp .01 100 4096
## set basic data {{{
set nh ${N_H}
set redshift ${REDSHIFT}
@@ -73,19 +65,18 @@ chatter 0
# debug }}}
query yes
abund grsa
-dummyrsp 0.3 11.0 1024
+dummyrsp 0.01 100.0 4096 linear
# load model 'wabs*apec' to calc cooling function
model wabs*apec & \${nh} & 1.0 & \${abund_val} & \${redshift} & \${norm} & /*
## xspec }}}
-## set input and output filename
+## set input and output filename & open files
set tpro_fn "${TPROFILE}"
set cf_fn "${COOLFUNC_DAT}"
set cff_fn "${COOLFUNC_DAT_RATIO}"
if { [ file exists \${cf_fn} ] } {
exec rm -fv \${cf_fn}
}
-
if { [ file exists \${cff_fn} ] } {
exec rm -fv \${cff_fn}
}
@@ -95,6 +86,21 @@ set tpro_fd [ open \${tpro_fn} r ]
set cf_fd [ open \${cf_fn} w ]
set cff_fd [ open \${cff_fn} w ]
+_EOF_
+
+if [ ! -z "${COOLFUNC_BOLO}" ]; then
+ cat >> ${XSPEC_CF_XCM} << _EOF_
+# coolfunc bolometric
+set cfbolo_fn "${COOLFUNC_BOLO}"
+if { [ file exists \${cfbolo_fn} ] } {
+ exec rm -fv \${cfbolo_fn}
+}
+set cfbolo_fd [ open \${cfbolo_fn} w ]
+
+_EOF_
+fi
+
+cat >> ${XSPEC_CF_XCM} << _EOF_
## read data from tprofile line by line
while { [ gets \${tpro_fd} tpro_line ] != -1 } {
# gets one line
@@ -112,27 +118,37 @@ while { [ gets \${tpro_fd} tpro_line ] != -1 } {
tclout flux 1
scan \${xspec_tclout} "%f %f %f %f" cff_data holder holder holder
puts \${cff_fd} "\${radius} [expr \${cff_data}/\${cf_data}]"
+_EOF_
+if [ ! -z "${COOLFUNC_BOLO}" ]; then
+ cat >> ${XSPEC_CF_XCM} << _EOF_
+ # coolfunc bolometric
+ set cfbolo_data \$cff_data
+ #puts "cfbolo_data: \${cfbolo_data}"
+ puts \${cfbolo_fd} "\${radius} \${cfbolo_data}"
+_EOF_
+fi
+cat >> ${XSPEC_CF_XCM} << _EOF_
}
## close opened files
close \${tpro_fd}
close \${cf_fd}
+_EOF_
+
+if [ ! -z "${COOLFUNC_BOLO}" ]; then
+ cat >> ${XSPEC_CF_XCM} << _EOF_
+# coolfunc bolometric
+close \${cfbolo_fd}
+
+_EOF_
+fi
+cat >> ${XSPEC_CF_XCM} << _EOF_
## exit
tclexit
_EOF_
-
-## extract xcm }}}
+## generate xcm }}}
## invoke xspec to calc
printf "invoking XSPEC to calculate cooling function data ...\n"
-# xspec - ${XSPEC_CF_XCM}
xspec - ${XSPEC_CF_XCM} > /dev/null
-
-## clean
-# if [ -e "${XSPEC_CF_XCM}" ]; then
-# rm -f ${XSPEC_CF_XCM}
-# fi
-
-exit 0
-
diff --git a/mass_profile/coolfunc_calc2.sh b/mass_profile/coolfunc_calc2.sh
deleted file mode 100755
index c469619..0000000
--- a/mass_profile/coolfunc_calc2.sh
+++ /dev/null
@@ -1,173 +0,0 @@
-#!/bin/sh
-#
-# unalias -a
-#
-###########################################################
-## Task: ##
-## Calc `cooling function' data according to ##
-## given `temperature profile' ##
-## ##
-## NOTE: ##
-## given `tprofile': <radius> <temperature> ##
-## calc `cooling function' by invoking `XSPEC' ##
-## using model `wabs*apec' ##
-## ##
-## LIweitiaNux <liweitianux@gmail.com> ##
-## August 17, 2012 ##
-###########################################################
-
-## cmdline arguments {{{
-if [ $# -eq 5 ]; then
- :
-elif [ $# -eq 6 ]; then
- COOLFUNC_BOLO=$6
- [ -e "${COOLFUNC_BOLO}" ] && rm -f ${COOLFUNC_BOLO}
-else
- printf "usage:\n"
- printf " `basename $0` <tprofile> <avg_abund> <nH> <redshift> <coolfunc_outfile> [coolfunc_bolo]\n"
- exit 1
-fi
-base_path=`dirname $0`
-TPROFILE=$1
-ABUND_VAL=$2
-N_H=$3
-REDSHIFT=$4
-NORM=`$base_path/calc_distance $REDSHIFT | grep norm | awk '{ print $2 }'`
-COOLFUNC_DAT=$5
-COOLFUNC_DAT_RATIO="flux_cnt_ratio.txt"
-
-if [ ! -r "${TPROFILE}" ]; then
- printf "ERROR: given tprofile '${TPROFILE}' NOT accessiable\n"
- exit 2
-fi
-[ -e "${COOLFUNC_DAT}" ] && rm -f ${COOLFUNC_DAT}
-[ -e "${COOLFUNC_DAT_RATIO}" ] && rm -f ${COOLFUNC_DAT_RATIO}
-## arguments }}}
-
-## specify variable name outside while loop
-## otherwise the inside vars invisible
-XSPEC_CF_XCM="_coolfunc_calc.xcm"
-[ -e "${XSPEC_CF_XCM}" ] && rm -f ${XSPEC_CF_XCM}
-
-## generate xspec script {{{
-cat >> ${XSPEC_CF_XCM} << _EOF_
-## XSPEC Tcl script
-## calc cooling function data
-##
-## generated by: `basename $0`
-## date: `date`
-
-set xs_return_results 1
-set xs_echo_script 0
-# set tcl_precision 12
-dummyrsp .01 100 4096
-## set basic data {{{
-set nh ${N_H}
-set redshift ${REDSHIFT}
-set abund_val ${ABUND_VAL}
-set norm ${NORM}
-## basic }}}
-
-## xspec related {{{
-# debug settings {{{
-chatter 0
-# debug }}}
-query yes
-abund grsa
-dummyrsp 0.3 11.0 1024
-# load model 'wabs*apec' to calc cooling function
-model wabs*apec & \${nh} & 1.0 & \${abund_val} & \${redshift} & \${norm} & /*
-## xspec }}}
-
-## set input and output filename & open files
-set tpro_fn "${TPROFILE}"
-set cf_fn "${COOLFUNC_DAT}"
-set cff_fn "${COOLFUNC_DAT_RATIO}"
-if { [ file exists \${cf_fn} ] } {
- exec rm -fv \${cf_fn}
-}
-if { [ file exists \${cff_fn} ] } {
- exec rm -fv \${cff_fn}
-}
-
-## open files
-set tpro_fd [ open \${tpro_fn} r ]
-set cf_fd [ open \${cf_fn} w ]
-set cff_fd [ open \${cff_fn} w ]
-
-_EOF_
-
-if [ ! -z "${COOLFUNC_BOLO}" ]; then
- cat >> ${XSPEC_CF_XCM} << _EOF_
-# coolfunc bolometric
-set cfbolo_fn "${COOLFUNC_BOLO}"
-if { [ file exists \${cfbolo_fn} ] } {
- exec rm -fv \${cfbolo_fn}
-}
-set cfbolo_fd [ open \${cfbolo_fn} w ]
-
-_EOF_
-fi
-
-cat >> ${XSPEC_CF_XCM} << _EOF_
-## read data from tprofile line by line
-while { [ gets \${tpro_fd} tpro_line ] != -1 } {
- # gets one line
- scan \${tpro_line} "%f %f" radius temp_val
- #puts "radius: \${radius}, temperature: \${temp_val}"
- # set temperature value
- newpar 2 \${temp_val}
- # calc flux & tclout
- flux 0.7 7.0
- tclout flux 1
- scan \${xspec_tclout} "%f %f %f %f" holder holder holder cf_data
- #puts "cf_data: \${cf_data}"
- puts \${cf_fd} "\${radius} \${cf_data}"
- flux 0.01 100.0
- tclout flux 1
- scan \${xspec_tclout} "%f %f %f %f" cff_data holder holder holder
- puts \${cff_fd} "\${radius} [expr \${cff_data}/\${cf_data}]"
-_EOF_
-if [ ! -z "${COOLFUNC_BOLO}" ]; then
- cat >> ${XSPEC_CF_XCM} << _EOF_
- # coolfunc bolometric
- set cfbolo_data \$cff_data
- #puts "cfbolo_data: \${cfbolo_data}"
- puts \${cfbolo_fd} "\${radius} \${cfbolo_data}"
-_EOF_
-fi
-cat >> ${XSPEC_CF_XCM} << _EOF_
-}
-
-## close opened files
-close \${tpro_fd}
-close \${cf_fd}
-_EOF_
-
-if [ ! -z "${COOLFUNC_BOLO}" ]; then
- cat >> ${XSPEC_CF_XCM} << _EOF_
-# coolfunc bolometric
-close \${cfbolo_fd}
-
-_EOF_
-fi
-
-cat >> ${XSPEC_CF_XCM} << _EOF_
-## exit
-tclexit
-_EOF_
-
-## extract xcm }}}
-
-## invoke xspec to calc
-printf "invoking XSPEC to calculate cooling function data ...\n"
-# xspec - ${XSPEC_CF_XCM}
-xspec - ${XSPEC_CF_XCM} > /dev/null
-
-## clean
-# if [ -e "${XSPEC_CF_XCM}" ]; then
-# rm -f ${XSPEC_CF_XCM}
-# fi
-
-exit 0
-
diff --git a/mass_profile/fit_nfwmass.sh b/mass_profile/fit_nfwmass.sh
index 7cab66a..c6e8b8c 100755
--- a/mass_profile/fit_nfwmass.sh
+++ b/mass_profile/fit_nfwmass.sh
@@ -134,7 +134,7 @@ mv -fv ${T_dump} ${T_file_center}
mv -fv fit_result.qdp ${T_file_center}
# temp profile }}}
-$base_path/coolfunc_calc2.sh ${T_file_center} $abund $nh $z $cfunc_file cfunc_bolo.dat
+$base_path/coolfunc_calc.sh ${T_file_center} $abund $nh $z $cfunc_file cfunc_bolo.dat
cfunc_file_center="coolfunc_data_center.txt"
cp -f ${cfunc_file} ${cfunc_file_center}
mv -fv flux_cnt_ratio.txt flux_cnt_ratio_center.txt
@@ -213,7 +213,7 @@ for i in `seq 1 ${MC_TIMES}`; do
printf "## ${i} / ${MC_TIMES} ##\n"
printf "## `pwd -P` ##\n"
- ${base_path}/coolfunc_calc2.sh ${T_file} ${abund} ${nh} ${z} ${cfunc_file}
+ ${base_path}/coolfunc_calc.sh ${T_file} ${abund} ${nh} ${z} ${cfunc_file}
${base_path}/${SBP_PROG} ${TMP_SBP_CFG} 2> /dev/null
cat ${RES_SBPFIT}
$base_path/fit_nfw_mass mass_int.dat ${z} ${nfw_rmin_kpc} 2> /dev/null
diff --git a/mass_profile/fit_sbp.sh b/mass_profile/fit_sbp.sh
index 666be2f..60c5fca 100755
--- a/mass_profile/fit_sbp.sh
+++ b/mass_profile/fit_sbp.sh
@@ -42,7 +42,7 @@ fi
$base_path/fit_wang2012_model $t_data_file $t_param_file $cm_per_pixel 2> /dev/null
cp wang2012_dump.qdp $T_file
if [ ! -f ${cfunc_file} ]; then
- $base_path/coolfunc_calc2.sh $T_file $abund $nh $z $cfunc_file
+ $base_path/coolfunc_calc.sh $T_file $abund $nh $z $cfunc_file
fi
$base_path/$PROG $sbp_cfg
printf "## MODEL: ${MODEL}\n"