|
|
|||
File indexing completed on 2026-08-06 09:24:00
0001 // -*- C++ -*- 0002 // 0003 // ISGWFormFactor.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_ISGWFormFactor_H 0010 #define HERWIG_ISGWFormFactor_H 0011 // 0012 // This is the declaration of the <ISGWFormFactor class. 0013 // 0014 #include "ScalarFormFactor.h" 0015 #include "ThePEG/StandardModel/StandardModelBase.h" 0016 #include "ThePEG/PDT/ParticleData.h" 0017 #include "ThePEG/PDT/EnumParticles.h" 0018 #include "ThePEG/PDT/EnumParticles.h" 0019 #include "ThePEG/Repository/EventGenerator.h" 0020 0021 namespace Herwig { 0022 using namespace ThePEG; 0023 0024 /** \ingroup Decay 0025 * 0026 * The ISGWFormFactor class is the implementation of the ISGW model of 0027 * Phys. Rev. D39, 799 (1989) for the form-factors. It inherits from the 0028 * ScalarFormFactor class and members 0029 * for the calculation of the relevant form factors. 0030 * 0031 * @see ScalarFormFactor 0032 * @see ISGW2FormFactor 0033 */ 0034 0035 class ISGWFormFactor: public ScalarFormFactor { 0036 0037 public: 0038 0039 /** 0040 * Default constructor 0041 */ 0042 ISGWFormFactor(); 0043 0044 /** @name Form-Factors */ 0045 //@{ 0046 /** 0047 * The form factor for the weak decay of a scalar to a scalar. 0048 * @param q2 The scale \f$q^2\f$. 0049 * @param iloc The location in the form-factor list. 0050 * @param id0 The PDG code of the incoming meson. 0051 * @param id1 The PDG code of the outgoing meson. 0052 * @param m0 The mass of the incoming meson. 0053 * @param m1 The mass of the outgoing meson. 0054 * @param f0 The form-factor \f$f_0\f$. 0055 * @param fp The form-factor \f$f_+\f$. 0056 */ 0057 virtual void ScalarScalarFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1,Energy m0, 0058 Energy m1,Complex & f0,Complex & fp) const; 0059 0060 /** 0061 * The form factor for the weak decay of a scalar to a vector. 0062 * @param q2 The scale \f$q^2\f$. 0063 * @param iloc The location in the form-factor list. 0064 * @param id0 The PDG code of the incoming meson. 0065 * @param id1 The PDG code of the outgoing meson. 0066 * @param m0 The mass of the incoming meson. 0067 * @param m1 The mass of the outgoing meson. 0068 * @param V The form-factor \f$V\f$ 0069 * @param A0 The form-factor \f$A_0\f$ 0070 * @param A1 The form-factor \f$A_1\f$ 0071 * @param A2 The form-factor \f$A_2\f$ 0072 */ 0073 virtual void ScalarVectorFormFactor(Energy2 q2, unsigned int iloc, int id0, int id1, 0074 Energy m0, Energy m1, Complex & V, 0075 Complex & A0,Complex & A1,Complex & A2) const; 0076 0077 /** 0078 * The form factor for the weak decay of a scalar to a tensor. 0079 * @param q2 The scale \f$q^2\f$. 0080 * @param iloc The location in the form-factor list. 0081 * @param id0 The PDG code of the incoming meson. 0082 * @param id1 The PDG code of the outgoing meson. 0083 * @param m0 The mass of the incoming meson. 0084 * @param m1 The mass of the outgoing meson. 0085 * @param h The form-factor \f$h\f$. 0086 * @param k The form-factor \f$k\f$. 0087 * @param bp The form-factor \f$b_+\f$. 0088 * @param bm The form-factor \f$b_-\f$. 0089 */ 0090 virtual void ScalarTensorFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1, 0091 Energy m0, 0092 Energy m1, complex<InvEnergy2> & h, 0093 Complex & k, complex<InvEnergy2> & bp, 0094 complex<InvEnergy2> & bm) const; 0095 //@} 0096 0097 /** 0098 * Output the setup information for the particle database 0099 * @param os The stream to output the information to 0100 * @param header Whether or not to output the information for MySQL 0101 * @param create Whether or not to add a statement creating the object 0102 */ 0103 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const; 0104 0105 public: 0106 0107 /** @name Functions used by the persistent I/O system. */ 0108 //@{ 0109 /** 0110 * Function used to write out object persistently. 0111 * @param os the persistent output stream written to. 0112 */ 0113 void persistentOutput(PersistentOStream & os) const; 0114 0115 /** 0116 * Function used to read in object persistently. 0117 * @param is the persistent input stream read from. 0118 * @param version the version number of the object when written. 0119 */ 0120 void persistentInput(PersistentIStream & is, int version); 0121 //@} 0122 0123 /** 0124 * Standard Init function used to initialize the interfaces. 0125 */ 0126 static void Init(); 0127 0128 protected: 0129 0130 /** The member which implements all the different form-factors 0131 * @param q2 The scale \f$q^2\f$. 0132 * @param iloc The location in the form-factor list. 0133 * @param id0 The PDG code of the incoming meson. 0134 * @param id1 The PDG code of the outgoing meson. 0135 * @param m0 The mass of the incoming meson. 0136 * @param m1 The mass of the outgoing meson. 0137 * @param f1 The first form-factor. 0138 * @param f2 The second form-factor. 0139 * @param f3 The third form-factor. 0140 * @param f4 The fourth form-factor. 0141 */ 0142 void formFactor(Energy2 q2,unsigned int iloc,int id0,int id1,Energy m0, 0143 Energy m1,Complex & f1,Complex & f2, 0144 Complex & f3,Complex & f4) const; 0145 // general member to calculate all the form-factors 0146 0147 protected: 0148 0149 /** @name Clone Methods. */ 0150 //@{ 0151 /** 0152 * Make a simple clone of this object. 0153 * @return a pointer to the new object. 0154 */ 0155 virtual IBPtr clone() const {return new_ptr(*this);} 0156 0157 /** Make a clone of this object, possibly modifying the cloned object 0158 * to make it sane. 0159 * @return a pointer to the new object. 0160 */ 0161 virtual IBPtr fullclone() const {return new_ptr(*this);} 0162 //@} 0163 0164 protected: 0165 0166 /** @name Standard Interfaced functions. */ 0167 //@{ 0168 /** 0169 * Initialize this object after the setup phase before saving and 0170 * EventGenerator to disk. 0171 * @throws InitException if object could not be initialized properly. 0172 */ 0173 virtual void doinit(); 0174 //@} 0175 0176 private: 0177 0178 /** 0179 * Private and non-existent assignment operator. 0180 */ 0181 ISGWFormFactor & operator=(const ISGWFormFactor &) = delete; 0182 0183 private: 0184 0185 /** 0186 * The relativistic compensation factor 0187 */ 0188 double _kappa; 0189 0190 /** @name Quark masses */ 0191 //@{ 0192 /** 0193 * The down quark mass 0194 */ 0195 Energy _mdown; 0196 0197 /** 0198 * The up quark mass 0199 */ 0200 Energy _mup; 0201 0202 /** 0203 * The strange quark mass 0204 */ 0205 Energy _mstrange; 0206 0207 /** 0208 * The charm quark mass 0209 */ 0210 Energy _mcharm; 0211 0212 /** 0213 * The bottom quark mass 0214 */ 0215 Energy _mbottom; 0216 0217 /** 0218 * The masses of the quarks as a vector 0219 */ 0220 vector<Energy> _mquark; 0221 //@} 0222 0223 0224 /** @name Wave function parameters */ 0225 //@{ 0226 /** 0227 * The wavefunction s-wave \f$\beta\f$ variational parameters for \f$u\bar{d}\f$ 0228 */ 0229 Energy _betaSud; 0230 0231 /** 0232 * The wavefunction s-wave \f$\beta\f$ variational parameters for \f$u\bar{s}\f$ 0233 */ 0234 Energy _betaSus; 0235 0236 /** 0237 * The wavefunction s-wave \f$\beta\f$ variational parameters for \f$u\bar{c}\f$ 0238 */ 0239 Energy _betaSuc; 0240 0241 /** 0242 * The wavefunction s-wave \f$\beta\f$ variational parameters for \f$u\bar{b}\f$ 0243 */ 0244 Energy _betaSub; 0245 0246 /** 0247 * The s-wave variational parameters as a vector. 0248 */ 0249 vector<vector<Energy> > _betaS; 0250 0251 /** 0252 * The wavefunction p-wave \f$\beta\f$ variational parameters for \f$u\bar{d}\f$ 0253 */ 0254 Energy _betaPud; 0255 0256 /** 0257 * The wavefunction s-wave \f$\beta\f$ variational parameters for \f$u\bar{s}\f$ 0258 */ 0259 Energy _betaPus; 0260 0261 /** 0262 * The wavefunction s-wave \f$\beta\f$ variational parameters for \f$u\bar{c}\f$ 0263 */ 0264 Energy _betaPuc; 0265 0266 /** 0267 * The p-wave variational parameters as a vector 0268 */ 0269 vector<vector<Energy> > _betaP; 0270 //@} 0271 0272 /** 0273 * The \f$\eta-\eta'\f$ mixing angle 0274 */ 0275 double _thetaeta; 0276 }; 0277 0278 } 0279 0280 #endif /* HERWIG_ISGWFormFactor_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|