|
|
|||
File indexing completed on 2026-08-06 09:23:58
0001 // -*- C++ -*- 0002 #ifndef HERWIG_RadiativeHeavyBaryonDecayer_H 0003 #define HERWIG_RadiativeHeavyBaryonDecayer_H 0004 // 0005 // This is the declaration of the RadiativeHeavyBaryonDecayer class. 0006 // 0007 0008 #include "Baryon1MesonDecayerBase.h" 0009 0010 namespace Herwig { 0011 using namespace Herwig; 0012 0013 /** \ingroup Decay 0014 * 0015 * The RadiativeHeavyBaryonDecayer class is designed for the radiative decay 0016 * of a baryon containing a heavy quark to another baryon containing a heavy quark. 0017 * There are four types of transition supported 0018 * 0019 * - \f$\frac12^-\to\frac12^+\f$ \f$E1\f$ transition 0020 * \f[\mathcal{M} = A_{E1}\bar{B}\gamma^\mu\gamma_5B^*F^{\mu\nu}p_{0\mu}\f] 0021 * 0022 * - \f$\frac12^+\to\frac12^+\f$ \f$M1\f$ transition 0023 * \f[\mathcal{M} = A_{M1}\bar{B}\sigma^{\mu\nu}B^*F^{\mu\nu}\f] 0024 * 0025 * - \f$\frac32^-\to\frac12^+\f$ \f$E1\f$ transition 0026 * \f[\mathcal{M} = A_{E1}\bar{B}B^*_\nu F^{\mu\nu}p_{0\mu}\f] 0027 * 0028 * - \f$\frac32^+\to\frac12^+\f$ \f$M1\f$ transition 0029 * \f[\mathcal{M} = A_{M1}\bar{B}\gamma_\mu\gamma_5B^*_\nu F^{\mu\nu}\f] 0030 * 0031 * where \f$p_0\f$ is the momentum of the decaying baryon \f$B^*\f$ is the field for 0032 * the decaying baryon, \f$B\f$ is the field for the baryon produced in the decay and 0033 * \f$F^{\mu\nu}\f$ is the electromagnetic field strength tensor. 0034 * 0035 */ 0036 class RadiativeHeavyBaryonDecayer: public Baryon1MesonDecayerBase { 0037 0038 public: 0039 0040 /** 0041 * Which of the possible decays is required 0042 * @param cc Is this mode the charge conjugate 0043 * @param parent The decaying particle 0044 * @param children The decay products 0045 */ 0046 virtual int modeNumber(bool & cc, tcPDPtr parent, 0047 const tPDVector & children) const; 0048 0049 /** 0050 * Output the setup information for the particle database 0051 * @param os The stream to output the information to 0052 * @param header Whether or not to output the information for MySQL 0053 */ 0054 virtual void dataBaseOutput(ofstream & os,bool header) const; 0055 0056 public: 0057 0058 /** @name Functions used by the persistent I/O system. */ 0059 //@{ 0060 /** 0061 * Function used to write out object persistently. 0062 * @param os the persistent output stream written to. 0063 */ 0064 void persistentOutput(PersistentOStream & os) const; 0065 0066 /** 0067 * Function used to read in object persistently. 0068 * @param is the persistent input stream read from. 0069 * @param version the version number of the object when written. 0070 */ 0071 void persistentInput(PersistentIStream & is, int version); 0072 //@} 0073 0074 /** 0075 * The standard Init function used to initialize the interfaces. 0076 * Called exactly once for each class by the class description system 0077 * before the main function starts or 0078 * when this class is dynamically loaded. 0079 */ 0080 static void Init(); 0081 0082 protected: 0083 0084 /** 0085 * Coupling Members. 0086 */ 0087 //@{ 0088 /** 0089 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector. 0090 * @param imode The mode 0091 * @param m0 The mass of the decaying particle. 0092 * @param m1 The mass of the outgoing baryon. 0093 * @param m2 The mass of the outgoing meson. 0094 * @param A1 The coupling \f$A_1\f$ described above. 0095 * @param A2 The coupling \f$A_2\f$ described above. 0096 * @param B1 The coupling \f$B_1\f$ described above. 0097 * @param B2 The coupling \f$B_2\f$ described above. 0098 */ 0099 virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2, 0100 Complex& A1,Complex& A2, 0101 Complex& B1,Complex& B2) const; 0102 0103 /** 0104 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector. 0105 * @param imode The mode 0106 * @param m0 The mass of the decaying particle. 0107 * @param m1 The mass of the outgoing baryon. 0108 * @param m2 The mass of the outgoing meson. 0109 * @param A1 The coupling \f$A_1\f$ described above. 0110 * @param A2 The coupling \f$A_2\f$ described above. 0111 * @param A3 The coupling \f$A_3\f$ described above. 0112 * @param B1 The coupling \f$B_1\f$ described above. 0113 * @param B2 The coupling \f$B_2\f$ described above. 0114 * @param B3 The coupling \f$B_3\f$ described above. 0115 */ 0116 virtual void threeHalfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2, 0117 Complex& A1,Complex& A2,Complex& A3, 0118 Complex& B1,Complex& B2,Complex& B3) const; 0119 //@} 0120 0121 protected: 0122 0123 /** @name Clone Methods. */ 0124 //@{ 0125 /** 0126 * Make a simple clone of this object. 0127 * @return a pointer to the new object. 0128 */ 0129 virtual IBPtr clone() const {return new_ptr(*this);} 0130 0131 /** Make a clone of this object, possibly modifying the cloned object 0132 * to make it sane. 0133 * @return a pointer to the new object. 0134 */ 0135 virtual IBPtr fullclone() const {return new_ptr(*this);} 0136 //@} 0137 0138 protected: 0139 0140 /** @name Standard Interfaced functions. */ 0141 //@{ 0142 /** 0143 * Initialize this object after the setup phase before saving and 0144 * EventGenerator to disk. 0145 * @throws InitException if object could not be initialized properly. 0146 */ 0147 virtual void doinit(); 0148 0149 /** 0150 * Initialize this object. Called in the run phase just before 0151 * a run begins. 0152 */ 0153 virtual void doinitrun(); 0154 //@} 0155 0156 private: 0157 0158 /** 0159 * The assignment operator is private and must never be called. 0160 * In fact, it should not even be implemented. 0161 */ 0162 RadiativeHeavyBaryonDecayer & operator=(const RadiativeHeavyBaryonDecayer &) = delete; 0163 0164 public: 0165 0166 /** 0167 * Set the parameters for a decay mode 0168 */ 0169 string setUpDecayMode(string arg); 0170 0171 private: 0172 0173 /** 0174 * The \f$M1\f$ coupling 0175 */ 0176 vector<InvEnergy> M1Coupling_; 0177 0178 /** 0179 * The \f$E1\f$ coupling 0180 */ 0181 vector<InvEnergy2> E1Coupling_; 0182 0183 /** 0184 * PDG code for the incoming baryons 0185 */ 0186 vector<int> incoming_; 0187 0188 /** 0189 * PDG code for the outgoing baryons 0190 */ 0191 vector<int> outgoing_; 0192 0193 /** 0194 * The type of matrix element 0195 */ 0196 vector<int> modeType_; 0197 0198 /** 0199 * max weight 0200 */ 0201 vector<double> maxWeight_; 0202 }; 0203 0204 } 0205 0206 #endif /* HERWIG_RadiativeHeavyBaryonDecayer_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|