|
|
|||
File indexing completed on 2026-08-06 09:23:58
0001 // -*- C++ -*- 0002 #ifndef HERWIG_Baryon1MesonDecayerBase_H 0003 #define HERWIG_Baryon1MesonDecayerBase_H 0004 // 0005 // This is the declaration of the Baryon1MesonDecayerBase class. 0006 // 0007 #include "Herwig/Decay/DecayIntegrator.h" 0008 #include "Herwig/PDT/BaryonWidthGenerator.fh" 0009 #include "Herwig/Decay/PhaseSpaceMode.h" 0010 #include "ThePEG/Helicity/LorentzSpinor.h" 0011 #include "ThePEG/Helicity/LorentzSpinorBar.h" 0012 #include "ThePEG/Helicity/LorentzRSSpinor.h" 0013 #include "ThePEG/Helicity/LorentzRSSpinorBar.h" 0014 #include "Baryon1MesonDecayerBase.fh" 0015 0016 namespace Herwig { 0017 using namespace ThePEG; 0018 0019 /** \ingroup Decay 0020 * 0021 * The <code>Baryon1MesonDecayerBase</code> class is the base class for the decay of 0022 * a baryon to another baryon and a pseudoscalar or vector meson. 0023 * All the matrix elements involving either a spin-1/2 or spin-3/2 baryons are 0024 * now implemented apart from \f$\frac32\to\frac32+1\f$. The matrix elements 0025 * are implemented in a general form with general couplings which must be 0026 * supplied in classes inheriting from the one by implementing one of the coupling 0027 * members. 0028 * 0029 * - The matrix element for \f$\frac12\to\frac12+0\f$ 0030 * \f[\mathcal{M} = \bar{u}(p_1)(A+B\gamma_5)u(p_0)\f] 0031 * - The matrix element for \f$\frac12\to\frac12+1\f$ 0032 * \f[\mathcal{M} = \bar{u}(p_1)\epsilon^{*\beta}\left[ 0033 * \gamma_\beta(A_1+B_1\gamma_5) 0034 * +p_{0\beta}(A_2+B_2\gamma_5)\right]u(p_0)\f] 0035 * - The matrix element for \f$\frac12\to\frac32+0\f$ 0036 * \f[\bar{u}^\alpha(p_1) p_{0\alpha}\left[A+B\gamma_5\right]u(p_0)\f] 0037 * - The matrix element for \f$\frac12\to\frac32+1\f$ 0038 * \f[\bar{u}^\alpha(p_1)\epsilon^{*\beta}\left[ 0039 * g_{\alpha\beta}(A_1+B_1\gamma_5) 0040 * +p_{0\alpha}(A_2+B_2\gamma_5) 0041 * +p_{0\alpha}p_{0\beta}(A_3+B_3\gamma_5) 0042 * \right]u(p_0)\f] 0043 * - The matrix element for \f$\frac32\to\frac12+0\f$ 0044 * \f[\bar{u}(p_1) p_{1\alpha}\left[A+B\gamma_5\right]u^\alpha(p_0)\f] 0045 * - The matrix element for \f$\frac32\to\frac12+1\f$ 0046 * \f[\bar{u}(p_1)\epsilon^{*\beta}\left[ 0047 * g_{\alpha\beta}(A_1+B_1\gamma_5) 0048 * +p_{1\alpha}(A_2+B_2\gamma_5) 0049 * +p_{1\alpha}p_{0\beta}(A_3+B_3\gamma_5) 0050 * \right]u^\alpha(p_0)\f] 0051 * - The matrix element for \f$\frac32\to\frac32+0\f$ 0052 * \f[\bar{u}^\alpha(p_1)\left[(A_1+B_1\gamma_5)g_{\alpha\beta} 0053 * +p_{0\alpha}p_{1\beta}(A_2+B_2\gamma_5)\right]u^\beta(p_0)\f] 0054 * 0055 * @see DecayIntegrator 0056 */ 0057 class Baryon1MesonDecayerBase: public DecayIntegrator { 0058 0059 /** 0060 * The BaryonWidthGenerator is a friend to get access to the couplings 0061 */ 0062 friend class BaryonWidthGenerator; 0063 0064 public: 0065 0066 0067 /** 0068 * Return the matrix element squared for a given mode and phase-space channel. 0069 * @param ichan The channel we are calculating the matrix element for. 0070 * @param part The decaying Particle. 0071 * @param outgoing The particles produced in the decay 0072 * @param momenta The momenta of the particles produced in the decay 0073 * @param meopt Option for the calculation of the matrix element 0074 * @return The matrix element squared for the phase-space configuration. 0075 */ 0076 double me2(const int ichan,const Particle & part, 0077 const tPDVector & outgoing, 0078 const vector<Lorentz5Momentum> & momenta, 0079 MEOption meopt) const; 0080 0081 /** 0082 * Construct the SpinInfos for the particles produced in the decay 0083 */ 0084 virtual void constructSpinInfo(const Particle & part, 0085 ParticleVector outgoing) const; 0086 0087 /** 0088 * Specify the \f$1\to2\f$ matrix element to be used in the running width calculation. 0089 * @param dm The DecayMode 0090 * @param mecode The code for the matrix element as described 0091 * in the GenericWidthGenerator class. 0092 * @param coupling The coupling for the matrix element. 0093 * @return True or False if this mode can be handled. 0094 */ 0095 virtual bool twoBodyMEcode(const DecayMode & dm, int & mecode, 0096 double & coupling) const; 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 */ 0103 virtual void dataBaseOutput(ofstream & os,bool header) const; 0104 0105 protected: 0106 0107 /** 0108 * Coupling Members. 0109 */ 0110 //@{ 0111 /** 0112 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a scalar. 0113 * This method must be implemented in any class inheriting from this one 0114 * which includes \f$\frac12\to\frac12+0\f$ decays. 0115 * @param imode The mode 0116 * @param m0 The mass of the decaying particle. 0117 * @param m1 The mass of the outgoing baryon. 0118 * @param m2 The mass of the outgoing meson. 0119 * @param A The coupling \f$A\f$ described above. 0120 * @param B The coupling \f$B\f$ described above. 0121 */ 0122 virtual void halfHalfScalarCoupling(int imode, Energy m0, Energy m1, Energy m2, 0123 Complex& A,Complex& B) const; 0124 0125 /** 0126 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector. 0127 * This method must be implemented in any class inheriting from this one 0128 * which includes \f$\frac12\to\frac12+1\f$ decays. 0129 * @param imode The mode 0130 * @param m0 The mass of the decaying particle. 0131 * @param m1 The mass of the outgoing baryon. 0132 * @param m2 The mass of the outgoing meson. 0133 * @param A1 The coupling \f$A_1\f$ described above. 0134 * @param A2 The coupling \f$A_2\f$ described above. 0135 * @param B1 The coupling \f$B_1\f$ described above. 0136 * @param B2 The coupling \f$B_2\f$ described above. 0137 */ 0138 virtual void halfHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, 0139 Complex& A1,Complex& A2, 0140 Complex& B1,Complex& B2) const; 0141 0142 /** 0143 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar. 0144 * This method must be implemented in any class inheriting from this one 0145 * which includes \f$\frac12\to\frac32+0\f$ or \f$\frac32\to\frac12+0\f$ decays. 0146 * @param imode The mode 0147 * @param m0 The mass of the decaying particle. 0148 * @param m1 The mass of the outgoing baryon. 0149 * @param m2 The mass of the outgoing meson. 0150 * @param A The coupling \f$A\f$ described above. 0151 * @param B The coupling \f$B\f$ described above. 0152 */ 0153 virtual void halfThreeHalfScalarCoupling(int imode, Energy m0, Energy m1, Energy m2, 0154 Complex& A,Complex& B) const; 0155 0156 /** 0157 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector. 0158 * This method must be implemented in any class inheriting from this one 0159 * which includes \f$\frac12\to\frac32+1\f$ or \f$\frac32\to\frac12+1\f$ decays. 0160 * @param imode The mode 0161 * @param m0 The mass of the decaying particle. 0162 * @param m1 The mass of the outgoing baryon. 0163 * @param m2 The mass of the outgoing meson. 0164 * @param A1 The coupling \f$A_1\f$ described above. 0165 * @param A2 The coupling \f$A_2\f$ described above. 0166 * @param A3 The coupling \f$A_3\f$ described above. 0167 * @param B1 The coupling \f$B_1\f$ described above. 0168 * @param B2 The coupling \f$B_2\f$ described above. 0169 * @param B3 The coupling \f$B_3\f$ described above. 0170 */ 0171 virtual void halfThreeHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, 0172 Complex& A1,Complex& A2,Complex& A3, 0173 Complex& B1,Complex& B2,Complex& B3) const; 0174 0175 0176 /** 0177 * Couplings for spin-\f$\frac32\f$ to spin-\f$\frac12\f$ and a scalar. 0178 * This method must be implemented in any class inheriting from this one 0179 * which includes \f$\frac12\to\frac32+0\f$ or \f$\frac32\to\frac12+0\f$ decays. 0180 * @param imode The mode 0181 * @param m0 The mass of the decaying particle. 0182 * @param m1 The mass of the outgoing baryon. 0183 * @param m2 The mass of the outgoing meson. 0184 * @param A The coupling \f$A\f$ described above. 0185 * @param B The coupling \f$B\f$ described above. 0186 */ 0187 virtual void threeHalfHalfScalarCoupling(int imode, Energy m0, Energy m1, Energy m2, 0188 Complex& A,Complex& B) const; 0189 0190 /** 0191 * Couplings for spin-\f$\frac32\f$ to spin-\f$\frac12\f$ and a vector. 0192 * This method must be implemented in any class inheriting from this one 0193 * which includes \f$\frac12\to\frac32+1\f$ or \f$\frac32\to\frac12+1\f$ decays. 0194 * @param imode The mode 0195 * @param m0 The mass of the decaying particle. 0196 * @param m1 The mass of the outgoing baryon. 0197 * @param m2 The mass of the outgoing meson. 0198 * @param A1 The coupling \f$A_1\f$ described above. 0199 * @param A2 The coupling \f$A_2\f$ described above. 0200 * @param A3 The coupling \f$A_3\f$ described above. 0201 * @param B1 The coupling \f$B_1\f$ described above. 0202 * @param B2 The coupling \f$B_2\f$ described above. 0203 * @param B3 The coupling \f$B_3\f$ described above. 0204 */ 0205 virtual void threeHalfHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, 0206 Complex& A1,Complex& A2,Complex& A3, 0207 Complex& B1,Complex& B2,Complex& B3) const; 0208 0209 /** 0210 * Couplings for spin-\f$\frac32\f$ to spin-\f$\frac32\f$ and a scalar. 0211 * This method must be implemented in any class inheriting from this one 0212 * which includes \f$\frac32\to\frac32+0\f$ decays. 0213 * @param imode The mode 0214 * @param m0 The mass of the decaying particle. 0215 * @param m1 The mass of the outgoing baryon. 0216 * @param m2 The mass of the outgoing meson. 0217 * @param A1 The coupling \f$A_1\f$ described above. 0218 * @param A2 The coupling \f$A_2\f$ described above. 0219 * @param B1 The coupling \f$B_1\f$ described above. 0220 * @param B2 The coupling \f$B_2\f$ described above. 0221 */ 0222 virtual void threeHalfThreeHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0223 Complex& A1,Complex& A2, 0224 Complex& B1,Complex& B2) const; 0225 //@} 0226 0227 public: 0228 0229 /** 0230 * Standard Init function used to initialize the interfaces. 0231 */ 0232 static void Init(); 0233 0234 private: 0235 0236 /** 0237 * Matrix Element Calculation Members 0238 */ 0239 //@{ 0240 /** 0241 * Matrix element for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a scalar. 0242 * @param ichan The channel we are calculating the matrix element for. 0243 * @param part The decaying Particle. 0244 * @param outgoing The particles produced in the decay 0245 * @param momenta The momenta of the particles produced in the decay 0246 * @param meopt Option for the calculation of the matrix element 0247 * @return The matrix element squared. 0248 */ 0249 double halfHalfScalar(const int ichan,const Particle & part, 0250 const tPDVector & outgoing, 0251 const vector<Lorentz5Momentum> & momenta, 0252 MEOption meopt) const; 0253 0254 /** 0255 * Matrix element for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector. 0256 * @param ichan The channel we are calculating the matrix element for. 0257 * @param part The decaying Particle. 0258 * @param outgoing The particles produced in the decay 0259 * @param momenta The momenta of the particles produced in the decay 0260 * @param meopt Option for the calculation of the matrix element 0261 * @return The matrix element squared. 0262 */ 0263 double halfHalfVector(const int ichan,const Particle & part, 0264 const tPDVector & outgoing, 0265 const vector<Lorentz5Momentum> & momenta, 0266 MEOption meopt) const; 0267 0268 /** 0269 * Matrix element for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar. 0270 * @param ichan The channel we are calculating the matrix element for. 0271 * @param part The decaying Particle. 0272 * @param outgoing The particles produced in the decay 0273 * @param momenta The momenta of the particles produced in the decay 0274 * @param meopt Option for the calculation of the matrix element 0275 * @return The matrix element squared. 0276 */ 0277 double halfThreeHalfScalar(const int ichan,const Particle & part, 0278 const tPDVector & outgoing, 0279 const vector<Lorentz5Momentum> & momenta, 0280 MEOption meopt) const; 0281 0282 /** 0283 * Matrix element for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector. 0284 * @param ichan The channel we are calculating the matrix element for. 0285 * @param part The decaying Particle. 0286 * @param outgoing The particles produced in the decay 0287 * @param momenta The momenta of the particles produced in the decay 0288 * @param meopt Option for the calculation of the matrix element 0289 * @return The matrix element squared. 0290 */ 0291 double halfThreeHalfVector(const int ichan,const Particle & part, 0292 const tPDVector & outgoing, 0293 const vector<Lorentz5Momentum> & momenta, 0294 MEOption meopt) const; 0295 0296 /** 0297 * Matrix element for spin-\f$\frac32\f$ to spin-\f$\frac12\f$ and a scalar. 0298 * @param ichan The channel we are calculating the matrix element for. 0299 * @param part The decaying Particle. 0300 * @param outgoing The particles produced in the decay 0301 * @param momenta The momenta of the particles produced in the decay 0302 * @param meopt Option for the calculation of the matrix element 0303 * @return The matrix element squared. 0304 */ 0305 double threeHalfHalfScalar(const int ichan,const Particle & part, 0306 const tPDVector & outgoing, 0307 const vector<Lorentz5Momentum> & momenta, 0308 MEOption meopt) const; 0309 0310 /** 0311 * Matrix element for spin-\f$\frac32\f$ to spin-\f$\frac12\f$ and a vector. 0312 * @param ichan The channel we are calculating the matrix element for. 0313 * @param part The decaying Particle. 0314 * @param outgoing The particles produced in the decay 0315 * @param momenta The momenta of the particles produced in the decay 0316 * @param meopt Option for the calculation of the matrix element 0317 * @return The matrix element squared. 0318 */ 0319 double threeHalfHalfVector(const int ichan,const Particle & part, 0320 const tPDVector & outgoing, 0321 const vector<Lorentz5Momentum> & momenta, 0322 MEOption meopt) const; 0323 0324 /** 0325 * Matrix element for spin-\f$\frac32\f$ to spin-\f$\frac32\f$ and a scalar. 0326 * @param ichan The channel we are calculating the matrix element for. 0327 * @param part The decaying Particle. 0328 * @param outgoing The particles produced in the decay 0329 * @param momenta The momenta of the particles produced in the decay 0330 * @param meopt Option for the calculation of the matrix element 0331 * @return The matrix element squared. 0332 */ 0333 double threeHalfThreeHalfScalar(const int ichan,const Particle & part, 0334 const tPDVector & outgoing, 0335 const vector<Lorentz5Momentum> & momenta, 0336 MEOption meopt) const; 0337 //@} 0338 0339 private: 0340 0341 /** 0342 * Private and non-existent assignment operator. 0343 */ 0344 Baryon1MesonDecayerBase & operator=(const Baryon1MesonDecayerBase &) = delete; 0345 0346 private: 0347 0348 /** 0349 * Spin density matrx 0350 */ 0351 mutable RhoDMatrix _rho; 0352 0353 /** 0354 * Spin-\f$\frac12\f$ spinor 0355 */ 0356 mutable vector<Helicity::LorentzSpinor<SqrtEnergy> > _inHalf; 0357 0358 /** 0359 * Spin-\f$\frac12\f$ barred spinor 0360 */ 0361 mutable vector<Helicity::LorentzSpinorBar<SqrtEnergy> > _inHalfBar; 0362 0363 /** 0364 * Spin-\f$\frac32\f$ spinor 0365 */ 0366 mutable vector<Helicity::LorentzRSSpinor<SqrtEnergy> > _inThreeHalf; 0367 0368 /** 0369 * Spin-\f$\frac32\f$ barred spinor 0370 */ 0371 mutable vector<Helicity::LorentzRSSpinorBar<SqrtEnergy> > _inThreeHalfBar; 0372 0373 /** 0374 * Polarization vector 0375 */ 0376 mutable vector<Helicity::LorentzPolarizationVector> _inVec; 0377 }; 0378 0379 } 0380 0381 0382 #endif /* HERWIG_Baryon1MesonDecayerBase_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|