def plot_sec_spec(): particlePoints=1000 Eg=np.logspace(7.,13.,100)/1.e9 Ee=np.logspace(6.,15.,particlePoints)/1.e9 parameter=[1.,9.,-2.5,10.] #Ne=spsh.bplcut(Ee,[49.4,-2.43,-2.7,1.69,5.]) Ne=spsh.sbplcuty(Ee,[49.4,1.,-1.5,1.176,-1.4,5.]) #Ne2=spsh.plcut() ylist=[] xlist=[] taglist=[] elist=[] ppcrosspath='/Users/jogler/Physik/Fermi/scripts/pp_data/' ppcross=crs.crossSection(ppcrosspath) source=sed.source(6000,30.,3.e4) source.set_radiation_densities(0.25,0.84,3.0e-3,0.9)#W51C densities Abdo et al 2009 source.set_radiation_photons(-8.,4.,0.1) source.set_am_prop(10.,10.,1.) fluxScale=Eg/(4.*np.pi*(source.dist*const.PARSEC*const.m2cm)**2.)/const.erg2GeV print 'Scale: ',fluxScale pp=mod.model(Ne,'pp',[],source,ppcross) ppSpec=pp.nucFactor*pp.EdQdE_pp(Ne,Ee,Eg) #secEPoints=np.logspace(np.log10(Eg[0]),np.log10(Eg[len(Eg)-1]),particlePoints) eSecSpec=pp.nucFactor*(pp.EdQdE_pp(Ne,Ee,Ee,1)+pp.EdQdE_pp(Ne,Ee,Ee,2))*source.age*const.yr2s print 'points in secondary spec: ',np.size(eSecSpec) secBrems=pp.Brems_spec(eSecSpec,Ee,Eg) secIC=pp.IC_spec_gamma(source.phTot,source.Eph,eSecSpec,Ee,Eg) ylist.append(ppSpec*fluxScale) ylist.append(secBrems*fluxScale) ylist.append(secIC*fluxScale) xlist.append(Eg) xlist.append(Eg) xlist.append(Eg) elist.append(0) elist.append(0) elist.append(0) taglist.append('pp') taglist.append('brems sec') taglist.append('IC sec') fig=plot(xlist,ylist,[],elist,taglist,r'$\mathrm{E}_{\gamma}\, \mathrm{ [GeV]}$',r'$EF_{\gamma}\, [\mathrm{erg}\, \mathrm{ cm}^{-2} \mathrm{s}^{-1}]$') plt.show(fig)
def plot_spectrum(typ=['ic','brems','pp']): '''plots spectra''' Eg=np.logspace(6.,12.,100) Ee=np.logspace(6.,15.,1000) parameter=[1.,9.,-2.5,10.] #Ne2=spsh.bplcut(Ee,[49.4,-1.5,-2.9,10.176,13.]) Ne2=spsh.sbplcut(Ee,[49.4,9.,-1.5,10.301,2.3,13.]) #print Ne Ne=spsh.sbplcuty(Ee,[49.4,9.,-1.5,10.301,2.3,13.])#W51C values abdo et al 2009 ENe=Ee*Ne2 spec=sed.spectrum(spsh.sbplcut,[49.4,9.,-1.5,10.301,2.3,13.],1.e6,1.e15,1000.) #Ne2=spsh.plcut() ylist=[] xlist=[] taglist=[] elist=[] source=sed.source() source.set_radiation_densities(0.25,0.84,3.0e-3,0.9)#W51C densities Abdo et al 2009 source.set_radiation_photons(-8.,4.,0.1) source.set_am_prop(10.,10.,1.) ppcrosspath='/Users/jogler/Physik/Fermi/scripts/pp_data/' ppcross=crs.crossSection(ppcrosspath) if 'brems' in typ: brems=mod.model(spec,'brems',[],source,ppcross) En=brems.spec.get_xvals()*brems.spec.value() print En-ENe ylist.append((Eg/1.e9)*brems.Brems_spec(ENe,Ee/1.e9,Eg/1.e9)) #ylist.append(brems.Brems_spec(ENe,Ee/10**9,Eg/10**9)) # ylist.append(brems.Brems_spec_ee(Ne,Ee,Eg)) xlist.append(Eg) #xlist.append(Eg) taglist.append('Brems N') #taglist.append('Brems ee') elist.append(0) #elist.append(0) if 'ic' in typ: for ph in [source.phTot,source.phCMB,source.phDust,source.phStar]: ic=mod.model(Ne,'ic',[],source,ppcrosspath) ylist.append(Eg/1.e9*ic.IC_spec_gamma(ph/source.Eph,source.Eph,ENe,Ee/10**9,Eg/10**9)) xlist.append(Eg) elist.append(0) for t in['IC total','IC CMB','IC Dust','IC Star']: taglist.append(t) if 'pp' in typ: pp=mod.model(Ne,'pp',[],source,ppcross) ylist.append(pp.EdQdE_pp(Ne,Ee/10**9,Eg/10**9)) xlist.append(Eg) elist.append(0) taglist.append(r'$\mathrm{pp}_{\gamma} $') ''' plot e+ e- sec spec''' ylist.append(pp.EdQdE_pp(Ne,Ee/10**9,Eg/10**9,1)) xlist.append(Eg) elist.append(0) taglist.append('pp_e-') ylist.append(pp.EdQdE_pp(Ne,Ee/10**9,Eg/10**9,2)) xlist.append(Eg) elist.append(0) taglist.append('pp_e+') if 'comp' in typ: if 'brems' in typ: print 'nH: %.2f nHeff: %.2f Zeff: %.2f'%(source.nH,source.nHeff,source.Zeff) bremsSp=gs.brems_spectrum(ENe,Ee/10**9,source.nHeff) ylist.append(Eg/10**9*bremsSp(Eg/10**9)) xlist.append(Eg) elist.append(0) taglist.append('brems dima') if 'ic' in typ: icSp=gs.IC_spectrum(source.phTot/source.Eph,source.Eph,ENe,Ee/10**9) ylist.append(Eg/10**9*icSp(Eg/10**9)) xlist.append(Eg) elist.append(0) taglist.append('ic dima') if 'pp' in typ: ppSp=gs.EdQdE_pp(Ne,Ee/10**9,source.nH,0) ylist.append(ppSp(Eg/10**9)) xlist.append(Eg) elist.append(0) taglist.append('pp dima') fig0=plot(xlist,ylist,[],elist,taglist,r'$\mathrm{E}_{\gamma}\, \mathrm{ [eV]}$',r'$E^2F_{\gamma}\, [\mathrm{erg}\,\mathrm{ cm}^{-3} \mathrm{s}^{-1}]$') #plt.show(fig0) xlist=[] ylist=[] elist=[] taglist=[] xlist.append(Ee) xlist.append(Ee) ylist.append(Ne) ylist.append(Ne2) elist.append(0) elist.append(0) taglist.append('Ne') taglist.append('Ne2') fig1=plot(xlist,ylist,[],elist,taglist,r'$\mathrm{E}_{\gamma}\, \mathrm{ [eV]}$',r'$N_e\, [\mathrm{N}_{e}\mathrm{ cm}^{-3} \mathrm{s}^{-1}]$') plt.show()