Stride Reference Manual  - generated for commit 9643b11
Immunizer.h
Go to the documentation of this file.
1 /*
2  * This is free software: you can redistribute it and/or modify it
3  * under the terms of the GNU General Public License as published by
4  * the Free Software Foundation, either version 3 of the License, or
5  * any later version.
6  * The software is distributed in the hope that it will be useful,
7  * but WITHOUT ANY WARRANTY; without even the implied warranty of
8  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9  * GNU General Public License for more details.
10  * You should have received a copy of the GNU General Public License
11  * along with the software. If not, see <http://www.gnu.org/licenses/>.
12  *
13  * Copyright 2018, Kuylen E, Willem L, Broeckhove J
14  */
15 
21 #pragma once
22 
23 #include "contact/ContactPool.h"
24 #include "pop/Population.h"
25 #include "util/RnMan.h"
26 #include "util/SegmentedVector.h"
27 
28 namespace stride {
29 
33 class Immunizer
34 {
35 public:
37  explicit Immunizer(util::RnMan& rnManager) : m_rn_man(rnManager) {}
38 
40  void Random(const util::SegmentedVector<ContactPool>& pools, std::vector<double>& immunityDistribution,
41  double immunityLinkProbability);
42 
44  void Random(std::shared_ptr<Population> pop, std::vector<double>& immunityDistribution, const ContactType::Id contactPoolType, double immunityLinkProbability);
45 
47  void Cocoon(const util::SegmentedVector<ContactPool>& /*pools*/, std::vector<double>& /*immunityDistribution*/,
48  double /*immunityLinkProbability*/);
49 
50 private:
52 };
53 
54 } // namespace stride
Id
Enumerates the ContactPool types.
Definition: ContactType.h:34
Header for the core ContactPool class.
Interface and implementation for SegmentedVector class.
Interface of RnMan.
Container that stores objects "almost contiguously" (in a chain of blocks) and guarantees that pointe...
util::RnMan & m_rn_man
Random number manager.
Definition: Immunizer.h:51
void Cocoon(const util::SegmentedVector< ContactPool > &, std::vector< double > &, double)
Cocoon immunization.
Definition: Immunizer.cpp:34
Header file for the core Population class.
Deals with immunization strategies.
Definition: Immunizer.h:33
void Random(const util::SegmentedVector< ContactPool > &pools, std::vector< double > &immunityDistribution, double immunityLinkProbability)
Random immunization.
Immunizer(util::RnMan &rnManager)
Definition: Immunizer.h:37
Namespace for the simulator and related classes.
Definition: Calendar.cpp:28