Simpact Cyan
Population based event driven simulation using mNRM
evthazardformationsimple.h
1 #ifndef EVTHAZARDFORMATIONSIMPLE_H
2 
3 #define EVTHAZARDFORMATIONSIMPLE_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 EvtHazardFormationSimple : public EvtHazard
13 {
14 public:
15  EvtHazardFormationSimple(double a0, double a1, double a2, double a3, double a4, double a5, double a6,
16  double a7, double Dp, double b, double tMax);
17  ~EvtHazardFormationSimple();
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
37  double m_a6; // eagerness_scale
38  double m_a7; // eagerness_difference_scale
39  double m_Dp; // preferred_age_difference
40  double m_b; // last_change_factor
41  double m_tMax;
42 };
43 
44 #endif // EVTHAZARDFORMATIONSIMPLE_H
Helper class to read configuration settings, more advanced than ConfigReader.
Definition: configsettings.h:20