// ========================================================================== /// Main execution // ========================================================================== StatusCode MapAlg::execute() { using namespace Gaudi::Utils ; Rndm::Numbers gauss ( randSvc() , Rndm::Gauss ( 0.0 , 1.0 ) ) ; Rndm::Numbers gauss2 ( randSvc() , Rndm::Gauss ( 0.0 , 10.0 ) ) ; const Key key = Key ( gauss2 () ) ; const Value value1 = Value( int( 100 * gauss () ) ) / 100.0 ; always() << " Inserting key " << toString(key) << " 1st: " << " " << toString ( m_map1.insert ( std::make_pair ( key , value1 ) ).second ) << " " << toString ( m_map2.insert ( std::make_pair ( key , value1 ) ).second ) << " " << toString ( m_map3.insert ( std::make_pair ( key , value1 ) ).second ) << " " << toString ( m_map4.insert ( std::make_pair ( key , value1 ) ).second ) << endmsg ; always() << "1 Map1: " << toString ( m_map1 ) << endmsg ; always() << "1 Map2: " << toString ( m_map2 ) << endmsg ; always() << "1 Map3: " << toString ( m_map3 ) << endmsg ; always() << "1 Map4: " << toString ( m_map4 ) << endmsg ; print1 ( (Key) 1 ) ; always() << "2 Map1: " << toString ( m_map1 ) << endmsg ; always() << "2 Map2: " << toString ( m_map2 ) << endmsg ; always() << "2 Map3: " << toString ( m_map3 ) << endmsg ; always() << "2 Map4: " << toString ( m_map4 ) << endmsg ; print2 ( (Key) 7 ) ; always() << "3 Map1: " << toString ( m_map1 ) << endmsg ; always() << "3 Map2: " << toString ( m_map2 ) << endmsg ; always() << "3 Map3: " << toString ( m_map3 ) << endmsg ; always() << "3 Map4: " << toString ( m_map4 ) << endmsg ; const Value value2 = gauss () ; always() << " Inserting key " << toString(key) << " 2nd: " << " " << toString ( m_map1.insert ( std::make_pair ( key , value2 ) ).second ) << " " << toString ( m_map2.insert ( std::make_pair ( key , value2 ) ).second ) << " " << toString ( m_map3.insert ( std::make_pair ( key , value2 ) ).second ) << " " << toString ( m_map4.insert ( std::make_pair ( key , value2 ) ).second ) << endmsg ; always() << "4 Map1: " << toString ( m_map1 ) << endmsg ; always() << "4 Map2: " << toString ( m_map2 ) << endmsg ; always() << "4 Map3: " << toString ( m_map3 ) << endmsg ; always() << "4 Map4: " << toString ( m_map4 ) << endmsg ; if ( 0 == ::labs(key)%2 ) { always() << " Erased : " << " " << toString ( 0 != m_map1.erase ( key ) ) << " " << toString ( 0 != m_map2.erase ( key ) ) << " " << toString ( 0 != m_map3.erase ( key ) ) << " " << toString ( 0 != m_map4.erase ( key ) ) << endmsg ; } always() << "5 Map1: " << toString ( m_map1 ) << endmsg ; always() << "5 Map2: " << toString ( m_map2 ) << endmsg ; always() << "5 Map3: " << toString ( m_map3 ) << endmsg ; always() << "5 Map4: " << toString ( m_map4 ) << endmsg ; always() << " Count key 0 : " << " " << m_map1.count ( 0 ) << " " << m_map2.count ( 0 ) << " " << m_map3.count ( 0 ) << " " << m_map4.count ( 0 ) << endmsg ; always() << " Count key 1 : " << " " << m_map1.count ( 1 ) << " " << m_map2.count ( 1 ) << " " << m_map3.count ( 1 ) << " " << m_map4.count ( 1 ) << endmsg ; always() << " Count key 7 : " << " " << m_map1.count ( 7 ) << " " << m_map2.count ( 7 ) << " " << m_map3.count ( 7 ) << " " << m_map4.count ( 7 ) << endmsg ; always() << " Count key -100 : " << " " << m_map1.count ( -100 ) << " " << m_map2.count ( -100 ) << " " << m_map3.count ( -100 ) << " " << m_map4.count ( -100 ) << endmsg ; return StatusCode::SUCCESS; }