From 3cc9dcb0a8d9b71e2404b2692a5041881373e1c0 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Thu, 10 Jan 2019 21:08:41 +0800 Subject: clusters/halo: Rewrite is_geniune() method --- fg21sim/extragalactic/clusters/halo.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'fg21sim/extragalactic/clusters/halo.py') diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index da3079b..9c25a3a 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -454,6 +454,36 @@ class RadioHalo: return n_e + def is_genuine(self, n_e): + """ + Check whether the radio halo is genuine/observable by comparing the + emissivity to the corresponding fiducial value, which is calculated + from the fiducial electron spectrum derived with turbulent + acceleration turned off. + + Parameters + ---------- + n_e : float 1D `~numpy.ndarray` + The finally derived electron spectrum. + Unit: [cm^-3] + + Returns + ------- + genuine : bool + Whether the radio halo is genuine? + factor : float + Acceleration factor of the flux. + """ + haloem = HaloEmission(gamma=self.gamma, n_e=n_e, B=1) + em = haloem.calc_emissivity(self.fiducial_freq) + + ne_fiducial = self.calc_electron_spectrum(fiducial=True) + haloem.n_e = ne_fiducial + em_fiducial = haloem.calc_emissivity(self.fiducial_freq) + + factor = em / em_fiducial + return (factor >= self.fiducial_factor, factor) + def fp_injection(self, gamma, t=None): """ Electron injection (rate) term for the Fokker-Planck equation. -- cgit v1.2.2