def plot_dnds(): kwargs_spectrum={ 'band_mask_range': [-1,1],'mask_ring': True, 'outer': 10} if just_disk: p3FGL = fa.plot_3FGL(f,only_gal=False,CTB_en_min=b_disk.CTB_en_min,CTB_en_max=b_disk.CTB_en_max,**kwargs_spectrum) p3FGL.configure_3FGL(flux_min=flux_min,flux_max=flux_max,n_flux_bins = n_flux_bins,error_range = error_range) pdnds_disk_only = fa.plot_dnds(b_disk,**kwargs_spectrum) #again, same kwargs plt.figure(figsize=(8,6)) #plot medians pdnds_disk_only.plot_source_count_median('disk',smin=0.01,smax=1000,nsteps=1000,calculate_dnds=True,edep=True,ebin=0,color='orange',label='disk') #plot band pdnds_disk_only.plot_source_count_band('disk',smin=0.01,smax=1000,nsteps=1000,calculate_dnds=True,edep=True,ebin=0,qs=[0.16,0.5,0.84],color='orange',label='disk',alpha=0.5) #also show 3FGL p3FGL.plot_3FGL(fmt = 'o', color='black',markersize=7,label='3FGL') plt.legend(fontsize=16) plt.yscale('log') plt.xscale('log') plt.xlim([5e-11,5e-9]) plt.ylim([1e6,1e11]) 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.savefig(b_disk.plots_dir_for_run + 'dnds.pdf',bbox_inches='tight') plt.close() if plus_IPS: p3FGL = fa.plot_3FGL(f,only_gal=False,CTB_en_min=b_plus_IPS.CTB_en_min,CTB_en_max=b_plus_IPS.CTB_en_max,**kwargs_spectrum) p3FGL.configure_3FGL(flux_min=flux_min,flux_max=flux_max,n_flux_bins = n_flux_bins,error_range = error_range) pdnds_plus_iso = fa.plot_dnds(b_plus_IPS,**kwargs_spectrum) #again, same kwargs ########fist plot with disk, NFW, iso plt.figure(figsize=(8,6)) #plot medians pdnds_plus_iso.plot_source_count_median('nfw',smin=0.01,smax=1000,nsteps=1000,calculate_dnds=True,edep=True,ebin=0,color='blue',label='nfw') pdnds_plus_iso.plot_source_count_median('disk',smin=0.01,smax=1000,nsteps=1000,calculate_dnds=True,edep=True,ebin=0,color='orange',label='disk') #plot band pdnds_plus_iso.plot_source_count_band('nfw',smin=0.01,smax=1000,nsteps=1000,calculate_dnds=True,edep=True,ebin=0,qs=[0.16,0.5,0.84],color='blue',label='nfw',alpha=0.5) pdnds_plus_iso.plot_source_count_band('disk',smin=0.01,smax=1000,nsteps=1000,calculate_dnds=True,edep=True,ebin=0,qs=[0.16,0.5,0.84],color='orange',label='disk',alpha=0.5) #also show 3FGL p3FGL.plot_3FGL(fmt = 'o', color='black',markersize=7,label='3FGL') plt.legend(fontsize=16) plt.yscale('log') plt.xscale('log') plt.xlim([5e-11,5e-9]) plt.ylim([1e6,1e11]) 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.savefig(b_plus_IPS.plots_dir_for_run + 'dnds.pdf',bbox_inches='tight') plt.close()
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()
def plot_dnds(): kwargs_spectrum = {"band_mask_range": [-1, 1], "mask_ring": True, "outer": 10} if just_disk: p3FGL = fa.plot_3FGL( f, only_gal=False, CTB_en_min=b_disk.CTB_en_min, CTB_en_max=b_disk.CTB_en_max, **kwargs_spectrum ) p3FGL.configure_3FGL(flux_min=flux_min, flux_max=flux_max, n_flux_bins=n_flux_bins, error_range=error_range) pdnds_disk_only = fa.plot_dnds(b_disk, **kwargs_spectrum) # again, same kwargs plt.figure(figsize=(8, 6)) # plot medians pdnds_disk_only.plot_source_count_median( "disk", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, color="orange", label="disk", ) pdnds_disk_only.plot_source_count_median( "iso", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, color="green", label="iso" ) # plot band pdnds_disk_only.plot_source_count_band( "disk", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, qs=[0.16, 0.5, 0.84], color="orange", label="disk", alpha=0.5, ) pdnds_disk_only.plot_source_count_band( "iso", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, qs=[0.16, 0.5, 0.84], color="green", label="iso", alpha=0.5, ) # also show 3FGL p3FGL.plot_3FGL(fmt="o", color="black", markersize=7, label="3FGL") plt.legend(fontsize=16) plt.yscale("log") plt.xscale("log") plt.xlim([5e-11, 5e-9]) plt.ylim([1e6, 1e11]) 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.savefig(b_disk.plots_dir_for_run + "dnds.pdf", bbox_inches="tight") plt.close() if plus_IPS: p3FGL = fa.plot_3FGL( f, only_gal=False, CTB_en_min=b_plus_IPS.CTB_en_min, CTB_en_max=b_plus_IPS.CTB_en_max, **kwargs_spectrum ) p3FGL.configure_3FGL(flux_min=flux_min, flux_max=flux_max, n_flux_bins=n_flux_bins, error_range=error_range) pdnds_plus_iso = fa.plot_dnds(b_plus_IPS, **kwargs_spectrum) # again, same kwargs ########fist plot with disk, NFW, iso plt.figure(figsize=(8, 6)) # plot medians pdnds_plus_iso.plot_source_count_median( "nfw", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, color="blue", label="nfw" ) pdnds_plus_iso.plot_source_count_median( "disk", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, color="orange", label="disk", ) pdnds_plus_iso.plot_source_count_median( "iso", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, color="green", label="iso" ) # plot band pdnds_plus_iso.plot_source_count_band( "nfw", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, qs=[0.16, 0.5, 0.84], color="blue", label="nfw", alpha=0.5, ) pdnds_plus_iso.plot_source_count_band( "disk", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, qs=[0.16, 0.5, 0.84], color="orange", label="disk", alpha=0.5, ) pdnds_plus_iso.plot_source_count_band( "iso", smin=0.01, smax=1000, nsteps=1000, calculate_dnds=True, edep=True, ebin=0, qs=[0.16, 0.5, 0.84], color="green", label="iso", alpha=0.5, ) # also show 3FGL p3FGL.plot_3FGL(fmt="o", color="black", markersize=7, label="3FGL") plt.legend(fontsize=16) plt.yscale("log") plt.xscale("log") plt.xlim([5e-11, 5e-9]) plt.ylim([1e6, 1e11]) 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.savefig(b_plus_IPS.plots_dir_for_run + "dnds.pdf", bbox_inches="tight") plt.close()
pflux.plot_flux_fraction_poiss('nfw',color_vert = 'Red',drawstyle='steps-mid',label = 'NFW DM',color='Red') plt.legend(fontsize=18) plt.xlabel('fraction of flux [%]', fontsize=18) plt.ylabel('posterior probability', fontsize=18) plt.tick_params(axis='x', length=5,width=2,labelsize=18) plt.tick_params(axis='y', length=5,width=2,labelsize=18) plt.ylabel('posterior probability', fontsize=18) plt.ylim(0, 0.25) plt.xlim(0, 20.3) plt.savefig(b.plots_dir_for_run + 'flux_fraction_plot.pdf') plt.close() else: ###plot dn/ds p3FGL = fa.plot_3FGL(f,band_mask_range = [-mask_b_plot,mask_b_plot], mask_ring = True, outer = outer_plot) p3FGL.configure_3FGL(flux_min=10**-12,flux_max=10**-9,n_flux_bins = 25,only_gal = True,error_range = 0.68) #flux_min=10**-11,flux_max=10**-8, pdnds = fa.plot_dnds(b,band_mask_range = [-mask_b_plot,mask_b_plot], mask_ring = True, outer = outer_plot) plt.figure(figsize=(8,6)) p3FGL.plot_3FGL(fmt = 'o', color='black',markersize=7,label='3FGL PS') pdnds.plot_source_count_band('nfw',nsteps=10000,calculate_dnds=True,facecolor='Orange',interpolate=True, alpha=1,linewidth=0) pdnds.plot_source_count_median('nfw',color='Red',linestyle='--',label='3FGL masked (median)') pdnds.plot_source_count_mean('nfw',color='Red',label='3FGL masked (mean)') plt.xscale('log') plt.yscale('log') plt.ylim((2*10**(7),10**12)) plt.xlim(10**-12., 10**-9.) 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.ylim([10**-7,10**-5]) # #plt.ylim([10**-9,10**-4]) # plt.xlim(xlim) plt.title('Spectrum',fontsize=14) #: $|b| \geq 1$ within $10^\circ$ of GC, with 300 brightest PS\'s masked',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: ###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],band_mask_range = [-mask_b_plot,mask_b_plot], mask_ring = False) p3FGL.configure_3FGL(flux_min=10**-12,flux_max=10**-8,n_flux_bins = 25,only_gal = False,error_range = 0.68) #flux_min=10**-11,flux_max=10**-8, #pdnds = fa.plot_dnds(b,band_mask_range = [-mask_b_plot,mask_b_plot], mask_ring = True, outer = outer_plot) pdnds = fa.plot_dnds(b,band_mask_range = [-mask_b_plot,mask_b_plot], mask_ring = False) plt.figure(figsize=(8,6)) p3FGL.plot_3FGL(fmt = 'o', color='black',markersize=7,label='3FGL PS') pdnds.plot_source_count_band('iso',edep=True,ebin=ebin_num,nsteps=1000,calculate_dnds=True,facecolor='Orange',interpolate=True, alpha=1,linewidth=0) pdnds.plot_source_count_median('iso',edep=True,ebin=ebin_num,color='Red',linestyle='--',label='3FGL masked (median)') pdnds.plot_source_count_mean('iso',edep=True,ebin=ebin_num,color='Red',label='3FGL masked (mean)') 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)