% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % file: ha_model_simple.sl % % Model of Hydra A ... % - - - - - % Setup general info about the source model... s3d_model_name="Hydra A - simple"; % The distance, in kpc. % 216 Mpc angular diameter distance s3d_distance = 216.0e3; % Date of model (in decimal year) s3d_date = 2004.4; % The v3d coordinate system size and resolution % arc seconds s3d_radius = 100.0; s3d_resolution = 47; % The foreground absorption % Nulsen++ 2005 s3d_NH22 = 0.0494; % This value is used in a nominal absorption model. % The model can be user customized if desired, see % s3d_update_nh() in source3d.sl for details. % Since there are no Doppler velocities used here, % use the most efficient "NH-Arf" method - % and include the RedShift into the spectra themselves. s3d_NHarf_method=0; % - - - - - % Define the Custom Parameters % all in the structure: s3d_ps = struct {rAGN,rbeta,beta,ratio,betax,betay}; % - - - - - % Define and read in the spectra that can/will be used with the components. % % create and use a .par file: fit_fun("mekal(1)"); set_par("mekal(1).norm", 0.001); set_par("mekal(1).kT", 3.5); set_par("mekal(1).nH", 0.1); set_par("mekal(1).Abundanc", 0.50); set_par("mekal(1).redshift", 0.0538); save_par("temp_ha_3p5keV0p5Abund.par"); s3d_load_spectrum(1,"temp_ha_3p5keV0p5Abund.par"); % Spectrum for the AGN... %% fit_fun("mekal(1)+srcut(1)"); %% set_par("srcut(1).norm", 0.02); %% set_par("srcut(1).break",8.e18); % fit_fun("mekal(1)+powerlaw(1)"); set_par("mekal(1).norm", 0.001); set_par("mekal(1).kT", 2.0); set_par("mekal(1).nH", 0.1); set_par("mekal(1).Abundanc", 0.30); set_par("mekal(1).redshift", 0.0538); set_par("powerlaw(1).norm",0.003); set_par("powerlaw(1).PhoIndex",0.5); save_par("temp_ha_AGN.par"); s3d_load_spectrum(19,"temp_ha_AGN.par"); % - - - - - % Define my 3D geometric components % % Note that the s3d_update_comp routine will be called % as part of model updating and its chief purpose is % to update the array values. % Component values that are set once-for-all or that % may be changed by the user should be defined here outside % of the 'update routine. variable iarr; % Will use the f_generic defined as a beta model: % The s3d_ps parameters used are: % s3d_ps.rbeta % s3d_ps.beta % s3d_ps.ratio - stretching factor % ()=evalfile("./ha_3dbeta.sl"); % The thermal cluster emission: % % Component index 1 - one-time/manual parameters: iarr=1; s3d_comp[iarr].name = "Beta w/cavity"; s3d_comp[iarr].type = "xray"; s3d_comp[iarr].norm = 10.0; s3d_comp[iarr].ispec= 1; s3d_comp[iarr].rndint= 500.0; s3d_comp[iarr].rndclr=[1.,0.,0.0]; % No velocity effects needed... s3d_comp[iarr].vsxyz= NULL; s3d_comp[iarr].vtype= -1; s3d_comp[iarr].velval= 0.0; s3d_comp[iarr].voxyz= NULL; s3d_comp[iarr].vrthphi= NULL; % % the AGN at the center % % Component index 19 - one-time/manual parameters: iarr=19; s3d_comp[iarr].name = "AGN"; s3d_comp[iarr].type = "xray"; s3d_comp[iarr].norm = 0.005; s3d_comp[iarr].ispec= 19; s3d_comp[iarr].rndint= 1.0; s3d_comp[iarr].rndclr=[0.0,1.0,1.0]; % z is 0.0538, system red shift: s3d_comp[iarr].vsxyz= NULL; s3d_comp[iarr].vtype= -1; s3d_comp[iarr].velval=0.0; s3d_comp[iarr].voxyz= NULL; s3d_comp[iarr].vrthphi= NULL; % Define the calculation of the component geometry arrays: public define s3d_update_comp() { % This is an example routine that the user will replace with their % own version, generally by modifying the lines between the - - - -'s variable iarr, this_arr; % set the v3d parameters v3d_setup(s3d_radius, s3d_resolution); % - - - - - - - - - % Beta-emission - Component index 1 iarr=1; % include an offset of the center... this_arr = v3d_f_generic("Beta-model", [s3d_ps.betax, s3d_ps.betay, 0.0]); % Normalize the array: s3d_comp[iarr].arr = this_arr/sum(this_arr); % Ancillary component information that is is updated with parameter changes: % none. % AGN - Component index 19 iarr=19; this_arr = v3d_sphere(0.0, s3d_ps.rAGN); % Normalize the array: s3d_comp[iarr].arr = this_arr/sum(this_arr); % Ancillary component information that is is updated with parameter changes: % none. % - - - - - - - - - } % - - - - - % Set initial custom parameter values: % Radius of the AGN sphere: s3d_ps.rAGN = 1.0; % Beta parameters: s3d_ps.rbeta = 13.5; % previous value: s3d_ps.beta = 0.6; % change it with correct def'n of beta model: % beta_corrected = -0.3333*(-3*beta_previous +0.5); s3d_ps.beta = 0.433; s3d_ps.ratio = 1.0; % Beta center location: s3d_ps.betax = -3.3; s3d_ps.betay = 0.0; % The xray component norms s3d_comp[1].norm = 22.7; s3d_comp[19].norm = 0.00316; % evaluate the model s3d_update; % show the model info s3d_list_model; % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -