00001 #ifndef Population_h 00002 #define Population_h 00003 00004 #include "Deme.h" 00005 00014 class Population : public std::vector <DemeP> 00015 { 00016 protected: 00017 uint nDemes_; 00018 uint myDemeIndex_; 00019 uint nIndividuals_; 00020 StateP state_; 00021 HallOfFameP hof_; 00022 StatCalcP stats_; 00023 00024 public: 00025 Population(); 00026 bool initialize(StateP state); 00027 void registerParameters(StateP state); 00028 void write(XMLNode&); 00029 void read(XMLNode&); 00030 void updateDemeStats(); 00031 uint getNoDemes() 00032 { return nDemes_; } 00033 uint getLocalDemeId() 00034 { return myDemeIndex_; } 00035 DemeP getLocalDeme() 00036 { return this->at(0); } 00037 HallOfFameP getHof() 00038 { return hof_; } 00039 StatCalcP getStats() 00040 { return stats_; } 00041 }; 00042 typedef boost::shared_ptr<Population> PopulationP; 00043 00044 #endif // Population_h 00045