|
|
|||
File indexing completed on 2026-08-06 09:24:05
0001 // -*- C++ -*- 0002 // 0003 // ThreePionCLEOCurrent.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 THEPEG_ThreePionCLEOCurrent_H 0010 #define THEPEG_ThreePionCLEOCurrent_H 0011 // 0012 // This is the declaration of the ThreePionCLEOCurrent class. 0013 // 0014 #include "WeakCurrent.h" 0015 #include "Herwig/Utilities/Interpolator.h" 0016 #include "Herwig/Utilities/Kinematics.h" 0017 #include "ThePEG/StandardModel/StandardModelBase.h" 0018 0019 namespace Herwig { 0020 using namespace ThePEG; 0021 0022 /** \ingroup Decay 0023 * 0024 * The <code>ThreePionCLEOCurrent</code> class implements 0025 * the decay of the weak current to three pions 0026 * using the currents from CLEO Phys. Rev. D 61,012002. This is 0027 * a model including two \f$\rho\f$ mesons in both \f$s\f$ and \f$p\f$ wave, 0028 * a \f$\sigma\f$, the \f$f_2\f$ and \f$f_0(1370)\f$. 0029 * 0030 * The form factors for the \f$a_1^+ \to \pi^0 \pi^0 \pi^+\f$ mode are 0031 * 0032 * \f[F_1=\sum_k\left\{g^P_{\rho_k}B_{\rho_k}^P(s_1) 0033 * -\frac{g^D_{\rho_k}}3B_{\rho_k}^P(s_2) 0034 * \left((s_3-m_{\pi^+}^2)-(s_1-m_{\pi^0}^2)\right)\right\} 0035 * +\frac23\left(g_\sigma B^S_\sigma(s_3)+g_{f_0}B^S_{f_0}(s_3)\right) 0036 * +\frac{g_{f_2}}{18s_3}(q^2-m_{\pi^+}^2+s_3)(4m_{\pi^0}^2-s_3)B^D_{f_2}(s_3) 0037 *\f] 0038 * 0039 * \f[F_2=\sum_k\left\{-\frac13g^P_{\rho_k}B_{\rho_k}^P(s_2) 0040 * -g^D_{\rho_k}B_{\rho_k}^P(s_1) 0041 * \left((s_3-m_{\pi^+}^2)-(s_2-m_{\pi^0}^2)\right)\right\} 0042 * +\frac23\left(g_\sigma B^S_\sigma(s_3)+g_{f_0}B^S_{f_0}(s_3)\right) 0043 * +\frac1{18s_3}g_{f_2}(q^2-m_{\pi^+}^2+s_3)(4m_{\pi^0}^2-s_3)B^D_{f_2}(s_3) 0044 *\f] 0045 * 0046 * \f[F_3=\sum_k g^D_{\rho_k}\left\{ 0047 * -\frac13B_{\rho_k}^P(s_1)\left((s_3-m_{\pi^+}^2)-(s_2-m_{\pi^0}^2)\right) 0048 * +\frac13B_{\rho_k}^P(s_2)\left((s_3-m_{\pi^+}^2)-(s_1-m_{\pi^0}^2)\right)\right\} 0049 * -\frac{g_{f_2}}2(s_1-s_2)B^D_{f_2}(s_3)\f] 0050 * The form factors for \f$a_1^+\to \pi^+ \pi^+ \pi^-\f$ mode 0051 * 0052 * \f[F_1=\sum_k\left\{-g^P_{\rho_k}B_{\rho_k}^P(s_1) 0053 * -\frac{g^D_{\rho_k}}3B_{\rho_k}^P(s_2)(s_1-s_3)\right\} 0054 * -\frac23\left(g_\sigma B^S_\sigma(s_2)+g_{f_0} B^S_{f_0}(s_2)\right) 0055 * +g_{f_2}\left(\frac12(s_3-s_2)B^D_{f_2}(s_1) 0056 * -\frac1{18s_2}(4m_{\pi^+}^2-s_2)(q^2+s_2-m_{\pi^+}^2)B^D_{f_2}(s_2)\right)\f] 0057 * 0058 * \f[F_2=\sum_k\left\{-g^P_{\rho_k}B_{\rho_k}^P(s_2) 0059 * -\frac{g^D_{\rho_k}}3B_{\rho_k}^P(s_1)(s_2-s_3)\right\} 0060 * -\frac23\left(g_\sigma B^S_\sigma(s_1)+g_{f_0} B^S_{f_0}(s_1)\right) 0061 * +g_{f_2}\left(\frac12(s_3-s_1)B^D_{f_2}(s_2) 0062 * -\frac1{18s_1}(4m_{\pi^+}^2-s_1)(q^2+s_1-m_{\pi^+}^2)B^D_{f_2}(s_1)\right)\f] 0063 * 0064 * \f[F_3=\sum_k 0065 * -g^D_{\rho_k}\left( \frac13(s_2-s_3)B_{\rho_k}^P(s_1) 0066 * -\frac13(s_1-s_3)B_{\rho_k}^P(s_2)\right) 0067 * -\frac23\left(g_\sigma B^S_\sigma(s_1)+g_{f_0}B^S_{f_0}(s_1)\right) 0068 * +\frac23\left(g_\sigma B^S_\sigma(s_2)+g_{f_0}B^S_{f_0}(s_2)\right)\f] 0069 *\f[ 0070 * +g_{f_2}\left(-\frac1{18s_1}(4m_{\pi^+}^2-s_1)(q^2+s_1-m_{\pi^+}^2)B^D_{f_2}(s_1) 0071 * +\frac1{18s_2}(4m_{\pi^+}^2-s_2)(q^2+s_2-m_{\pi^+}^2)B^D_{f_2}(s_2)\right)\f] 0072 * 0073 * where 0074 * 0075 * - \f$g_{f_2}\f$ is the coupling of the \f$f_2\f$ to the \f$a_1\f$ 0076 * - \f$g_{f_0}\f$ is the coupling of the \f$f_0(1370)\f$ to the \f$a_1\f$ 0077 * - \f$g_{\sigma}\f$ is the coupling of the \f$\sigma\f$ to the \f$a_1\f$ 0078 * - \f$g^P_{\rho_k}\f$ is the \f$p\f$-wave coupling of the \f$\rho_k\f$ multiplet 0079 * to the \f$a_1\f$. 0080 * - \f$g^D_{\rho_k}\f$ is the \f$d\f$-wave coupling of the \f$\rho_k\f$ multiplet 0081 * to the \f$a_1\f$. 0082 * - \f$s_3=m^2_{12}\f$ is the invariant mass squared of particles 1 and 2. 0083 * - \f$s_2=m^2_{13}\f$ is the invariant mass squared of particles 1 and 3. 0084 * - \f$s_1=m^2_{23}\f$ is the invariant mass squared of particles 2 and 3. 0085 * 0086 * The Breit-Wigner factors are given by 0087 \f$B^L_Y(s_i) = \frac{m^2_Y}{m^2_Y-s_i+im_Y\Gamma^{Y,L}(s_i)}\f$ 0088 * where 0089 * \f$\Gamma^{Y,L}(s_i) = \Gamma^Y\left(\frac{p(s_i)}{p(M_Y}\right)^{2L+1}\frac{m_Y}{\sqrt{s_i}}\f$ 0090 * \f$m_Y\f$ and \f$\Gamma^Y\f$ are the mass and width of the particle \f$Y\f$ 0091 * respectively. \f$p(s_i)\f$ is the momentum of the outgoing pion in the 0092 * rest frame of the resonance \f$Y\f$. 0093 * 0094 * @see a1ThreePionCLEODecayer 0095 * @see ThreePionCLEOa1MatrixElement 0096 * 0097 */ 0098 class ThreePionCLEOCurrent: public WeakCurrent { 0099 0100 /** 0101 * The matrix element for the running \f$a_1\f$ width is a friend to 0102 * keep some members private. 0103 */ 0104 friend class ThreePionCLEOa1MatrixElement; 0105 0106 public: 0107 0108 /** 0109 * Default constructor 0110 */ 0111 ThreePionCLEOCurrent(); 0112 0113 /** 0114 * Hadronic current. This method is purely virtual and must be implemented in 0115 * all classes inheriting from this one. 0116 * @param resonance If specified only include terms with this particle 0117 * @param flavour Information on the required flavours of the quarks 0118 * @param imode The mode 0119 * @param ichan The phase-space channel the current is needed for. 0120 * @param scale The invariant mass of the particles in the current. 0121 * @param outgoing The particles produced in the decay 0122 * @param momenta The momenta of the particles produced in the decay 0123 * @param meopt Option for the calculation of the matrix element 0124 * @return The current. 0125 */ 0126 virtual vector<LorentzPolarizationVectorE> 0127 current(tcPDPtr resonance, 0128 FlavourInfo flavour, 0129 const int imode, const int ichan,Energy & scale, 0130 const tPDVector & outgoing, 0131 const vector<Lorentz5Momentum> & momenta, 0132 DecayIntegrator::MEOption meopt) const; 0133 0134 /** 0135 * Accept the decay. Checks the mesons against the list. 0136 * @param id The id's of the particles in the current. 0137 * @return Can this current have the external particles specified. 0138 */ 0139 virtual bool accept(vector<int> id); 0140 0141 /** 0142 * Return the decay mode number for a given set of particles in the current. 0143 * Checks the mesons against the list. 0144 * @param id The id's of the particles in the current. 0145 * @return The number of the mode 0146 */ 0147 virtual unsigned int decayMode(vector<int> id); 0148 0149 /** 0150 * The particles produced by the current. This returns the mesons for the mode. 0151 * @param icharge The total charge of the particles in the current. 0152 * @param imode The mode for which the particles are being requested 0153 * @param iq The PDG code for the quark 0154 * @param ia The PDG code for the antiquark 0155 * @return The external particles for the current. 0156 */ 0157 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia); 0158 0159 public: 0160 0161 /** @name Methods for the construction of the phase space integrator. */ 0162 //@{ 0163 /** 0164 * Complete the construction of the decay mode for integration.classes inheriting 0165 * from this one. 0166 * This method is purely virtual and must be implemented in the classes inheriting 0167 * from WeakCurrent. 0168 * @param icharge The total charge of the outgoing particles in the current. 0169 * @param resonance If specified only include terms with this particle 0170 * @param flavour Information on the required flavours of the quarks 0171 * @param imode The mode in the current being asked for. 0172 * @param mode The phase space mode for the integration 0173 * @param iloc The location of the of the first particle from the current in 0174 * the list of outgoing particles. 0175 * @param ires The location of the first intermediate for the current. 0176 * @param phase The prototype phase space channel for the integration. 0177 * @param upp The maximum possible mass the particles in the current are 0178 * allowed to have. 0179 * @return Whether the current was sucessfully constructed. 0180 */ 0181 virtual bool createMode(int icharge, tcPDPtr resonance, 0182 FlavourInfo flavour, 0183 unsigned int imode,PhaseSpaceModePtr mode, 0184 unsigned int iloc,int ires, 0185 PhaseSpaceChannel phase, Energy upp ); 0186 //@} 0187 0188 /** 0189 * Output the setup information for the particle database 0190 * @param os The stream to output the information to 0191 * @param header Whether or not to output the information for MySQL 0192 * @param create Whether or not to add a statement creating the object 0193 */ 0194 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const; 0195 0196 /** 0197 * the matrix element for the a1 decay to calculate the running width 0198 * @param iopt The mode 0199 * @param q2 The mass of the decaying off-shell \f$a_1\f$, \f$q^2\f$. 0200 * @param s3 The invariant mass squared of particles 1 and 2, \f$s_3=m^2_{12}\f$. 0201 * @param s2 The invariant mass squared of particles 1 and 3, \f$s_2=m^2_{13}\f$. 0202 * @param s1 The invariant mass squared of particles 2 and 3, \f$s_1=m^2_{23}\f$. 0203 * @param m1 The mass of the first outgoing particle. 0204 * @param m2 The mass of the second outgoing particle. 0205 * @param m3 The mass of the third outgoing particle. 0206 * @return The matrix element squared summed over spins. 0207 */ 0208 double threeBodyMatrixElement(const int iopt, const Energy2 q2, 0209 const Energy2 s3, const Energy2 s2, 0210 const Energy2 s1, const Energy m1, 0211 const Energy m2, const Energy m3) const; 0212 0213 public: 0214 0215 /** @name Functions used by the persistent I/O system. */ 0216 //@{ 0217 /** 0218 * Function used to write out object persistently. 0219 * @param os the persistent output stream written to. 0220 */ 0221 void persistentOutput(PersistentOStream & os) const; 0222 0223 /** 0224 * Function used to read in object persistently. 0225 * @param is the persistent input stream read from. 0226 * @param version the version number of the object when written. 0227 */ 0228 void persistentInput(PersistentIStream & is, int version); 0229 //@} 0230 0231 /** 0232 * Standard Init function used to initialize the interfaces. 0233 */ 0234 static void Init(); 0235 0236 protected: 0237 0238 /** 0239 * Calculate CLEO form factors for the current. Implements the form factors 0240 * described above. 0241 * @param imode The mode 0242 * @param ichan The phase space channel 0243 * @param q2 The scale \f$q^2\f$ for the current. 0244 * @param s1 The invariant mass squared of particles 2 and 3, \f$s_1=m^2_{23}\f$. 0245 * @param s2 The invariant mass squared of particles 1 and 3, \f$s_2=m^2_{13}\f$. 0246 * @param s3 The invariant mass squared of particles 1 and 2, \f$s_3=m^2_{12}\f$. 0247 * @param F1 The form factor \f$F_1\f$. 0248 * @param F2 The form factor \f$F_2\f$. 0249 * @param F3 The form factor \f$F_3\f$. 0250 */ 0251 void CLEOFormFactor(int imode,int ichan,Energy2 q2,Energy2 s1, Energy2 s2, 0252 Energy2 s3,Complex & F1, Complex & F2, Complex & F3) const; 0253 0254 protected: 0255 0256 /** @name Clone Methods. */ 0257 //@{ 0258 /** 0259 * Make a simple clone of this object. 0260 * @return a pointer to the new object. 0261 */ 0262 virtual IBPtr clone() const {return new_ptr(*this);} 0263 0264 /** Make a clone of this object, possibly modifying the cloned object 0265 * to make it sane. 0266 * @return a pointer to the new object. 0267 */ 0268 virtual IBPtr fullclone() const {return new_ptr(*this);} 0269 //@} 0270 0271 protected: 0272 0273 /** @name Standard Interfaced functions. */ 0274 //@{ 0275 /** 0276 * Initialize this object after the setup phase before saving and 0277 * EventGenerator to disk. 0278 * @throws InitException if object could not be initialized properly. 0279 */ 0280 virtual void doinit(); 0281 0282 /** 0283 * Initialize this object to the begining of the run phase. 0284 */ 0285 virtual void doinitrun(); 0286 0287 /** 0288 * Check sanity of the object during the setup phase. 0289 */ 0290 virtual void doupdate(); 0291 //@} 0292 0293 private: 0294 0295 /** 0296 * Private and non-existent assignment operator. 0297 */ 0298 ThreePionCLEOCurrent & operator=(const ThreePionCLEOCurrent &) = delete; 0299 0300 private: 0301 0302 /** 0303 * The \f$a_1\f$ running width 0304 * @param q2 The scale \f$q^2\f$ for the Breit-Wigner 0305 * @return The \f$a_1\f$ running width. 0306 */ 0307 Energy a1width(Energy2 q2) const; 0308 0309 /** 0310 * Initialize the \f$a_1\f$ running width 0311 * @param iopt Initialization option (-1 full calculation, 0 set up the interpolation) 0312 */ 0313 void inita1Width(int iopt); 0314 0315 /** 0316 * \f$a_1\f$ Breit-Wigner 0317 * @param q2 The scale \f$q^2\f$ for the Breit-Wigner 0318 * @return The Breit-Wigner 0319 */ 0320 Complex a1BreitWigner(Energy2 q2) const { 0321 Complex ii(0.,1.); 0322 Energy2 m2=_a1mass*_a1mass; Energy q=sqrt(q2); 0323 Complex output=m2/(m2-q2-ii*q*a1width(q2)); 0324 return output; 0325 } 0326 0327 private: 0328 0329 /** 0330 * Masses of the \f$\rho\f$ resonances. 0331 */ 0332 vector<Energy> _rhomass; 0333 0334 /** 0335 * Widths of the \f$\rho\f$ resonances. 0336 */ 0337 vector<Energy> _rhowidth; 0338 0339 /** 0340 * Mass of the \f$f_2\f$ resonance 0341 */ 0342 Energy _f2mass; 0343 0344 /** 0345 * Width of the \f$f_2\f$ resonance 0346 */ 0347 Energy _f2width; 0348 0349 /** 0350 * Mass of the \f$f_0(1370)\f$ resonance 0351 */ 0352 Energy _f0mass; 0353 0354 /** 0355 * Width of the \f$f_0(1370)\f$ resonance 0356 */ 0357 Energy _f0width; 0358 0359 /** 0360 * Mass of the \f$\sigma\f$ resonance 0361 */ 0362 Energy _sigmamass; 0363 0364 /** 0365 * Width of the \f$\sigma\f$ resonance 0366 */ 0367 Energy _sigmawidth; 0368 0369 /** 0370 * Mass of the neutral pion. 0371 */ 0372 Energy _mpi0; 0373 0374 /** 0375 * Mass of the charged pion. 0376 */ 0377 Energy _mpic; 0378 0379 /** 0380 * The \f$a_1\f$ mass 0381 */ 0382 Energy _a1mass; 0383 0384 /** 0385 * The \f$a_1\f$ width 0386 */ 0387 Energy _a1width; 0388 0389 /** 0390 * Mass of the \f$K^*\f$ resonace 0391 */ 0392 Energy _mKstar; 0393 0394 /** 0395 * Mass of the \f$K\f$ resonace 0396 */ 0397 Energy _mK; 0398 0399 /** 0400 * Coupling for the \f$KK^*\f$ term in the running width. 0401 */ 0402 double _gammk; 0403 0404 /** 0405 * pion decay constant 0406 */ 0407 Energy _fpi; 0408 0409 /** 0410 * The prefactor 0411 */ 0412 InvEnergy _fact; 0413 0414 /** 0415 * Magnitude of the \f$p\f$-wave couplings of the rho resonance, \f$g^P_{\rho_k}\f$, 0416 * (\f$\beta_{1,2}\f$ in the CLEO paper.) 0417 */ 0418 vector<double> _rhomagP; 0419 0420 /** 0421 * Phase of the \f$p\f$-wave couplings of the rho resonance, \f$g^P_{\rho_k}\f$, 0422 * (\f$\beta_{1,2}\f$ in the CLEO paper.) 0423 */ 0424 vector<double> _rhophaseP; 0425 0426 /** 0427 *\f$p\f$-wave couplings of the rho resonance, \f$g^P_{\rho_k}\f$, 0428 * (\f$\beta_{1,2}\f$ in the CLEO paper.) 0429 */ 0430 vector<Complex> _rhocoupP; 0431 0432 /** 0433 * Magnitude of the \f$d\f$-wave couplings of the rho resonance, \f$g^D_{\rho_k}\f$, 0434 * (\f$\beta_{3,4}\f$ in the CLEO paper.) 0435 */ 0436 vector<InvEnergy2> _rhomagD; 0437 0438 /** 0439 * Phase of the \f$d\f$-wave couplings of the rho resonance, \f$g^D_{\rho_k}\f$, 0440 * (\f$\beta_{3,4}\f$ in the CLEO paper.) 0441 */ 0442 vector<double>_rhophaseD; 0443 0444 /** 0445 * \f$d\f$-wave couplings of the rho resonance, \f$g^D_{\rho_k}\f$, 0446 * (\f$\beta_{3,4}\f$ in the CLEO paper.) 0447 */ 0448 vector<complex<InvEnergy2> > _rhocoupD; 0449 0450 /** 0451 * Magntiude of the coupling of the \f$f_2\f$ resonance, \f$g_{f_2}\f$, 0452 * (\f$\beta_5\f$ in the CLEO paper.) 0453 */ 0454 InvEnergy2 _f2mag; 0455 0456 /** 0457 * Phase of the coupling of the \f$f_2\f$ resonance, \f$g_{f_2}\f$, 0458 * (\f$\beta_5\f$ in the CLEO paper.) 0459 */ 0460 double _f2phase; 0461 0462 /** 0463 * Coupling of the \f$f_2\f$ resonance, \f$g_{f_2}\f$, 0464 * (\f$\beta_5\f$ in the CLEO paper.) 0465 */ 0466 complex<InvEnergy2> _f2coup; 0467 0468 /** 0469 * Magntiude of the coupling of the \f$f_0(1370)\f$ resonance, \f$g_{f_0}\f$, 0470 * (\f$\beta_6\f$ in the CLEO paper.) 0471 */ 0472 double _f0mag; 0473 0474 /** 0475 * Phase of the coupling of the \f$f_0(1370)\f$ resonance, \f$g_{f_0}\f$, 0476 * (\f$\beta_6\f$ in the CLEO paper.) 0477 */ 0478 double _f0phase; 0479 0480 /** 0481 * Coupling of the \f$f_0(1370)\f$ resonance, \f$g_{f_0}\f$, 0482 * (\f$\beta_6\f$ in the CLEO paper.) 0483 */ 0484 Complex _f0coup; 0485 0486 /** 0487 * Magntiude of the coupling of the \f$\sigma\f$ resonance, \f$g_\sigma\f$, 0488 * (\f$\beta_7\f$ in the CLEO paper.) 0489 */ 0490 double _sigmamag; 0491 0492 /** 0493 * Phase of the coupling of the \f$\sigma\f$ resonance, \f$g_\sigma\f$, 0494 * (\f$\beta_7\f$ in the CLEO paper.) 0495 */ 0496 double _sigmaphase; 0497 0498 /** 0499 * Coupling of the \f$\sigma\f$ resonance, \f$g_\sigma\f$, 0500 * (\f$\beta_7\f$ in the CLEO paper.) 0501 */ 0502 Complex _sigmacoup; 0503 0504 /** 0505 * The \f$a_1\f$ width for the running \f$a_1\f$ width calculation. 0506 */ 0507 vector<Energy> _a1runwidth; 0508 0509 /** 0510 * The \f$q^2\f$ for the running \f$a_1\f$ width calculation. 0511 */ 0512 vector<Energy2> _a1runq2; 0513 0514 0515 /** 0516 * The interpolator for the running \f$a_1\f$ width calculation. 0517 */ 0518 Interpolator<Energy,Energy2>::Ptr _a1runinter; 0519 0520 /** 0521 * Initialize the running \f$a_1\f$ width. 0522 */ 0523 bool _initializea1; 0524 0525 /** 0526 * Option for the \f$a_1\f$ width 0527 */ 0528 bool _a1opt; 0529 0530 /** 0531 * The maximum mass of the hadronic system 0532 */ 0533 Energy _maxmass; 0534 0535 /** 0536 * The maximum mass when the running width was calculated 0537 */ 0538 Energy _maxcalc; 0539 0540 }; 0541 0542 } 0543 0544 #endif /* THEPEG_ThreePionCLEOCurrent_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|