diff --git a/cara/apps/calculator/report_generator.py b/cara/apps/calculator/report_generator.py index 22aaf932..217e0902 100644 --- a/cara/apps/calculator/report_generator.py +++ b/cara/apps/calculator/report_generator.py @@ -131,7 +131,7 @@ def plot(times, concentrations, model: models.ExposureModel): ) #See CERN-OPEN-2021-004, p. 15, eq. 16. - Cumulative Dose - factor = 0.6 * np.mean(model.exposed.activity.inhalation_rate) * (1 - model.exposed.mask.η_inhale) + cumulated_exposure = model.cumulated_exposure() present_indexes = np.array([model.exposed.person_present(t) for t in times]) modified_concentrations = np.array(concentrations) modified_concentrations[~present_indexes] = 0 @@ -139,7 +139,7 @@ def plot(times, concentrations, model: models.ExposureModel): qds = [np.trapz(modified_concentrations[:i + 1], times[:i + 1]) * factor for i in range(len(times))] ax1 = ax.twinx() - ax1.plot(datetimes, qds, label='Mean cumulative dose', color='#1f77b4', linestyle='dotted') + ax1.plot(datetimes, cumulated_exposure, label='Mean cumulative dose', color='#1f77b4', linestyle='dotted') ax1.spines["right"].set_linestyle("--") ax1.spines["right"].set_linestyle((0,(1,5))) ax1.set_ylabel('Mean cumulative dose\n(virion)', fontsize=14) diff --git a/cara/models.py b/cara/models.py index 585fb824..b762b451 100644 --- a/cara/models.py +++ b/cara/models.py @@ -876,15 +876,18 @@ class ExposureModel: return exposure * self.repeats - def infection_probability(self) -> _VectorisedFloat: + def cumulated_exposure(self) -> _VectorisedFloat: exposure = self.quanta_exposure() - - inf_aero = ( + + return ( self.exposed.activity.inhalation_rate * (1 - self.exposed.mask.inhale_efficiency()) * exposure * self.fraction_deposited ) + def infection_probability(self) -> _VectorisedFloat: + inf_aero = self.cumulated_exposure() + # Probability of infection. return (1 - np.exp(-inf_aero)) * 100