|
|
|||
File indexing completed on 2026-08-06 09:24:07
0001 // -*- C++ -*- 0002 // 0003 // Hw64Selector.h is a part of Herwig - A multi-purpose Monte Carlo event generator 0004 // Copyright (C) 2002-2019 The Herwig Collaboration 0005 // 0006 // Herwig 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 HERWIG_Hw64Selector_H 0010 #define HERWIG_Hw64Selector_H 0011 // 0012 // This is the declaration of the Hw64Selector class. 0013 // 0014 0015 #include "HadronSelector.h" 0016 0017 namespace Herwig { 0018 0019 using namespace ThePEG; 0020 0021 /** \ingroup hadronization 0022 * The Hw64Selector class selects the hadrons produced in cluster decay using 0023 * the FORTRAN HERWIG variant of the cluster model. 0024 * 0025 * @see \ref Hw64SelectorInterfaces "The interfaces" 0026 * defined for Hw64Selector. 0027 */ 0028 class Hw64Selector: public HadronSelector { 0029 0030 public: 0031 0032 /** 0033 * The default constructor. 0034 */ 0035 Hw64Selector() : HadronSelector(0), 0036 _pwtDquark( 1.0 ),_pwtUquark( 1.0 ),_pwtSquark( 1.0 ),_pwtCquark( 0.0 ), 0037 _pwtBquark( 0.0 ),_pwtDIquarkS0( 1.0 ),_pwtDIquarkS1( 1.0 ), 0038 _sngWt( 1.0 ), _decWt( 1.0 ) 0039 {} 0040 0041 /** 0042 * Method to return a pair of hadrons given the PDG codes of 0043 * two or three constituents 0044 * @param cluMass The mass of the cluster 0045 * @param par1 The particle pointer of the first constituent 0046 * @param par2 The particle pointer of the second constituent 0047 * @param par3 The particle pointer of the third constituent 0048 */ 0049 virtual pair<tcPDPtr,tcPDPtr> chooseHadronPair(const Energy cluMass, 0050 tcPDPtr par1, tcPDPtr par2) const; 0051 0052 public: 0053 0054 /** @name Functions used by the persistent I/O system. */ 0055 //@{ 0056 /** 0057 * Function used to write out object persistently. 0058 * @param os the persistent output stream written to. 0059 */ 0060 void persistentOutput(PersistentOStream & os) const; 0061 0062 /** 0063 * Function used to read in object persistently. 0064 * @param is the persistent input stream read from. 0065 * @param version the version number of the object when written. 0066 */ 0067 void persistentInput(PersistentIStream & is, int version); 0068 //@} 0069 0070 /** 0071 * The standard Init function used to initialize the interfaces. 0072 * Called exactly once for each class by the class description system 0073 * before the main function starts or 0074 * when this class is dynamically loaded. 0075 */ 0076 static void Init(); 0077 0078 protected : 0079 0080 /** 0081 * Weights for baryons 0082 */ 0083 virtual double baryonWeight(long id) const; 0084 0085 protected: 0086 0087 /** @name Clone Methods. */ 0088 //@{ 0089 /** 0090 * Make a simple clone of this object. 0091 * @return a pointer to the new object. 0092 */ 0093 virtual IBPtr clone() const; 0094 0095 /** Make a clone of this object, possibly modifying the cloned object 0096 * to make it sane. 0097 * @return a pointer to the new object. 0098 */ 0099 virtual IBPtr fullclone() const; 0100 //@} 0101 0102 protected: 0103 0104 /** @name Standard Interfaced functions. */ 0105 //@{ 0106 /** 0107 * Initialize this object after the setup phase before saving an 0108 * EventGenerator to disk. 0109 * @throws InitException if object could not be initialized properly. 0110 */ 0111 virtual void doinit(); 0112 //@} 0113 0114 private: 0115 0116 /** 0117 * The assignment operator is private and must never be called. 0118 * In fact, it should not even be implemented. 0119 */ 0120 Hw64Selector & operator=(const Hw64Selector &) = delete; 0121 0122 private: 0123 0124 /** 0125 * The weights for the different quarks and diquarks 0126 */ 0127 //@{ 0128 /** 0129 * The probability of producting a down quark. 0130 */ 0131 double _pwtDquark; 0132 0133 /** 0134 * The probability of producting an up quark. 0135 */ 0136 double _pwtUquark; 0137 0138 /** 0139 * The probability of producting a strange quark. 0140 */ 0141 double _pwtSquark; 0142 0143 /** 0144 * The probability of producting a charm quark. 0145 */ 0146 double _pwtCquark; 0147 0148 /** 0149 * The probability of producting a bottom quark. 0150 */ 0151 double _pwtBquark; 0152 0153 /** 0154 * The probability of producting a spin-0 diquark. 0155 */ 0156 double _pwtDIquarkS0; 0157 0158 /** 0159 * The probability of producting a spin-1 diquark. 0160 */ 0161 double _pwtDIquarkS1; 0162 //@} 0163 0164 /** 0165 * Singlet and Decuplet weights 0166 */ 0167 //@{ 0168 /** 0169 * The singlet weight 0170 */ 0171 double _sngWt; 0172 0173 /** 0174 * The decuplet weight 0175 */ 0176 double _decWt; 0177 //@} 0178 0179 }; 0180 0181 } 0182 0183 #endif /* HERWIG_Hw64Selector_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|