00001 #include "AtlfastEvent/AODNavigationImp.h" 00002 #include "Navigation/INavigationToken.h" 00003 #include "Navigation/NavigationToken.h" 00004 #include "AtlfastEvent/SimpleAssocsDispatcher.h" 00005 #include "AtlfastEvent/TypeVisitor.h" 00006 00007 #include <iostream> 00008 #include <iomanip> 00009 #include <algorithm> 00010 00011 namespace Atlfast{ 00012 00014 void AODNavigationImp::fillNavTokenFromAssocs(INavigationToken& token) const{ 00015 NavigationToken<I4Momentum>* i4Token = 00016 dynamic_cast< NavigationToken<I4Momentum>* >(&token); 00017 if ( i4Token == 0 ) return; 00018 00019 TypeVisitor typeVisitor = SimpleAssocsDispatcher(this, TypeVisitor()); 00020 00021 std::vector<const I4Momentum*> i4s = typeVisitor.i4momenta(); 00022 std::vector<const I4Momentum*>::const_iterator iter = i4s.begin(); 00023 for(;iter!= i4s.end(); ++iter){i4Token->setObject(*iter);} 00024 } 00025 }//namespace 00026 00027 00028 00029 00030 00031 00032 00033