Warning, /include/ThePEG/Repository/EventGenerator.tcc is written in an unsupported language. File is not indexed.
0001 // -*- C++ -*-
0002 //
0003 // EventGenerator.tcc is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 //
0010 // This is the implementation of the non-inlined templated member
0011 // functions of the EventGenerator class.
0012 //
0013
0014 namespace ThePEG {
0015
0016 template <typename T>
0017 typename Ptr<T>::pointer EventGenerator::getPtr(const T & t) const {
0018 typedef typename Ptr<T>::pointer ptr;
0019 ObjectSet::const_iterator it = objects().find(ptr_cast_const<IBPtr>(&t));
0020 return it == objects().end()? ptr(): dynamic_ptr_cast<ptr>(*it);
0021 }
0022
0023 template <typename T>
0024 typename Ptr<T>::pointer EventGenerator::getDefault() const {
0025 typedef typename Ptr<T>::pointer ptr;
0026 ptr ret;
0027 for ( vector<IPtr>::const_iterator it = defaultObjects().begin();
0028 it != defaultObjects().end(); ++it ) {
0029 ret = dynamic_ptr_cast<ptr>(*it);
0030 if ( ret ) return ret;
0031 }
0032 if ( strategy() ) {
0033 for ( vector<IPtr>::const_iterator it =
0034 strategy()->defaultObjects().begin();
0035 it != strategy()->defaultObjects().end(); ++it ) {
0036 ret = dynamic_ptr_cast<ptr>(*it);
0037 if ( ret ) return ret;
0038 }
0039 }
0040 return ret;
0041 }
0042
0043 }