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