|
|
|||
File indexing completed on 2026-08-06 09:24:00
0001 // -*- C++ -*- 0002 // 0003 // KiselevBcFormFactor.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_KiselevBcFormFactor_H 0010 #define HERWIG_KiselevBcFormFactor_H 0011 // 0012 // This is the declaration of the KiselevBcFormFactor class. 0013 // 0014 0015 #include "ScalarFormFactor.h" 0016 0017 namespace Herwig { 0018 using namespace ThePEG; 0019 0020 /** \ingroup Decay 0021 * 0022 * The KiselevBcFormFactor class implements the form factors from hep-ph/0211021 0023 * for the decays of \f$B_c\f$ mesons. 0024 * 0025 * @see ScalarFormFactor 0026 */ 0027 class KiselevBcFormFactor: public ScalarFormFactor { 0028 0029 public: 0030 0031 /** 0032 * The default constructor. 0033 */ 0034 KiselevBcFormFactor(); 0035 0036 public: 0037 0038 /** @name Functions used by the persistent I/O system. */ 0039 //@{ 0040 /** 0041 * Function used to write out object persistently. 0042 * @param os the persistent output stream written to. 0043 */ 0044 void persistentOutput(PersistentOStream & os) const; 0045 0046 /** 0047 * Function used to read in object persistently. 0048 * @param is the persistent input stream read from. 0049 * @param version the version number of the object when written. 0050 */ 0051 void persistentInput(PersistentIStream & is, int version); 0052 //@} 0053 0054 /** 0055 * The standard Init function used to initialize the interfaces. 0056 * Called exactly once for each class by the class description system 0057 * before the main function starts or 0058 * when this class is dynamically loaded. 0059 */ 0060 static void Init(); 0061 0062 public: 0063 0064 /** @name Form Factors */ 0065 //@{ 0066 /** 0067 * The form factor for the weak decay of a scalar to a scalar. 0068 * This method is virtual and must be implementented in classes 0069 * inheriting from this which include scalar to scalar form factors. 0070 * @param q2 The scale \f$q^2\f$. 0071 * @param iloc The location in the form factor list. 0072 * @param id0 The PDG code of the incoming meson. 0073 * @param id1 The PDG code of the outgoing meson. 0074 * @param m0 The mass of the incoming meson. 0075 * @param m1 The mass of the outgoing meson. 0076 * @param f0 The form factor \f$f_0\f$. 0077 * @param fp The form factor \f$f_+\f$. 0078 */ 0079 virtual void ScalarScalarFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1, 0080 Energy m0,Energy m1,Complex & f0, 0081 Complex & fp) const; 0082 0083 /** 0084 * The form factor for the weak decay of a scalar to a vector. This method is virtual 0085 * and must be implemented in classes inheriting from this which include scalar to 0086 * vector form factors. 0087 * @param q2 The scale \f$q^2\f$. 0088 * @param iloc The location in the form factor list. 0089 * @param id0 The PDG code of the incoming meson. 0090 * @param id1 The PDG code of the outgoing meson. 0091 * @param m0 The mass of the incoming meson. 0092 * @param m1 The mass of the outgoing meson. 0093 * @param A0 The form factor \f$A_0\f$ 0094 * @param A1 The form factor \f$A_1\f$ 0095 * @param A2 The form factor \f$A_2\f$ 0096 * @param V The form factor \f$V\f$ 0097 */ 0098 virtual void ScalarVectorFormFactor(Energy2 q2, unsigned int iloc, int id0, int id1, 0099 Energy m0, Energy m1,Complex & A0, 0100 Complex & A1,Complex & A2, Complex & V) const; 0101 //@} 0102 0103 /** 0104 * Output the setup information for the particle database 0105 * @param os The stream to output the information to 0106 * @param header Whether or not to output the information for MySQL 0107 * @param create Whether or not to add a statement creating the object 0108 */ 0109 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const; 0110 0111 protected: 0112 0113 /** @name Clone Methods. */ 0114 //@{ 0115 /** 0116 * Make a simple clone of this object. 0117 * @return a pointer to the new object. 0118 */ 0119 virtual IBPtr clone() const {return new_ptr(*this);} 0120 0121 /** Make a clone of this object, possibly modifying the cloned object 0122 * to make it sane. 0123 * @return a pointer to the new object. 0124 */ 0125 virtual IBPtr fullclone() const {return new_ptr(*this);} 0126 //@} 0127 0128 protected: 0129 0130 /** @name Standard Interfaced functions. */ 0131 //@{ 0132 /** 0133 * Initialize this object after the setup phase before saving and 0134 * EventGenerator to disk. 0135 * @throws InitException if object could not be initialized properly. 0136 */ 0137 virtual void doinit(); 0138 //@} 0139 0140 private: 0141 0142 /** 0143 * The assignment operator is private and must never be called. 0144 * In fact, it should not even be implemented. 0145 */ 0146 KiselevBcFormFactor & operator=(const KiselevBcFormFactor &) = delete; 0147 0148 private: 0149 0150 /** 0151 * The value of the \f$f_+\f$ form factor evaluated at \f$q^2=0\f$. 0152 */ 0153 vector<double> _fp; 0154 0155 /** 0156 * The value of the \f$f_-\f$ form factor evaluated at \f$q^2=0\f$. 0157 */ 0158 vector<double> _fm; 0159 0160 /** 0161 * The value of the \f$F_V\f$ form factor evaluated at \f$q^2=0\f$. 0162 */ 0163 vector<InvEnergy> _FV; 0164 0165 /** 0166 * The value of the \f$F_0^A\f$ form factor evaluated at \f$q^2=0\f$. 0167 */ 0168 vector<Energy> _F0A; 0169 0170 /** 0171 * The value of the \f$F_+^A\f$ form factor evaluated at \f$q^2=0\f$. 0172 */ 0173 vector<InvEnergy> _FpA; 0174 0175 /** 0176 * The value of the \f$F_-^A\f$ form factor evaluated at \f$q^2=0\f$. 0177 */ 0178 vector<InvEnergy> _FmA; 0179 0180 /** 0181 * The pole mass for the \f$f_+\f$ form factor 0182 */ 0183 vector<Energy> _Mfp; 0184 0185 /** 0186 * The pole mass for the \f$f_-\f$ form factor 0187 */ 0188 vector<Energy> _Mfm; 0189 0190 /** 0191 * The pole mass for the \f$F_V\f$ form factor 0192 */ 0193 vector<Energy> _MFV; 0194 0195 /** 0196 * The pole mass for the \f$F_0^A\f$ form factor 0197 */ 0198 vector<Energy> _MF0A; 0199 0200 /** 0201 * The pole mass for the \f$F_+^A\f$ form factor 0202 */ 0203 vector<Energy> _MFpA; 0204 0205 /** 0206 * The pole mass for the \f$F_-^A\f$ form factor 0207 */ 0208 vector<Energy> _MFmA; 0209 0210 }; 0211 0212 } 0213 0214 #endif /* HERWIG_KiselevBcFormFactor_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|