InfectionModel.java
package org.matsim.episim.model;
import org.matsim.episim.EpisimConfigGroup;
import org.matsim.episim.EpisimPerson;
import org.matsim.episim.policy.Restriction;
import java.util.Map;
public interface InfectionModel {
/**
* Called at the start of an iteration.
*
* @param iteration current iteration / day
*/
default void setIteration(int iteration) {
}
/**
* Calculates the probability that person {@code infector} infects {@code target}.
*
* @param target The potentially infected person
* @param infector The infectious person
* @param restrictions Restrictions currently in place
* @param act1 Activity of target
* @param act2 Activity of infector
* @param contactIntensity Contact intensity of this activity
* @param jointTimeInContainer joint time doing these activity in seconds
* @return probability between 0 and 1
*/
double calcInfectionProbability(EpisimPerson target, EpisimPerson infector, Map<String, Restriction> restrictions,
EpisimConfigGroup.InfectionParams act1, EpisimConfigGroup.InfectionParams act2,
double contactIntensity, double jointTimeInContainer);
/**
* Returns the probability that person {@code infector} infects {@code target}, ignoring vaccination status of target.
*/
default double getLastUnVacInfectionProbability() {
return -1;
}
}