Simpact Cyan
Population based event driven simulation using mNRM
evthazardformationagegap.h
1 #ifndef EVTHAZARDFORMATIONAGEGAP_H
2 
3 #define EVTHAZARDFORMATIONAGEGAP_H
4 
5 #include "evthazard.h"
6 
7 class Person;
8 class ConfigSettings;
9 
10 // WARNING: the same instance can be called from multiple threads
11 
12 class EvtHazardFormationAgeGap : public EvtHazard
13 {
14 public:
15  EvtHazardFormationAgeGap(double a0, double a1, double a2, double a3, double a4, double a5, double a6,
16  double a7, double a8, double a9, double a10, double b, double tMax);
17  ~EvtHazardFormationAgeGap();
18 
19  double calculateInternalTimeInterval(const SimpactPopulation &population,
20  const SimpactEvent &event, double t0, double dt);
21  double solveForRealTimeInterval(const SimpactPopulation &population,
22  const SimpactEvent &event, double Tdiff, double t0);
23 
24  static EvtHazard *processConfig(ConfigSettings &config);
25  void obtainConfig(ConfigWriter &writer);
26 private:
27  double getA0(const SimpactPopulation &population, Person *pPerson1, Person *pPerson2);
28  double getTr(const SimpactPopulation &population, Person *pPerson1, Person *pPerson2, double t0, double lastDissTime);
29  double getTMax(Person *pPerson1, Person *pPerson2);
30 
31  double m_a0; // baseline_factor
32  double m_a1; // male_current_relations_factor -> just current_relations_factor ?
33  double m_a2; // female_current_relations_factor -> just current_relations_factor ?
34  double m_a3; // current_relations_difference_factor?? TODO can't find this
35  double m_a4; // mean_age_factor
36  double m_a5; // age_difference_factor for men
37  double m_a6; // eagerness_scale
38  double m_a7; // eagerness_difference_scale
39  double m_a8; // male age scale
40  double m_a9; // age_difference_factor for women
41  double m_a10; // female age scale
42  double m_b; // last_change_factor
43  double m_tMax;
44 };
45 
46 #endif // EVTHAZARDFORMATIONAGEGAP_H
Helper class to read configuration settings, more advanced than ConfigReader.
Definition: configsettings.h:20