|
|
|||
File indexing completed on 2026-08-06 09:24:21
0001 // -*- C++ -*- 0002 #ifndef Herwig_HeavyMesonWidthGenerator_H 0003 #define Herwig_HeavyMesonWidthGenerator_H 0004 // 0005 // This is the declaration of the HeavyMesonWidthGenerator class. 0006 // 0007 0008 #include "GenericWidthGenerator.h" 0009 #include "Herwig/Decay/HeavyMeson/HQETStrongDecayer.h" 0010 #include "Herwig/Decay/HeavyMeson/HQETRadiativeDecayer.h" 0011 0012 namespace Herwig { 0013 0014 using namespace ThePEG; 0015 0016 /** 0017 * The HeavyMesonWidthGenerator class calculates the running width 0018 * for heavy mesons. 0019 * 0020 * @see \ref HeavyMesonWidthGeneratorInterfaces "The interfaces" 0021 * defined for HeavyMesonWidthGenerator. 0022 */ 0023 class HeavyMesonWidthGenerator: public GenericWidthGenerator { 0024 0025 public: 0026 0027 /** 0028 * The default constructor. 0029 */ 0030 HeavyMesonWidthGenerator(); 0031 0032 public: 0033 0034 /** @name Functions used by the persistent I/O system. */ 0035 //@{ 0036 /** 0037 * Function used to write out object persistently. 0038 * @param os the persistent output stream written to. 0039 */ 0040 void persistentOutput(PersistentOStream & os) const; 0041 0042 /** 0043 * Function used to read in object persistently. 0044 * @param is the persistent input stream read from. 0045 * @param version the version number of the object when written. 0046 */ 0047 void persistentInput(PersistentIStream & is, int version); 0048 //@} 0049 0050 /** 0051 * The standard Init function used to initialize the interfaces. 0052 * Called exactly once for each class by the class description system 0053 * before the main function starts or 0054 * when this class is dynamically loaded. 0055 */ 0056 static void Init(); 0057 0058 public: 0059 0060 /** 0061 * Output the initialisation info for the database 0062 * @param output The stream to output the information to 0063 * @param header output the header. 0064 **/ 0065 virtual void dataBaseOutput(ofstream & output,bool header=true); 0066 0067 0068 /** 0069 * The \f$1\to2\f$ width for outgoing particles which can be off-shell. 0070 * @param iloc The location of the mode in the list. 0071 * @param m0 The mass of the decaying particle. 0072 * @param m1 The mass of the first outgoing particle. 0073 * @param m2 The mass of the second outgoing particle. 0074 * @return The partial width. 0075 */ 0076 virtual Energy partial2BodyWidth(int iloc,Energy m0,Energy m1,Energy m2) const; 0077 0078 protected: 0079 0080 /** 0081 * Perform the set up for a mode, this is called by the base class 0082 * @param mode The decay mode 0083 * @param decayer The decayer for the mode. 0084 * @param imode The number of the mode. 0085 */ 0086 virtual void setupMode(tcDMPtr mode, tDecayIntegratorPtr decayer, unsigned int imode); 0087 0088 protected: 0089 0090 /** @name Clone Methods. */ 0091 //@{ 0092 /** 0093 * Make a simple clone of this object. 0094 * @return a pointer to the new object. 0095 */ 0096 virtual IBPtr clone() const; 0097 0098 /** Make a clone of this object, possibly modifying the cloned object 0099 * to make it sane. 0100 * @return a pointer to the new object. 0101 */ 0102 virtual IBPtr fullclone() const; 0103 //@} 0104 0105 private: 0106 0107 /** 0108 * The assignment operator is private and must never be called. 0109 * In fact, it should not even be implemented. 0110 */ 0111 HeavyMesonWidthGenerator & operator=(const HeavyMesonWidthGenerator &) = delete; 0112 0113 private: 0114 0115 /** 0116 * Coupings for the decays 0117 */ 0118 //@{ 0119 /** 0120 * Pion decay constant 0121 */ 0122 Energy fPi_; 0123 0124 /** 0125 * Coupling for decays within the \f$(0^-,1^-)\f$ multiplet 0126 */ 0127 double g_; 0128 0129 /** 0130 * Coupling for decays within the \f$(0^+,1^+)\f$ multiplet 0131 */ 0132 double gp_; 0133 0134 /** 0135 * Coupling for decays from the \f$(0^+ ,1^+)\f$ multiplet 0136 */ 0137 double h_; 0138 0139 /** 0140 * Coupling for decays from the \f$(1^+ ,2^+)\f$ multiplet 0141 */ 0142 double hp_; 0143 0144 /** 0145 * Coupling for decays from the \f$(2^- ,3^-)\f$ multiplet 0146 */ 0147 double k_; 0148 0149 /** 0150 * Coupling for decays from the \f$(1^- ,2^-)\f$ multiplet 0151 */ 0152 double kp_; 0153 0154 /** 0155 * Coupling for decays from the 2S \f$(0^-,1^-)\f$ multiplet 0156 */ 0157 double gtilde_; 0158 0159 /** 0160 * D_1 mixing angle (up and down) 0161 */ 0162 double psiL_; 0163 0164 /** 0165 * D_1 mixing angle (strange) 0166 */ 0167 double psiS_; 0168 //@} 0169 0170 /** 0171 * A momentum scale characterising the convergence of the 0172 * derivative expansion. We expect Lambda_ ~ 1 GeV. 0173 */ 0174 Energy Lambda_; 0175 //@} 0176 0177 /** 0178 * Check if couplings set 0179 */ 0180 bool couplingsSet_; 0181 }; 0182 0183 } 0184 0185 #endif /* Herwig_HeavyMesonWidthGenerator_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|