########################################################### ## HOWTO ## Analyze Chandra ACIS data ## ## Weitian LI ## Updated: 2017-02-06 ########################################################### ### Settings: {{{ ## directory: # chandra scripts: CHANDRA_SCRIPT_DIR="${HOME}/bin/chandra/scripts" # mass program dir: MASS_PROFILE_DIR="${HOME}/bin/chandra/mass_profile" ## aliases: alias fitmass="${MASS_PROFILE_DIR}/fit_mass.sh" alias fitnfw="${MASS_PROFILE_DIR}/fit_nfw_mass mass_int.dat" alias fitsbp="${MASS_PROFILE_DIR}/fit_sbp.sh" alias fittp="${MASS_PROFILE_DIR}/fit_wang2012_model" alias calclxfx="${MASS_PROFILE_DIR}/calc_lxfx_simple.sh" alias getlxfx="${MASS_PROFILE_DIR}/get_lxfx_data.sh" ### Settings: }}} ### Websites: {{{ NED: http://ned.ipac.caltech.edu/forms/byname.html Chandra Chaser: http://cda.harvard.edu/chaser/dispatchOcat.do SIMBAD: http://simbad.u-strasbg.fr/simbad/ nH tool: https://heasarc.gsfc.nasa.gov/cgi-bin/Tools/w3nh/w3nh.pl ### }}} ### Step-by-step guide to analyze ACIS data: {{{ (1) $ chandra_repro indir=. outdir=repro verbose=2 (2) $ cd repro; mkdir -p evt bkg img spc/profile mass; (3) $ cd evt; ln -s ../acis*evt2.fits .; (4) $ ciao_procevt.sh (5) $ cd ../bkg; ln -s ../evt/evt2*_clean.fits .; (6) $ ciao_blanksky.sh (7) ds9 open 'evt2*_clean.fits'; select edge region as the *local background*, save as 'lbkg.reg'; and estimate the phonton counts: (8) $ dmlist "evt2*_clean.fits[sky=region(lbkg.reg)][energy=400:8000]" blocks (9) $ ciao_bkg_spectra.sh reg="lbkg.reg" basedir=.. nh= z= (10) $ xspec (11) xspec> @xspec_lbkg_model.xcm xspec> fit xspec> cpd /xs xspec> pl l del xspec> @/xspec_bkgcorr.tcl (12) $ cd ../img $ ln -s ../evt/evt2*_clean.fits . $ ln -s ../bkg/bkgcorr_blanksky_lbkg.pi . # maybe 'lbkg.pi' $ ln -s ../pcadf*_asol1.fits . (13) ds9 open 'evt2*_clean.fits', select the center of cluster, save the region as 'center.reg' (14) $ ciao_genregs.sh reg_in=center.reg bkgd= (15) $ cd ../spc/profile $ ln -s ../../evt/evt2*_clean.fits . $ ln -s ../../bkg/bkgcorr_blanksky_lbkg.pi . # maybe 'lbkg.pi' $ ln -s ../../img/rspec.reg img_rspec.reg (16) ds9 open 'evt2*_clean.fits' with regs 'img_rspec.reg'; adjust the regions and save as 'rspec.reg' (17) create a config file '_spec.conf' looks like (for batch process): basedir ../.. reg rspec.reg bkgd bkgcorr_blanksky_lbkg.pi | lbkg.pi nh z (18) $ ciao_deproj_spectra.sh reg="rspec.reg" bkgd= basedir="../.." nh= z= (19) Fit the radial spectra to derive the radial temperature profile, as well as the average temperature and abundance: $ xspec xspec> @xspec_deproj.xcm xspec> fit (tweaks parameters when necessary) xspec> @/xspec_tprofile.tcl (calculate average temperature and abundance) xspec> @/xspec_avg_tz.tcl xspec> exit (20) fix 'NULL' values in 'tprofile.qdp', 'tprofile.txt' & 'tz_average.txt' (21) $ cd ../../img; (22) create config '_expcorr.conf' (for batch process): basedir .. reg sbprofile.reg nh z temp abund (23) $ ciao_expcorr_sbp.sh basedir=.. nh= z= temp= abund= ## -------------------------------------------------------- (24) $ cd ../mass; clean_massdir.sh; (25) check needed linked files: * sbprofile.txt * tprofile.txt (26) check needed config files: * mass.conf * wang2012_param.txt * sbp_sbeta.conf * sbp_dbeta.conf (27) $ fittp tprofile.txt wang2012_param.txt (28) $ qdp fit_result.qdp (check fitted temperature profile, and adjust parameter accordingly) (29) $ fitsbp sbp_sbeta.conf mass.conf # single-beta sbp $ fitsbp sbp_dbeta.conf mass.conf # double-beta sbp (30) $ qdp sbp_fit.qdp # check fitted sbp (31) $ ln -s sbp_sbeta.conf sbp.cfg # use single-beta $ ln -s sbp_dbeta.conf sbp.cfg # use double-beta (32) $ fitnfw [rmin_kpc] (33) $ qdp nfw_fit_result.qdp # check fitted nfw profile, and ajust 'rmin_kpc' (34) add 'nfw_rmin_kpc ' to 'mass.conf (35) $ fitmass mass.conf c # calculate the center values (36) $ fitmass mass.conf 2>&1 | tee mass_.log # calculate mass data (37) $ collect_infodata.sh (38) $ cd ../img; $ chandra_update_xcentroid.sh (39) $ cd ../spc/profile; (40) $ ciao_r500avgt.sh inner=0.1 outer=0.5 # check 0.5R500 range $ ciao_r500avgt.sh inner=0.2 outer=0.5 (41) $ xspec xspec> @xspec_r500avgt_0.1-0.5.xcm xspec> fit; fit; xspec> cpd /xs; pl l del; xspec> error 1. 2 3 # calc errors (68%) of kT and Abundanc (42) update the data of 'T(0.1-0.5 R500)', 'Z(0.1-0.5 R500)' ... ## -------------------------------------------------------- (43) $ cd ../..; # in 'repro' dir $ cp -a mass lxfx; cd lxfx; (44) $ calclxfx global.cfg c 500 200 # 'c' for center values $ calclxfx global.cfg 500 200 # calc 'errors' (45) $ getlxfx . c 500 200 # for center results $ getlxfx . 500 200 # for all results (with errors) ## -------------------------------------------------------- (46) $ cd ..; cd spc/profile; calculate cooling time and Csb value: $ ciao_calc_ct_csb.sh check the region whether exceeds ccd edge, and answer y/n check results in file 'ct_csb_results.txt' --- Alternatively: $ ciao_calc_ct.sh $ ciao_calc_csb.sh check the region whether exceeds ccd edge, and answer y/n check results in file 'cooling_results.txt' and 'csb_results.txt' --- ### process }}} # vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=txt: #