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