diff options
author | Aaron LI <aaronly.me@gmail.com> | 2016-05-27 22:47:24 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@gmail.com> | 2016-05-27 22:47:24 +0800 |
commit | ffd178e0bd72562a3c2cff9747b6e656edc881dc (patch) | |
tree | 8800b7b5b2e8bc3df1a6760df5cd54eaaa686702 /mass_profile/call_calc_distance.cc | |
parent | 5c35fad9240fb42c1371c721e0b2af7379bd9ea0 (diff) | |
download | chandra-acis-analysis-ffd178e0bd72562a3c2cff9747b6e656edc881dc.tar.bz2 |
Add mass_profile tools
* These tools are mainly use to calculate the total gravitational mass
profile, as well as the intermediate products (e.g., surface
brightness profile fitting, gas density profile, NFW fitting, etc.)
* There are additional tools for calculating the luminosity and flux.
* These tools mainly developed by Junhua GU, and contributed by
Weitian (Aaron) LI, and Zhenghao ZHU.
Diffstat (limited to 'mass_profile/call_calc_distance.cc')
-rw-r--r-- | mass_profile/call_calc_distance.cc | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mass_profile/call_calc_distance.cc b/mass_profile/call_calc_distance.cc new file mode 100644 index 0000000..cbdd69a --- /dev/null +++ b/mass_profile/call_calc_distance.cc @@ -0,0 +1,52 @@ +#include "calc_distance.h" +#include <cstdlib> +#include <cmath> +#include <iostream> +using namespace std; + +static double cm=1; +static double s=1; +static double km=1000*100; +static double Mpc=3.08568e+24*cm; +static double kpc=3.08568e+21*cm; +static double yr=365.*24.*3600.; +static double Gyr=1e9*yr; +static double H=71.*km/s/Mpc; +static const double c=299792458.*100.*cm; +//const double c=3e8*100*cm; +static const double pi=4*atan(1); +static const double omega_m=0.27; +static const double omega_l=0.73; +static const double arcsec2arc_ratio=1./60/60/180*pi; + + + + +int main(int argc,char* argv[]) +{ + if(argc<2) + { + cerr<<"Usage:"<<argv[0]<<" z"<<endl; + exit(-1); + } + if(argc==3) + { + H=atof(argv[2])*km/s/Mpc; + } + double z=atof(argv[1]); + double d=c/H*calc_angular_distance(z); + //double age=calc_age(z); + //cout<<d<<endl; + cout<<"d_a_cm= "<<d<<" #angular distance in cm"<<endl; + cout<<"d_a_mpc= "<<d/Mpc<<"#angular distance in Mpc"<<endl; + cout<<"d_l_cm= "<<(1+z)*(1+z)*d<<" #luminosity distance in cm"<<endl; + cout<<"d_l_mpc= "<<(1+z)*(1+z)*d/Mpc<<" #luminosity in Mpc"<<endl; + cout<<"kpc_per_sec= "<<d/kpc*arcsec2arc_ratio<<" #kpc per arcsec"<<endl; + cout<<"For Chandra:"<<endl; + cout<<"kpc_per_pixel= "<<d/kpc*0.492*arcsec2arc_ratio<<" #kpc per chandra pixel"<<endl; + cout<<"cm_per_pixel= "<<d*.492*arcsec2arc_ratio<<" #cm per chandra pixel"<<endl; + cout<<"norm= "<<1E-14/(4*pi*pow(d*(1+z),2))<<" #norm used to calc cooling function"<<endl; + //cout<<ddivid(calc_distance,d,0,1,.0001)<<endl; + cout<<"E(z)= "<<E(z)<<endl; +} + |