Back to home page

EIC code displayed by LXR

 
 

    


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 }