Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
marketing_dynamic_scenario.h
Go to the documentation of this file.
1#pragma once
3
4#include <functional>
5#include <set>
6#include <vector>
7
8namespace hgps {
9
13
19 std::vector<PolicyImpact> sorted_impacts, PolicyDynamic dynamic)
20 : active_period{period}, impacts{std::move(sorted_impacts)}, dynamic{dynamic} {}
21
24
26 std::vector<PolicyImpact> impacts;
27
30};
31
34 public:
36
43
44 SyncChannel &channel() override;
45
46 void clear() noexcept override;
47
48 double apply(Random &generator, Person &entity, int time,
49 const core::Identifier &risk_factor_key, double value) override;
50
51 const PolicyInterval &active_period() const noexcept override;
52
53 const std::vector<PolicyImpact> &impacts() const noexcept override;
54
55 const PolicyDynamic &dynamic() const noexcept override;
56
57 private:
58 std::reference_wrapper<SyncChannel> channel_;
60 std::set<core::Identifier> factor_impact_;
61 std::unordered_map<std::size_t, int> interventions_book_{};
62
63 int get_index_of_impact_by_age(unsigned int age) const;
64 double get_differential_impact(int current_index, int previous_index) const;
65};
66} // namespace hgps
Thread-safe communication channel data type.
Definition channel.h:24
Health-GPS dynamic intervention policy scenario interface.
Definition intervention_scenario.h:41
Implements the dynamic marketing regulation intervention scenario.
Definition marketing_dynamic_scenario.h:33
const PolicyDynamic & dynamic() const noexcept override
Gets the System Dynamic model parameters.
Definition marketing_dynamic_scenario.cpp:85
const PolicyInterval & active_period() const noexcept override
Gets the intervention active period.
Definition marketing_dynamic_scenario.cpp:77
double apply(Random &generator, Person &entity, int time, const core::Identifier &risk_factor_key, double value) override
Applies this Scenario to the Person instance.
Definition marketing_dynamic_scenario.cpp:35
SyncChannel & channel() override
Gets the Scenario communication channel.
Definition marketing_dynamic_scenario.cpp:31
const std::vector< PolicyImpact > & impacts() const noexcept override
Gets the intervention impacts by risk factor and age range.
Definition marketing_dynamic_scenario.cpp:81
void clear() noexcept override
Clear the scenario log book data.
Definition marketing_dynamic_scenario.cpp:33
General purpose Random number generator algorithms.
Definition random_algorithm.h:8
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
Global namespace.
Definition column_iterator.h:123
Dynamic marketing intervention definition data type.
Definition marketing_dynamic_scenario.h:11
MarketingDynamicDefinition(const PolicyInterval &period, std::vector< PolicyImpact > sorted_impacts, PolicyDynamic dynamic)
Initialise a new instance of the MarketingDynamicDefinition structure.
Definition marketing_dynamic_scenario.h:18
PolicyDynamic dynamic
Population dynamic parameters.
Definition marketing_dynamic_scenario.h:29
PolicyInterval active_period
Intervention active period.
Definition marketing_dynamic_scenario.h:23
std::vector< PolicyImpact > impacts
Intervention impacts on risk factors.
Definition marketing_dynamic_scenario.h:26
Defines a virtual population person data type.
Definition person.h:39
Defines the policy dynamic parameters.
Definition intervention_scenario.h:141
Defines the policy impact on risk factors data structure.
Definition intervention_scenario.h:49
Defines the policy active interval.
Definition intervention_scenario.h:99