|
|
|||
File indexing completed on 2026-08-06 09:38:22
0001 // -*- C++ -*- 0002 // 0003 // PtGenerator.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_PtGenerator_H 0010 #define ThePEG_PtGenerator_H 0011 // This is the declaration of the PtGenerator class. 0012 0013 #include "ThePEG/Config/ThePEG.h" 0014 #include "ThePEG/Handlers/HandlerBase.h" 0015 0016 namespace ThePEG { 0017 0018 /** 0019 * PtGenerator is the base for all classes implementing alternative 0020 * models for transverse momentum generation. It inherits from the 0021 * HandlerBase which among other things provides forward access to the 0022 * random number object held by the EventGenerator object. 0023 * 0024 * @see \ref PtGeneratorInterfaces "The interfaces" 0025 * defined for PtGenerator. 0026 * @see HandlerBase 0027 * @see EventGenerator 0028 */ 0029 class PtGenerator: public HandlerBase { 0030 0031 public: 0032 0033 /** @name Virtual functions to be implemented by sub-classes. */ 0034 //@{ 0035 /** 0036 * Generate (\f$k_x, k_y\f$) components of the transverse 0037 * momentum. 0038 */ 0039 virtual TransverseMomentum generate() const =0; 0040 //@} 0041 0042 public: 0043 0044 /** 0045 * Standard Init function used to initialize the interface. 0046 */ 0047 static void Init(); 0048 0049 private: 0050 0051 /** 0052 * Describe an abstract class without persistent data. 0053 */ 0054 static AbstractClassDescription<PtGenerator> initPtGenerator; 0055 0056 /** 0057 * Private and non-existent assignment operator. 0058 */ 0059 PtGenerator & operator=(const PtGenerator &) = delete; 0060 0061 }; 0062 0063 0064 /** @cond TRAITSPECIALIZATIONS */ 0065 0066 /** 0067 * This template specialization informs ThePEG about the 0068 * base class of PtGenerator. 0069 */ 0070 template <> 0071 struct BaseClassTrait<PtGenerator,1>: public ClassTraitsType { 0072 /** Typedef of the base class of PtGenerator. */ 0073 typedef HandlerBase NthBase; 0074 }; 0075 0076 /** 0077 * This template specialization informs ThePEG about the name of the 0078 * PtGenerator class. 0079 */ 0080 template <> 0081 struct ClassTraits<PtGenerator>: public ClassTraitsBase<PtGenerator> { 0082 /** Return the class name. */ 0083 static string className() { return "ThePEG::PtGenerator"; } 0084 }; 0085 0086 0087 /** @endcond */ 0088 0089 } 0090 0091 #endif /* ThePEG_PtGenerator_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|