aboutsummaryrefslogtreecommitdiffstats
path: root/mass_profile/calc_lx_beta.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mass_profile/calc_lx_beta.sh')
-rwxr-xr-xmass_profile/calc_lx_beta.sh161
1 files changed, 161 insertions, 0 deletions
diff --git a/mass_profile/calc_lx_beta.sh b/mass_profile/calc_lx_beta.sh
new file mode 100755
index 0000000..b007b4f
--- /dev/null
+++ b/mass_profile/calc_lx_beta.sh
@@ -0,0 +1,161 @@
+#!/bin/sh
+
+echo "### \$#: $#"
+echo "### `pwd -P`"
+if [ $# -gt 1 ]
+then
+ :
+else
+ echo "Usage:$0 <cfg file> <rout in kpc> [c]"
+ echo "If central value only, append a \"c\""
+ exit
+fi
+export PATH="/usr/local/bin:/usr/bin:/bin:$PATH"
+export PGPLOT_FONT="${HEADAS}/lib/grfont.dat"
+
+# blist file
+# (energy bands to calc cooling function data)
+BLIST="blist.txt"
+[ -e "${BLIST}" ] && mv -f ${BLIST} ${BLIST}_bak
+cat > ${BLIST} << _EOF_
+bolo
+0.7 7
+0.1 2.4
+_EOF_
+
+cfg_file=$1
+rout=$2
+base_path=`dirname $0`
+echo $base_path
+#initialize sbp config file
+sbp_cfg=`grep '^sbp_cfg' $cfg_file|awk '{print $2}'`
+#initialize profile type name
+t_profile_type=`grep '^t_profile' $cfg_file|awk '{print $2}'`
+#initialize data file name
+t_data_file=`grep '^t_data_file' $cfg_file|awk '{print $2}'`
+#initialize sbp data file
+sbp_data_file=`grep '^sbp_file' $sbp_cfg | awk '{ print $2 }'`
+#initialize the temperature profile file
+T_file=`grep '^T_file' $sbp_cfg|awk '{print $2}'`
+#initialize the rmin_kpc for nfw mass profile fitting
+nfw_rmin_kpc=`grep '^nfw_rmin_kpc' $cfg_file|awk '{print $2}'`
+#echo $t_profile_type
+cm_per_pixel=`grep '^cm_per_pixel' $sbp_cfg|awk '{print $2}'`
+da=`python -c "print($cm_per_pixel/(.492/3600/180*3.1415926))"`
+
+#determine which temperature profile to be used, and fit the T profile
+if [ "$t_profile_type" = "wang2012" ]; then
+ t_param_file=`grep t_param_file $cfg_file|awk '{print $2}'`
+ $base_path/fit_wang2012_model $t_data_file $t_param_file $cm_per_pixel 2> /dev/null
+ mv -f wang2012_dump.qdp ${T_file}
+else
+ echo temperature profile name invalid!
+ exit
+fi
+
+cfunc_file=`grep '^cfunc_file' ${sbp_cfg} |awk '{print $2}'`
+z=`grep '^z' ${sbp_cfg}|awk '{print $2}'`
+dl=`python -c "print($da*(1+$z)**2)"`
+abund=`grep '^abund' ${cfg_file} |awk '{print $2}'`
+nh=`grep '^nh' ${cfg_file} |awk '{print $2}'`
+$base_path/coolfunc_calc.sh ${T_file} $abund $nh $z $cfunc_file
+#$base_path/coolfunc_calc_bolo.sh ${T_file} $abund $nh $z cfunc_bolo.dat
+#$base_path/coolfunc_calc_0.7-7.sh ${T_file} $abund $nh $z cfunc_0.7-7.dat
+#$base_path/coolfunc_calc_0.1-2.4.sh ${T_file} $abund $nh $z cfunc_0.1-2.4.dat
+$base_path/coolfunc_calc_erg.sh ${T_file} $abund $nh $z "cfunc_" ${BLIST}
+mv flux_cnt_ratio.txt flux_cnt_ratio_center.txt
+#fit sbp
+prog="calc_lx_beta"
+lx_res="lx_beta_param.txt"
+$base_path/${prog} $sbp_cfg $rout cfunc_bolo.dat cfunc_0.7-7.dat cfunc_0.1-2.4.dat 2> /dev/null
+LX1=`grep 'Lx1' $lx_res |awk '{print $2}'`
+LX2=`grep 'Lx2' $lx_res |awk '{print $2}'`
+LX3=`grep 'Lx3' $lx_res |awk '{print $2}'`
+FX1=`grep 'Fx1' $lx_res |awk '{print $2}'`
+FX2=`grep 'Fx2' $lx_res |awk '{print $2}'`
+FX3=`grep 'Fx3' $lx_res |awk '{print $2}'`
+
+echo $LX1 $LX2 $LX3 >summary_lx.dat
+echo $FX1 $FX2 $FX3 >summary_fx.dat
+echo $cfunc_file
+#exit
+
+#store central value
+mv ${lx_res} ${lx_res%.txt}_center.txt
+mv lx_sbp_fit.qdp lx_sbp_fit_center.qdp
+mv lx_rho_fit.dat lx_rho_fit_center.dat
+
+#rm -f summary_lx.dat
+#calculate cooling time
+#echo $dl
+
+## calculate center values
+if [ $# -eq 3 ]; then
+ $base_path/analyze_lx.py
+ $base_path/analyze_fx.py
+ exit 0
+fi
+
+
+###########################################################
+#100 times of Monte-carlo simulation to determine error
+#just repeat above steps
+for i in `seq 1 100`; do
+ echo $t_data_file
+ $base_path/shuffle_T.py $t_data_file temp_shuffled_t.dat
+ $base_path/shuffle_sbp.py $sbp_data_file temp_shuffled_sbp.dat
+ #t_data_file=temp_shuffled_t.dat
+ #exit
+
+ if [ "$t_profile_type" = "wang2012" ]; then
+ t_param_file=`grep t_param_file $cfg_file|awk '{print $2}'`
+ $base_path/fit_wang2012_model temp_shuffled_t.dat $t_param_file $cm_per_pixel 2> /dev/null
+ mv -f wang2012_dump.qdp ${T_file}
+ else
+ echo temperature profile name invalid!
+ exit
+ fi
+
+ echo >temp_sbp.cfg
+
+ cat $sbp_cfg | while read l; do
+ if echo $l|grep sbp_file >/dev/null
+ then
+ echo sbp_file temp_shuffled_sbp.dat >>temp_sbp.cfg
+ elif echo $l|grep T_file >/dev/null
+ then
+ echo T_file ${T_file} >>temp_sbp.cfg
+ else
+ echo $l >>temp_sbp.cfg
+ fi
+ done
+
+ #exit
+
+ echo "### `pwd -P`"
+ echo "### $i ###"
+
+ $base_path/coolfunc_calc.sh ${T_file} $abund $nh $z $cfunc_file
+ #$base_path/coolfunc_calc_bolo.sh ${T_file} $abund $nh $z cfunc_bolo.dat
+ #$base_path/coolfunc_calc_0.7-7.sh ${T_file} $abund $nh $z cfunc_0.7-7.dat
+ #$base_path/coolfunc_calc_0.1-2.4.sh ${T_file} $abund $nh $z cfunc_0.1-2.4.dat
+ $base_path/coolfunc_calc_erg.sh ${T_file} $abund $nh $z "cfunc_" ${BLIST}
+ $base_path/$prog temp_sbp.cfg $rout cfunc_bolo.dat cfunc_0.7-7.dat cfunc_0.1-2.4.dat 2> /dev/null
+ #grep Lx $lx_res |awk '{print $2}' >>summary_lx.dat
+ LX1=`grep 'Lx1' $lx_res |awk '{print $2}'`
+ LX2=`grep 'Lx2' $lx_res |awk '{print $2}'`
+ LX3=`grep 'Lx3' $lx_res |awk '{print $2}'`
+ FX1=`grep 'Fx1' $lx_res |awk '{print $2}'`
+ FX2=`grep 'Fx2' $lx_res |awk '{print $2}'`
+ FX3=`grep 'Fx3' $lx_res |awk '{print $2}'`
+
+ echo $LX1 $LX2 $LX3 >>summary_lx.dat
+ echo $FX1 $FX2 $FX3 >>summary_fx.dat
+done # end of 'for'
+
+# analyze lx & fx
+$base_path/analyze_lx.py
+$base_path/analyze_fx.py
+
+exit 0
+