https://github.com/PublicHealthDynamicsLab/FRED
Revision a45e04ad99c865724a3c2b1a2d3fd979b3c6be88 authored by John Grefenstette on 07 January 2016, 16:32:02 UTC, committed by John Grefenstette on 07 January 2016, 16:32:02 UTC
1 parent 9bc2dce
Raw File
Tip revision: a45e04ad99c865724a3c2b1a2d3fd979b3c6be88 authored by John Grefenstette on 07 January 2016, 16:32:02 UTC
working markov epidemic model
Tip revision: a45e04a
MSEvolution.h
/*
  This file is part of the FRED system.

  Copyright (c) 2010-2015, University of Pittsburgh, John Grefenstette,
  Shawn Brown, Roni Rosenfield, Alona Fyshe, David Galloway, Nathan
  Stone, Jay DePasse, Anuroop Sriram, and Donald Burke.

  Licensed under the BSD 3-Clause license.  See the file "LICENSE" for
  more information.
*/

#ifndef _FRED_MSEVOLUTION_H
#define _FRED_MSEVOLUTION_H

#include "Evolution.h"

class Age_Map;
class Disease;
class Person;
class Piecewise_Linear;

class MSEvolution : public Evolution {

public:
  MSEvolution();
  virtual ~MSEvolution();
  virtual void setup(Disease* disease);
  virtual double antigenic_distance(int strain1, int strain2);

protected:
  virtual double residual_immunity(Person* person, int challenge_strain, int day);
  virtual double prob_inf_blocking(int old_strain, int new_strain, int time, double real_age);
  virtual double prob_vac_blocking(int old_strain, int new_strain, int time, double real_age);
  virtual double prob_blocking(int old_strain, int new_strain, int time, double halflife, double prob_blocking);
  virtual double prob_past_infections(Person* infectee, int new_strain, int day);
  virtual double prob_past_vaccinations(Person* infectee, int new_strain, int day);
  virtual double get_prob_taking(Person* infectee, int new_strain, double quantity, int day);
  virtual double prob_inoc(double quantity);

private:
  Age_Map* halflife_inf;
  Age_Map* halflife_vac;
  double prob_inoc_norm;
  double init_prot_inf;
  double init_prot_vac;
  double sat_quantity;
  Piecewise_Linear* protection;
};

#endif

back to top