# Compute photon density spectrum from synchrotron emission assuming R=2.1 pc Rpwn = 2.1 * u.pc Esy = np.logspace(-7, 9, 100) * u.eV Lsy = SYN.flux(Esy, distance=0 * u.cm) # use distance 0 to get luminosity phn_sy = Lsy / (4 * np.pi * Rpwn**2 * c) * 2.24 IC = InverseCompton(ECBPL, seed_photon_fields=['CMB', ['FIR', 70 * u.K, 0.5 * u.eV / u.cm**3], ['NIR', 5000 * u.K, 1 * u.eV / u.cm**3], ['SSC', Esy, phn_sy]], Eemax=50 * u.PeV, Eemin=0.1 * u.GeV) # Use plot_data from naima to plot the observed spectra data = ascii.read('CrabNebula_spectrum.ecsv') figure = naima.plot_data(data, e_unit=u.eV) ax = figure.axes[0] # Plot the computed model emission energy = np.logspace(-7, 15, 100) * u.eV ax.loglog(energy, IC.sed(energy, 2 * u.kpc) + SYN.sed(energy, 2 * u.kpc), lw=3, c='k', label='Total') for i, seed, ls in zip( range(4), ['CMB', 'FIR', 'NIR', 'SSC'], ['--', '-.', ':', '-']): ax.loglog(energy, IC.sed(energy, 2 * u.kpc, seed=seed), lw=2, c=naima.plot.color_cycle[i + 1], label=seed, ls=ls) ax.set_ylim(1e-12, 1e-7) ax.legend(loc='upper right', frameon=False) figure.tight_layout()
IC = InverseCompton( ECBPL, seed_photon_fields=[ "CMB", ["FIR", 70 * u.K, 0.5 * u.eV / u.cm**3], ["NIR", 5000 * u.K, 1 * u.eV / u.cm**3], ["SSC", Esy, phn_sy], ], Eemax=50 * u.PeV, Eemin=0.1 * u.GeV, ) # Use plot_data from naima to plot the observed spectra data = ascii.read("CrabNebula_spectrum.ecsv") figure = naima.plot_data(data, e_unit=u.eV) ax = figure.axes[0] # Plot the computed model emission energy = np.logspace(-7, 15, 100) * u.eV ax.loglog( energy, IC.sed(energy, 2 * u.kpc) + SYN.sed(energy, 2 * u.kpc), lw=3, c="k", label="Total", ) for i, seed, ls in zip(range(4), ["CMB", "FIR", "NIR", "SSC"], ["--", "-.", ":", "-"]): ax.loglog( energy,
print('Energy cutoff: ', Ecut_flare, '+-', str(err_ep / 2.)) print('Total energy in electrons above 1 TeV: We = ', We.value, ' erg') energy = np.logspace(-7, 15, 100) * u.eV #synp = SYN_f.sed(energy, crab_distance).value #print('Synchrotron maximum energy', energy[int(np.where(synp == np.max(synp))[0])].to('MeV')) #print(energy[energy.value > 1e6].to('MeV')) # In[7]: if make_plot == True: figure, ax = plt.subplots(1, 1, figsize=(10, 5)) data_steady = ascii.read('CrabNebula_spectrum.ecsv.txt') naima.plot_data(data_steady, e_unit=u.eV, figure=figure) naima.plot_data(data_flare, e_unit=u.eV, figure=figure) ax.loglog(energy, SYN_f.sed(energy, crab_distance), lw=3, c='r', label='SYN') ax.loglog(energy, IC_f.sed(energy, crab_distance, seed='CMB') + IC_f.sed(energy, crab_distance, seed='FIR') + IC_f.sed(energy, crab_distance, seed='NIR') + IC_f.sed(energy, crab_distance, seed='SSC'), lw=3, c='r',