def save_ps_template_info(): if plus_IPS: spti = fa.save_ps_template_info(b_plus_IPS,run_tag_plus_iso,edep=True) spti.save_ps_template('disk',0,save_path = b_plus_IPS.plots_dir_for_run + 'disk_ps.txt') spti.save_ps_template('nfw',0,save_path = b_plus_IPS.plots_dir_for_run + 'nfw_ps.txt') spti.save_ps_template('iso',0,save_path = b_plus_IPS.plots_dir_for_run + 'iso_ps.txt') save_medians(b_plus_IPS,b_plus_IPS.plots_dir_for_run + 'medians') spti = fa.save_ps_template_info(b_disk,run_tag_disk_only,edep=True) spti.save_ps_template('disk',0,save_path = b_disk.plots_dir_for_run + 'disk_ps.txt') spti.save_ps_template('iso',0,save_path = b_disk.plots_dir_for_run + 'iso_ps.txt') save_medians(b_disk,b_disk.plots_dir_for_run + 'medians')
def save_ps_template_info(): if plus_IPS: spti = fa.save_ps_template_info(b_plus_IPS, run_tag_plus_iso, edep=True) spti.save_ps_template("disk", 0, save_path=b_plus_IPS.plots_dir_for_run + "disk_ps.txt") spti.save_ps_template("nfw", 0, save_path=b_plus_IPS.plots_dir_for_run + "nfw_ps.txt") spti.save_ps_template("iso", 0, save_path=b_plus_IPS.plots_dir_for_run + "iso_ps.txt") save_medians(b_plus_IPS, b_plus_IPS.plots_dir_for_run + "medians") spti = fa.save_ps_template_info(b_disk, run_tag_disk_only, edep=True) spti.save_ps_template("disk", 0, save_path=b_disk.plots_dir_for_run + "disk_ps.txt") spti.save_ps_template("iso", 0, save_path=b_disk.plots_dir_for_run + "iso_ps.txt") save_medians(b_disk, b_disk.plots_dir_for_run + "medians")
def main(): global plot_ll_profile # Setup for scan if method=='minuit' and run==False: pass else: print 'setting up the scan. the method is', method setup_for_scan() print 'finished setting up the scan.' # Perform scan / load scan if run: print 'The nside for this scan is ', b.nside if method=='polychord': b.perform_scan_polychord(run_tag = run_tag_energy) elif method=='multinest': b.perform_scan(run_tag = run_tag_energy) elif method=='minuit': b.perform_scan_minuit(run_tag = run_tag_energy) b.save_minuit() do_analysis(minuit_new=True) if analysis and method !='minuit': do_analysis(minuit_new=False) # Save results if NPTF if not poiss: spti = fa.save_ps_template_info(b,run_tag_energy,edep=True) if high_lat: spti.save_ps_template('iso',0,save_path = b.plots_dir_for_run + 'iso_ps.txt') else: spti.save_ps_template('iso',0,save_path = b.plots_dir_for_run + 'iso_ps.txt') if just_disk: spti.save_ps_template('disk',0,save_path = b.plots_dir_for_run + 'disk_ps.txt') else: spti.save_ps_template('disk',0,save_path = b.plots_dir_for_run + 'disk_ps.txt') spti.save_ps_template('nfw',0,save_path = b.plots_dir_for_run + 'nfw_ps.txt') save_medians(b,b.plots_dir_for_run + 'medians') elif analysis and method == 'minuit': setup_for_scan() do_analysis(minuit_new=True)
def do_analysis(minuit_new=False): global emin,emax if method=='polychord': polychord=True else: polychord=False b.run_tag = run_tag_energy tri = fa.make_triangle(b,run_tag_energy,edep=True,polychord=polychord,minuit_new=minuit_new) tri.make_triangle() sle = fa.save_log_evidence(b,edep=True,polychord=polychord) spect_dir = work_dir + 'data/spect/' if not os.path.exists(spect_dir): os.mkdir(spect_dir) if save_norm_label != 'False' and save_norm_label != 'false': cs = fa.compute_spectra(b,run_tag_energy,f.CTB_en_bins[0],f.CTB_en_bins[-1],edep=True,plane_mask=plot_plane_mask,band_mask_range = [-plot_pmval,plot_pmval],lcut=plot_lcut,lmin=plot_lmin,lmax=plot_lmax,bcut=plot_bcut,bmin=plot_bmin,bmax=plot_bmax,mask_ring=plot_mask_ring,outer=plot_outer,inner=plot_inner,minuit_new = minuit_new,input_mask=force_ps_mask,the_input_mask=b.mask_total) # spectra over the whole energy range cs.mask_total_dict['bubs']=np.logical_not(b.templates_dict_nested['bubs']['summed_templates_not_compressed']) cs.make_spectra_dict() cs.make_norm_dict() cs.save_spectra_dict(spect_dir + save_spect_label,emin,emax,over_write= False) cs.save_norm_dict(spect_dir + save_norm_label,emin,emax,over_write= False) else: cs = fa.compute_edep_spectra(b,run_tag_energy,b.CTB_en_bins,polychord=polychord,plane_mask=plot_plane_mask,band_mask_range = [-plot_pmval,plot_pmval],lcut=plot_lcut,lmin=plot_lmin,lmax=plot_lmax,bcut=plot_bcut,bmin=plot_bmin,bmax=plot_bmax,mask_ring=plot_mask_ring,outer=plot_outer,inner=plot_inner,minuit_new = minuit_new,input_mask=force_ps_mask,the_input_mask=b.mask_total) #,edep=True) cs.make_spectra_dict() cs.save_spectra_dict(spect_dir + save_spect_label) if n_ebins>1: ##plot spectrum msp_inst = msp.make_spectra_plot(spect_dir + save_spect_label + '.npy') if not fixed_background: msp_inst.plot_spectra_median('back',color='Orange',label='back',linestyle='-') if nfw_dm: msp_inst.plot_spectra_median('nfw',color='Chartreuse',label='nfw',linestyle='-') if not fixed_background: msp_inst.plot_spectra_band('back',interpolate=True, alpha=0.5,linewidth=0,facecolor='Orange') if nfw_dm: msp_inst.plot_spectra_band('nfw',interpolate=True, alpha=0.5,linewidth=0,facecolor='Chartreuse') if not poiss: colors=['Blue','Green','Purple'][0:len(ps_list)] for mod,color in map(None,ps_list,colors): msp_inst.plot_spectra_median(mod + '-np',color=color,label=mod+'-np',linestyle='--') msp_inst.plot_spectra_band(mod + '-np',interpolate=True, alpha=0.5,linewidth=0,facecolor=color) plt.axhline(y=0.,color='k',ls='dashed') plt.xscale('log') plt.xlabel('E [GeV]', fontsize=14) plt.ylabel('$E^2 dN / dE$ [GeV / cm$^2$ / s / sr]', fontsize=18) plt.title('Spectrum',fontsize=14) plt.legend(fontsize=12,loc=3) plt.savefig(b.plots_dir_for_run + save_spect_label + '.pdf',bbox_inches='tight') plt.close() if not poiss: print 'medians: ', b.medians_not_log print 'norm_non_poiss: ', b.norms_non_poiss ##save PS templates/medians if len(ps_save_list)>0: for comp, filename in map(None,ps_save_list,ps_save_filename_list): spti=fa.save_ps_template_info(b,run_tag_energy,edep=True,polychord=polychord,minuit_new = minuit_new) spti.save_ps_template(comp,filename) ##plot dn/ds across energies for ebin_num in range(b.number_energy_bins): p3FGL = fa.plot_3FGL(f,CTB_en_min=b.CTB_en_bins[ebin_num],CTB_en_max=b.CTB_en_bins[ebin_num+1],plane_mask=plot_plane_mask,band_mask_range = [-plot_pmval,plot_pmval],lcut=plot_lcut,lmin=plot_lmin,lmax=plot_lmax,bcut=plot_bcut,bmin=plot_bmin,bmax=plot_bmax,mask_ring=plot_mask_ring,outer=plot_outer,inner=plot_inner,input_mask=force_ps_mask,the_input_mask=b.mask_total) p3FGL.configure_3FGL(flux_min=10**-12,flux_max=10**-8,n_flux_bins = 25,only_gal = not(high_lat),error_range = 0.68) pdnds = fa.plot_dnds(b,plane_mask=plot_plane_mask,band_mask_range = [-plot_pmval,plot_pmval],lcut=plot_lcut,lmin=plot_lmin,lmax=plot_lmax,bcut=plot_bcut,bmin=plot_bmin,bmax=plot_bmax,mask_ring=plot_mask_ring,outer=plot_outer,inner=plot_inner,input_mask=force_ps_mask,the_input_mask=b.mask_total) plt.figure(figsize=(8,6)) p3FGL.plot_3FGL(fmt = 'o', color='black',markersize=7,label='3FGL PS') colors=['Orange','Chartreuse','Blue'][0:len(ps_list)] line_colors=['Red','Green','Purple'][0:len(ps_list)] alpha_list=[1,0.75,0.5][0:len(ps_list)] for mod,color,line_color,alpha in map(None,ps_list,colors,line_colors,alpha_list): print 'plotting source-count function for ', mod pdnds.plot_source_count_band(mod,edep=True,ebin=ebin_num,nsteps=100,calculate_dnds=True,facecolor=color,interpolate=True, alpha=alpha,linewidth=0) pdnds.plot_source_count_median(mod,edep=True,ebin=ebin_num,color=line_color,linestyle='--',label=mod + ' (median)') if len(ps_fixed_filename_list) > 0: for comp in map(None,ps_fixed_list): pdnds.plot_fixed_source_count(comp,ebin=ebin_num,linestyle='-',label=comp + ' (fixed)') plt.xscale('log') plt.yscale('log') plt.ylim((2*10**(5),10**12)) plt.xlim(10**-12., 10**-8.) plt.tick_params(axis='x', length=5,width=2,labelsize=18) plt.tick_params(axis='y',length=5,width=2,labelsize=18) plt.xlabel('$F$ [photons / cm$^2$ / s]', fontsize=18) plt.ylabel('$dN/dF$ [photons$^{-1}$ cm$^2$ s deg$^{-2}$]', fontsize=18) plt.legend(fontsize=15) plt.title('Energy: '+str(np.round(b.CTB_en_bins[ebin_num],3)) + '-'+str(np.round(b.CTB_en_bins[ebin_num+1],3)),fontsize=15) plt.savefig(b.plots_dir_for_run + 'dnds_plot_en_'+str(np.round(b.CTB_en_bins[ebin_num],3)) + '-'+str(np.round(b.CTB_en_bins[ebin_num+1],3)) + '.pdf',bbox_inches='tight') plt.close()