|
|
|||
File indexing completed on 2026-08-06 09:24:00
0001 // -*- C++ -*- 0002 // 0003 // ISGW2FormFactor.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_ISGW2FormFactor_H 0010 #define HERWIG_ISGW2FormFactor_H 0011 // 0012 // This is the declaration of the ISGW2FormFactor class. 0013 // 0014 #include "ScalarFormFactor.h" 0015 #include "ThePEG/StandardModel/StandardModelBase.h" 0016 #include "ThePEG/PDT/EnumParticles.h" 0017 #include "ThePEG/PDT/ParticleData.h" 0018 #include "ThePEG/Repository/EventGenerator.h" 0019 0020 namespace Herwig { 0021 using namespace ThePEG; 0022 0023 /** \ingroup Decay 0024 * 0025 * The ISGW2FormFactor class is the implementation of 0026 * the ISGW2 model of Phys. Rev. D52, 2783 (1995) for the scalar meson form 0027 * factors. 0028 * 0029 * It inherits from the ScalarFormFactor class and implements 0030 * the calculation of the relevant form factors. 0031 * 0032 * @see ScalarFormFactor 0033 * @see ISGWFormFactor 0034 */ 0035 0036 class ISGW2FormFactor: public ScalarFormFactor { 0037 0038 public: 0039 0040 /** 0041 * Default constructor 0042 */ 0043 ISGW2FormFactor(); 0044 0045 /** @name Form-Factors */ 0046 //@{ 0047 /** 0048 * The form factor for the weak decay of a scalar to a scalar. 0049 * @param q2 The scale \f$q^2\f$. 0050 * @param iloc The location in the form-factor list. 0051 * @param id0 The PDG code of the incoming meson. 0052 * @param id1 The PDG code of the outgoing meson. 0053 * @param m0 The mass of the incoming meson. 0054 * @param m1 The mass of the outgoing meson. 0055 * @param f0 The form-factor \f$f_0\f$. 0056 * @param fp The form-factor \f$f_+\f$. 0057 */ 0058 virtual void ScalarScalarFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1, 0059 Energy m0,Energy m1,Complex & f0, 0060 Complex & fp) const; 0061 0062 /** 0063 * The form factor for the weak decay of a scalar to a vector. 0064 * @param q2 The scale \f$q^2\f$. 0065 * @param iloc The location in the form-factor list. 0066 * @param id0 The PDG code of the incoming meson. 0067 * @param id1 The PDG code of the outgoing meson. 0068 * @param m0 The mass of the incoming meson. 0069 * @param m1 The mass of the outgoing meson. 0070 * @param V The form-factor \f$V\f$ 0071 * @param A0 The form-factor \f$A_0\f$ 0072 * @param A1 The form-factor \f$A_1\f$ 0073 * @param A2 The form-factor \f$A_2\f$ 0074 */ 0075 virtual void ScalarVectorFormFactor(Energy2 q2, unsigned int iloc, int id0, int id1, 0076 Energy m0, Energy m1, Complex & V, 0077 Complex & A0,Complex & A1,Complex & A2) const; 0078 0079 /** 0080 * The form factor for the weak decay of a scalar to a tensor. 0081 * @param q2 The scale \f$q^2\f$. 0082 * @param iloc The location in the form-factor list. 0083 * @param id0 The PDG code of the incoming meson. 0084 * @param id1 The PDG code of the outgoing meson. 0085 * @param m0 The mass of the incoming meson. 0086 * @param m1 The mass of the outgoing meson. 0087 * @param h The form-factor \f$h\f$. 0088 * @param k The form-factor \f$k\f$. 0089 * @param bp The form-factor \f$b_+\f$. 0090 * @param bm The form-factor \f$b_-\f$. 0091 */ 0092 virtual void ScalarTensorFormFactor(Energy2 q2,unsigned int iloc,int id0,int id1, 0093 Energy m0,Energy m1, complex<InvEnergy2> & h, 0094 Complex & k, complex<InvEnergy2> & bp, 0095 complex<InvEnergy2> & bm) const; 0096 //@} 0097 0098 /** 0099 * Output the setup information for the particle database 0100 * @param os The stream to output the information to 0101 * @param header Whether or not to output the information for MySQL 0102 * @param create Whether or not to add a statement creating the object 0103 */ 0104 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const; 0105 0106 public: 0107 0108 /** @name Functions used by the persistent I/O system. */ 0109 //@{ 0110 /** 0111 * Function used to write out object persistently. 0112 * @param os the persistent output stream written to. 0113 */ 0114 void persistentOutput(PersistentOStream & os) const; 0115 0116 /** 0117 * Function used to read in object persistently. 0118 * @param is the persistent input stream read from. 0119 * @param version the version number of the object when written. 0120 */ 0121 void persistentInput(PersistentIStream & is, int version); 0122 //@} 0123 0124 /** 0125 * Standard Init function used to initialize the interfaces. 0126 */ 0127 static void Init(); 0128 0129 protected: 0130 0131 /** The member which implements all the different form-factors 0132 * @param q2 The scale \f$q^2\f$. 0133 * @param iloc The location in the form-factor list. 0134 * @param id0 The PDG code of the incoming meson. 0135 * @param id1 The PDG code of the outgoing meson. 0136 * @param m0 The mass of the incoming meson. 0137 * @param m1 The mass of the outgoing meson. 0138 * @param f1 The first form-factor. 0139 * @param f2 The second form-factor. 0140 * @param f3 The third form-factor. 0141 * @param f4 The fourth form-factor. 0142 */ 0143 void formFactor(Energy2 q2,unsigned int iloc,int id0,int id1,Energy m0, 0144 Energy m1,Complex & f1,Complex & f2, 0145 Complex & f3,Complex & f4) const; 0146 // general member to calculate all the form-factors 0147 0148 protected: 0149 0150 /** @name Clone Methods. */ 0151 //@{ 0152 /** 0153 * Make a simple clone of this object. 0154 * @return a pointer to the new object. 0155 */ 0156 virtual IBPtr clone() const {return new_ptr(*this);} 0157 0158 /** Make a clone of this object, possibly modifying the cloned object 0159 * to make it sane. 0160 * @return a pointer to the new object. 0161 */ 0162 virtual IBPtr fullclone() const {return new_ptr(*this);} 0163 //@} 0164 0165 protected: 0166 0167 /** @name Standard Interfaced functions. */ 0168 //@{ 0169 /** 0170 * Initialize this object after the setup phase before saving and 0171 * EventGenerator to disk. 0172 * @throws InitException if object could not be initialized properly. 0173 */ 0174 virtual void doinit(); 0175 //@} 0176 0177 private: 0178 0179 /** 0180 * Private and non-existent assignment operator. 0181 */ 0182 ISGW2FormFactor & operator=(const ISGW2FormFactor &) = delete; 0183 0184 protected: 0185 0186 /** 0187 * The saturated \f$\alpha_S\f$ used to calculate the form-factors. 0188 * @param mass Mass scale to work out the number of flavours. 0189 * @param q2 \f$q^2\f$ the scale. 0190 * @return the value of \f$\alpha_S\f$. 0191 */ 0192 double alphaS(Energy mass, Energy2 q2) const { 0193 Energy2 lqcd2(0.04*GeV2); 0194 double nflav(4.); 0195 double output(_alphamuQM); 0196 if (q2>0.36*GeV2) { 0197 if(mass<_mcharm+0.03*GeV) nflav=3.0; 0198 output = 12.*Constants::pi/(33.-2.*nflav)/log(q2/lqcd2); 0199 } 0200 return output; 0201 } 0202 0203 private: 0204 0205 /** @name Quark masses */ 0206 //@{ 0207 /** 0208 * The down quark mass 0209 */ 0210 Energy _mdown; 0211 0212 /** 0213 * The up quark mass 0214 */ 0215 Energy _mup; 0216 0217 /** 0218 * The strange quark mass 0219 */ 0220 Energy _mstrange; 0221 0222 /** 0223 * The charm quark mass 0224 */ 0225 Energy _mcharm; 0226 0227 /** 0228 * The bottom quark mass 0229 */ 0230 Energy _mbottom; 0231 0232 /** 0233 * The masses of the quarks as a vector 0234 */ 0235 vector<Energy> _mquark; 0236 //@} 0237 0238 /** @name Wave function parameters for the \f$1^1S_0\f$ level.*/ 0239 //@{ 0240 0241 /** 0242 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$u\bar{d}\f$ 0243 */ 0244 Energy _beta1S0ud; 0245 0246 /** 0247 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$u\bar{s}\f$ 0248 */ 0249 Energy _beta1S0us; 0250 0251 /** 0252 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$s\bar{s}\f$ 0253 */ 0254 Energy _beta1S0ss; 0255 0256 /** 0257 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$c\bar{u}\f$ 0258 */ 0259 Energy _beta1S0cu; 0260 0261 /** 0262 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$c\bar{s}\f$ 0263 */ 0264 Energy _beta1S0cs; 0265 0266 /** 0267 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$u\bar{b}\f$ 0268 */ 0269 Energy _beta1S0ub; 0270 0271 /** 0272 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$s\bar{b}\f$ 0273 */ 0274 Energy _beta1S0sb; 0275 0276 /** 0277 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$c\bar{c}\f$ 0278 */ 0279 Energy _beta1S0cc; 0280 0281 /** 0282 * The wavefunction \f$1^1S_0\f$ \f$\beta\f$ variational parameter for \f$b\bar{c}\f$ 0283 */ 0284 Energy _beta1S0bc; 0285 0286 /** 0287 * The wavefunction parameters as an array 0288 */ 0289 vector<vector<Energy> > _beta1S0; 0290 0291 /** 0292 * The masses as a array 0293 */ 0294 vector<vector<Energy> > _mass1S0; 0295 //@} 0296 0297 /** @name Wave function parameters for the \f$1^3S_1\f$ level.*/ 0298 //@{ 0299 /** 0300 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$u\bar{d}\f$ 0301 */ 0302 Energy _beta3S1ud; 0303 0304 /** 0305 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$u\bar{s}\f$ 0306 */ 0307 Energy _beta3S1us; 0308 0309 /** 0310 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$s\bar{s}\f$ 0311 */ 0312 Energy _beta3S1ss; 0313 0314 /** 0315 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$c\bar{u}\f$ 0316 */ 0317 Energy _beta3S1cu; 0318 0319 /** 0320 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$c\bar{s}\f$ 0321 */ 0322 Energy _beta3S1cs; 0323 0324 /** 0325 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$u\bar{b}\f$ 0326 */ 0327 Energy _beta3S1ub; 0328 0329 /** 0330 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$s\bar{b}\f$ 0331 */ 0332 Energy _beta3S1sb; 0333 0334 /** 0335 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$c\bar{c}\f$ 0336 */ 0337 Energy _beta3S1cc; 0338 0339 /** 0340 * The wavefunction \f$1^3S_1\f$ \f$\beta\f$ variational parameter for \f$b\bar{c}\f$ 0341 */ 0342 Energy _beta3S1bc; 0343 0344 /** 0345 * The wavefunction paramaeters as an array. 0346 */ 0347 vector<vector<Energy> > _beta3S1; 0348 //@} 0349 0350 0351 /** @name Wave function parameters for the \f$1P\f$ levels.*/ 0352 //@{ 0353 0354 /** 0355 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$u\bar{d}\f$ 0356 */ 0357 Energy _beta1Pud; 0358 0359 /** 0360 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$u\bar{s}\f$ 0361 */ 0362 Energy _beta1Pus; 0363 0364 /** 0365 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$s\bar{s}\f$ 0366 */ 0367 Energy _beta1Pss; 0368 0369 /** 0370 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$c\bar{u}\f$ 0371 */ 0372 Energy _beta1Pcu; 0373 0374 /** 0375 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$c\bar{s}\f$ 0376 */ 0377 Energy _beta1Pcs; 0378 0379 /** 0380 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$u\bar{b}\f$ 0381 */ 0382 Energy _beta1Pub; 0383 0384 /** 0385 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$s\bar{b}\f$ 0386 */ 0387 Energy _beta1Psb; 0388 0389 /** 0390 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$c\bar{c}\f$ 0391 */ 0392 Energy _beta1Pcc; 0393 0394 /** 0395 * The wavefunction \f$1P\f$ \f$\beta\f$ variational parameter for \f$b\bar{c}\f$ 0396 */ 0397 Energy _beta1Pbc; 0398 0399 /** 0400 * The wavefunction paramaeters as an array. 0401 */ 0402 vector<vector<Energy> > _beta1P; 0403 0404 /** 0405 * The spin-1/2 masses 0406 */ 0407 // the 1/2 spin masses 0408 vector<vector<Energy> > _massPoh; 0409 0410 /** 0411 * The spin-3/2 masses 0412 */ 0413 vector<vector<Energy> > _massPth; 0414 //@} 0415 0416 /**@name Parameters for the strong coupling*/ 0417 //@{ 0418 /** 0419 * The cut-off value of \f$\alpha_S\f$. 0420 */ 0421 double _alphamuQM; 0422 /** 0423 * The values of \f$\alpha_S\f$ at the quark masses. 0424 */ 0425 vector<double> _alphaQ; 0426 //@} 0427 0428 /**@name Relativistic correction factors */ 0429 //@{ 0430 /** 0431 * The correction factor for \f$D\to\rho\f$. 0432 */ 0433 double _CfDrho; 0434 0435 /** 0436 * The correction factor for \f$D\to K^*\f$. 0437 */ 0438 double _CfDKstar; 0439 0440 /** 0441 * The correction factor for \f$D_s\to K^*\f$. 0442 */ 0443 double _CfDsKstar; 0444 0445 /** 0446 * The correction factor for \f$D_s\to\phi\f$. 0447 */ 0448 double _CfDsphi; 0449 0450 /** 0451 * The correction factor for \f$B\to\rho\f$. 0452 */ 0453 double _CfBrho; 0454 0455 /** 0456 * The correction factor for \f$B\to D^*\f$. 0457 */ 0458 double _CfBDstar; 0459 0460 /** 0461 * The correction factor for \f$B_s\to K^*\f$. 0462 */ 0463 double _CfBsKstar; 0464 0465 /** 0466 * The correction factor for \f$B_s\to D^*\f$. 0467 */ 0468 double _CfBsDstar; 0469 0470 /** 0471 * The correction factor for \f$B_c\to D^*\f$. 0472 */ 0473 double _CfBcDstar; 0474 0475 /** 0476 * The correction factor for \f$B_c\to\psi\f$. 0477 */ 0478 double _CfBcpsi; 0479 0480 /** 0481 * The correction factor for \f$B_c\to B_s^*\f$. 0482 */ 0483 double _CfBcBsstar; 0484 0485 /** 0486 * The correction factor for \f$B_c\to B^*\f$. 0487 */ 0488 double _CfBcBstar; 0489 //@} 0490 0491 /** 0492 * The \f$\eta-\eta'\f$ mixing angle 0493 */ 0494 double _thetaeta; 0495 0496 /** 0497 * Include the \f$a_L(\omega)\f$ piece of the \f$C_{ji}\f$ factor 0498 */ 0499 bool _includeaW; 0500 }; 0501 0502 } 0503 0504 #endif /* HERWIG_ISGW2FormFactor_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|