3 #include "CalcInfSusc.h" 7 #include "ModelMacros.h" 12 double CalcHouseInf(
int j,
unsigned short int ts)
14 return ((HOST_ISOLATED(j) && (Hosts[j].digitalContactTraced != 1)) ? P.CaseIsolationHouseEffectiveness : 1.0)
15 * ((Hosts[j].digitalContactTraced==1) ? P.DCTCaseIsolationHouseEffectiveness : 1.0)
16 * ((HOST_QUARANTINED(j) && (Hosts[j].digitalContactTraced != 1) && (!(HOST_ISOLATED(j))))? P.HQuarantineHouseEffect : 1.0)
17 * P.HouseholdDenomLookup[Households[Hosts[j].hh].nhr - 1] * CalcPersonInf(j, ts);
19 double CalcPlaceInf(
int j,
int k,
unsigned short int ts)
21 return ((HOST_ISOLATED(j) && (Hosts[j].digitalContactTraced != 1)) ? P.CaseIsolationEffectiveness : 1.0)
22 * ((Hosts[j].digitalContactTraced==1) ? P.DCTCaseIsolationEffectiveness : 1.0)
23 * ((HOST_QUARANTINED(j) && (Hosts[j].digitalContactTraced != 1) && (!(HOST_ISOLATED(j)))) ? P.HQuarantinePlaceEffect[k] : 1.0)
24 * ((Hosts[j].inf == InfStat_Case) ? P.SymptPlaceTypeContactRate[k] : 1.0)
25 * P.PlaceTypeTrans[k] / P.PlaceTypeGroupSizeParam1[k] * CalcPersonInf(j, ts);
27 double CalcSpatialInf(
int j,
unsigned short int ts)
29 return ((HOST_ISOLATED(j) && (Hosts[j].digitalContactTraced != 1)) ? P.CaseIsolationEffectiveness : 1.0)
30 * ((Hosts[j].digitalContactTraced==1) ? P.DCTCaseIsolationEffectiveness : 1.0)
31 * ((HOST_QUARANTINED(j) && (Hosts[j].digitalContactTraced != 1) && (!(HOST_ISOLATED(j)))) ? P.HQuarantineSpatialEffect : 1.0)
32 * ((Hosts[j].inf == InfStat_Case) ? P.SymptSpatialContactRate : 1.0)
33 * P.RelativeSpatialContact[HOST_AGE_GROUP(j)]
34 * CalcPersonInf(j, ts);
36 double CalcPersonInf(
int j,
unsigned short int ts)
38 return (HOST_TREATED(j) ? P.TreatInfDrop : 1.0)
39 * (HOST_VACCED(j) ? P.VaccInfDrop : 1.0)
40 * fabs(Hosts[j].infectiousness)
41 * P.infectiousness[ts - Hosts[j].latent_time - 1];
46 double CalcHouseSusc(
int ai,
unsigned short int ts,
int infector,
int tn)
48 return CalcPersonSusc(ai, ts, infector, tn)
49 * ((Mcells[Hosts[ai].mcell].socdist == 2) ? ((Hosts[ai].esocdist_comply) ? P.EnhancedSocDistHouseholdEffectCurrent : P.SocDistHouseholdEffectCurrent) : 1.0)
50 * (Hosts[ai].digitalContactTraced==1 ? P.DCTCaseIsolationHouseEffectiveness : 1.0);
52 double CalcPlaceSusc(
int ai,
int k,
unsigned short int ts,
int infector,
int tn)
54 return ((HOST_QUARANTINED(ai) && (Hosts[ai].digitalContactTraced != 1)) ? P.HQuarantinePlaceEffect[k] : 1.0)
55 * ((Mcells[Hosts[ai].mcell].socdist == 2) ? ((Hosts[ai].esocdist_comply) ? P.EnhancedSocDistPlaceEffectCurrent[k] : P.SocDistPlaceEffectCurrent[k]) : 1.0)
56 * (Hosts[ai].digitalContactTraced==1 ? P.DCTCaseIsolationEffectiveness : 1.0);
58 double CalcSpatialSusc(
int ai,
unsigned short int ts,
int infector,
int tn)
60 return ((HOST_QUARANTINED(ai) && (Hosts[ai].digitalContactTraced != 1)) ? P.HQuarantineSpatialEffect : 1.0)
61 * ((Mcells[Hosts[ai].mcell].socdist == 2) ? ((Hosts[ai].esocdist_comply) ? P.EnhancedSocDistSpatialEffectCurrent : P.SocDistSpatialEffectCurrent) : 1.0)
62 * (Hosts[ai].digitalContactTraced==1 ? P.DCTCaseIsolationEffectiveness : 1.0);
64 double CalcPersonSusc(
int ai,
unsigned short int ts,
int infector,
int tn)
66 return P.WAIFW_Matrix[HOST_AGE_GROUP(ai)][HOST_AGE_GROUP(infector)]
67 * P.AgeSusceptibility[HOST_AGE_GROUP(ai)] * Hosts[ai].susc
68 * (HOST_TREATED(ai) ? P.TreatSuscDrop : 1.0)
69 * (HOST_VACCED(ai) ? (HOST_VACCED_SWITCH(ai) ? P.VaccSuscDrop2 : P.VaccSuscDrop) : 1.0);