|
|
|||
File indexing completed on 2026-08-06 09:38:31
0001 // -*- C++ -*- 0002 // 0003 // ThePEGStrategy.h 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 #ifndef ThePEG_ThePEGStrategy_H 0010 #define ThePEG_ThePEGStrategy_H 0011 // This is the declaration of the ThePEGStrategy class. 0012 0013 #include "ThePEG/Repository/Strategy.h" 0014 #include <string> 0015 0016 namespace ThePEG { 0017 0018 /** 0019 * The ThePEGStrategy class is a sub-class of the Strategy class, 0020 * simply implementing the correct citation for ThePEG in the 0021 * ClassDocumentation interface. 0022 * 0023 * @see Strategy 0024 * 0025 */ 0026 class ThePEGStrategy: public Strategy { 0027 0028 public: 0029 0030 /** 0031 * Standard Init function used to initialize the interface. 0032 */ 0033 static void Init(); 0034 0035 /** 0036 * Version string 0037 */ 0038 virtual const std::string versionstring() const; 0039 0040 protected: 0041 0042 /** @name Clone Methods. */ 0043 //@{ 0044 /** 0045 * Make a simple clone of this object. 0046 * @return a pointer to the new object. 0047 */ 0048 virtual IBPtr clone() const; 0049 0050 /** Make a clone of this object, possibly modifying the cloned object 0051 * to make it sane. 0052 * @return a pointer to the new object. 0053 */ 0054 virtual IBPtr fullclone() const; 0055 //@} 0056 0057 private: 0058 0059 /** 0060 * Describe concrete class without persistent data. 0061 */ 0062 static NoPIOClassDescription<ThePEGStrategy> initThePEGStrategy; 0063 0064 /** 0065 * Private and non-existent assignment operator. 0066 */ 0067 ThePEGStrategy & operator=(const ThePEGStrategy &) = delete; 0068 0069 }; 0070 0071 0072 /** @cond TRAITSPECIALIZATIONS */ 0073 0074 /** This template specialization informs ThePEG about the base classes 0075 * of ThePEGStrategy. */ 0076 template <> 0077 struct BaseClassTrait<ThePEGStrategy,1>: public ClassTraitsType { 0078 /** Typedef of the first base class of ThePEGStrategy. */ 0079 typedef Strategy NthBase; 0080 }; 0081 0082 /** This template specialization informs ThePEG about the name of the 0083 * ThePEGStrategy class and the shared object where it is 0084 * defined. */ 0085 template <> 0086 struct ClassTraits<ThePEGStrategy>: public ClassTraitsBase<ThePEGStrategy> { 0087 /** Return a platform-independent class name */ 0088 static string className() { return "ThePEG::ThePEGStrategy"; } 0089 /** Return the name of the shared library be loaded to get access to 0090 * the ThePEGStrategy class and every other class it uses 0091 * (except the base class). */ 0092 static string library() { return "ThePEGStrategy.so"; } 0093 }; 0094 0095 /** @endcond */ 0096 0097 } 0098 0099 #endif /* ThePEG_ThePEGStrategy_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|