Commit b3ecfbf9714058dc1652c21d3e87fe2889d02239
1 parent
44e28016
Correctly implement flux computation in sensitivity estimation
Showing
1 changed file
with
11 additions
and
2 deletions
examples/show_response.py
| ... | ... | @@ -167,6 +167,7 @@ def show_one_sensitivity(rsp, name, color="r", duration=180000.0, alpha=0.2, sig |
| 167 | 167 | """ |
| 168 | 168 | # Set constants |
| 169 | 169 | r68_to_sigma = 0.6624305 |
| 170 | + TeV2erg = 1.0e6 * gammalib.MeV2erg | |
| 170 | 171 | |
| 171 | 172 | # Set to figure 3 |
| 172 | 173 | plt.figure(3) |
| ... | ... | @@ -189,8 +190,16 @@ def show_one_sensitivity(rsp, name, color="r", duration=180000.0, alpha=0.2, sig |
| 189 | 190 | if Noff > 0: |
| 190 | 191 | Non = Non_lima(sigma, Noff) |
| 191 | 192 | src_counts = Non - bgd_counts |
| 192 | - flux[i] = src_counts / (0.68*aeff * duration) * E[i]*1.0e6 * gammalib.MeV2erg | |
| 193 | - #print logE[i], flux[i] | |
| 193 | + if src_counts < 0.05*bgd_counts: | |
| 194 | + src_counts = 0.05*bgd_counts | |
| 195 | + if src_counts < 10: | |
| 196 | + src_counts = 10.0 | |
| 197 | + emin = gammalib.GEnergy(math.pow(10.0, logE[i]-0.1), "TeV") | |
| 198 | + emax = gammalib.GEnergy(math.pow(10.0, logE[i]+0.1), "TeV") | |
| 199 | + epivot = gammalib.GEnergy(math.pow(10.0, logE[i]), "TeV") | |
| 200 | + plaw = gammalib.GModelSpectralPlaw(1.0e-6, -2.6, epivot) | |
| 201 | + conv = TeV2erg*E[i]*E[i]/plaw.flux(emin, emax) | |
| 202 | + flux[i] = conv * src_counts / (duration * aeff*0.68) | |
| 194 | 203 | |
| 195 | 204 | # Plot data |
| 196 | 205 | plt.loglog(E, flux, color+'-', label=name) | ... | ... |