00001 #include "SimHeaderCnv.h" 00002 00003 #include "Event/SimUnobservableStatisticsHeader.h" 00004 #include "PerSimEvent/PerSimUnobservableStatistics.h" 00005 #include "Event/SimStatistic.h" 00006 #include "PerSimEvent/PerSimStat.h" 00007 00008 using namespace DayaBay; 00009 using namespace std; 00010 00011 00012 DayaBay::SimUnobservableStatisticsHeader* 00013 SimHeaderCnv::convert(const PerSimUnobservableStatistics& pstat) 00014 { 00015 SimUnobservableStatisticsHeader* stat = new SimUnobservableStatisticsHeader; 00016 SimUnobservableStatisticsHeader::stat_map& stats = stat->stats(); 00017 00018 std::map<string,PerSimStat>::const_iterator it, done = pstat.stats.end(); 00019 for (it = pstat.stats.begin(); it != done; ++it) { 00020 SimStatistic ss; 00021 ss.setCount(it->second.count); 00022 ss.setSum(it->second.sum); 00023 ss.setSquaredsum(it->second.squaredsum); 00024 stats[it->first] = ss; 00025 } 00026 00027 return stat; 00028 } 00029 00030 PerSimUnobservableStatistics* 00031 SimHeaderCnv::convert(const DayaBay::SimUnobservableStatisticsHeader& stat) 00032 { 00033 PerSimUnobservableStatistics* pstat = new PerSimUnobservableStatistics; 00034 std::map<std::string,PerSimStat>& pstats = pstat->stats; 00035 00036 const SimUnobservableStatisticsHeader::stat_map& stats = stat.stats(); 00037 SimUnobservableStatisticsHeader::stat_map::const_iterator it, done = stats.end(); 00038 for (it = stats.begin(); it != done; ++it) { 00039 pstats[it->first] = 00040 PerSimStat(it->second.count(),it->second.sum(),it->second.squaredsum()); 00041 } 00042 return pstat; 00043 } 00044