|
|
|||
File indexing completed on 2026-08-06 09:24:27
0001 // -*- C++ -*- 0002 #ifndef HERWIG_UEBase_H 0003 #define HERWIG_UEBase_H 0004 // 0005 // This is the declaration of the UEBase class. 0006 // 0007 0008 #include "ThePEG/Interface/Interfaced.h" 0009 #include "ThePEG/Handlers/StandardXComb.fh" 0010 #include "UEBase.fh" 0011 0012 namespace Herwig { 0013 0014 using namespace ThePEG; 0015 0016 /** 0017 * Abstract base class used to minimize the dependence between 0018 * MPIHandler and all Shower classes. 0019 * 0020 * \author Manuel B\"ahr 0021 * 0022 * @see \ref UEBaseInterfaces "The interfaces" 0023 * defined for UEBase. 0024 */ 0025 class UEBase: public Interfaced { 0026 0027 public: 0028 0029 /** 0030 * The standard Init function used to initialize the interfaces. 0031 * Called exactly once for each class by the class description system 0032 * before the main function starts or 0033 * when this class is dynamically loaded. 0034 */ 0035 static void Init(); 0036 0037 /** @name Virtual functions used for the generation of additional 0038 interactions . */ 0039 //@{ 0040 /** 0041 * Some initialization code eventually. 0042 */ 0043 virtual void initialize() {} 0044 0045 /** 0046 * Return true or false depending on the generator setup. 0047 */ 0048 virtual bool beamOK() const = 0; 0049 0050 /** 0051 * Return true or false depending on whether soft interactions are enabled. 0052 */ 0053 virtual bool softInt() const {return false;} 0054 0055 /** 0056 * Return the value of the pt cutoff. 0057 */ 0058 virtual Energy Ptmin() const = 0; 0059 0060 /** 0061 * Return the slope of the soft pt spectrum. Only necessary when the 0062 * soft part is modelled. 0063 */ 0064 virtual InvEnergy2 beta() const {return ZERO;} 0065 0066 /** 0067 * Some finalize code eventually. 0068 */ 0069 virtual void finalize() {} 0070 0071 /** 0072 * Clean up method called after each event. 0073 */ 0074 virtual void clean() {} 0075 0076 /** 0077 * Return the number of different hard processes. Use 0 as default to 0078 * not require implementation. 0079 */ 0080 virtual unsigned int additionalHardProcs() const {return 0;} 0081 0082 /** 0083 * return the hard multiplicity of process i. Can't be constant in my 0084 * case because drawing from the probability distribution also 0085 * specifies the soft multiplicity that has to be stored.... 0086 */ 0087 virtual unsigned int multiplicity(unsigned int i=0) = 0; 0088 0089 /** 0090 * Generate a additional interaction for ProcessHandler sel. Method 0091 * can't be const because it saves the state of the underlying XComb 0092 * object on it's way. 0093 */ 0094 virtual tStdXCombPtr generate(unsigned int sel=0) = 0; 0095 0096 /** 0097 * Return the type of algorithm. 0098 */ 0099 virtual int Algorithm() const = 0; 0100 0101 /** 0102 * Return the value of the hard Process pt cutoff for vetoing. 0103 */ 0104 virtual Energy PtForVeto() const = 0; 0105 0106 /** 0107 * Return the fraction of colour disrupted subprocesses. Use default 0 0108 * so that it is not required to implement. 0109 */ 0110 virtual double colourDisrupt() const {return 0.0;} 0111 0112 /** 0113 * Return the soft multiplicity. Use 0 as default to not require 0114 * implementation. 0115 */ 0116 virtual unsigned int softMultiplicity() const {return 0;} 0117 //@} 0118 0119 /** 0120 * Return the inelastic cross section ( sigmaND + sigmaDiff ) 0121 */ 0122 virtual CrossSection inelasticXSec() const =0; 0123 0124 /** 0125 * Return the diffractiv cross section (sigmaDiff) assumed by the model. 0126 */ 0127 virtual CrossSection diffractiveXSec() const =0; 0128 0129 /** 0130 * Return the non-diffractiv cross section (sigmaND) assumed by the model. 0131 */ 0132 virtual CrossSection nonDiffractiveXSec() const =0; 0133 0134 private: 0135 0136 /** 0137 * The assignment operator is private and must never be called. 0138 * In fact, it should not even be implemented. 0139 */ 0140 UEBase & operator=(const UEBase &) = delete; 0141 0142 }; 0143 0144 } 0145 0146 #endif /* HERWIG_UEBase_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|