|
|
|||
File indexing completed on 2026-08-06 09:23:59
0001 // -*- C++ -*- 0002 #ifndef HERWIG_StrongHeavyBaryonDecayer_H 0003 #define HERWIG_StrongHeavyBaryonDecayer_H 0004 // This is the declaration of the StrongHeavyBaryonDecayer class. 0005 0006 #include "Baryon1MesonDecayerBase.h" 0007 0008 namespace Herwig { 0009 using namespace ThePEG; 0010 0011 /** \ingroup Decay 0012 * 0013 * The <code>StrongHeavyBaryonDecayer</code> class implements the strong 0014 * decays of charm baryons using the results of hep-ph/9904421. 0015 * 0016 * @see Baryon1MesonDecayerBase. 0017 * 0018 */ 0019 class StrongHeavyBaryonDecayer: public Baryon1MesonDecayerBase { 0020 0021 public: 0022 0023 /** 0024 * Default constructor. 0025 */ 0026 StrongHeavyBaryonDecayer(); 0027 0028 /** 0029 * Which of the possible decays is required 0030 * @param cc Is this mode the charge conjugate 0031 * @param parent The decaying particle 0032 * @param children The decay products 0033 */ 0034 virtual int modeNumber(bool & cc, tcPDPtr parent, 0035 const tPDVector & children) const; 0036 0037 /** 0038 * Output the setup information for the particle database 0039 * @param os The stream to output the information to 0040 * @param header Whether or not to output the information for MySQL 0041 */ 0042 virtual void dataBaseOutput(ofstream & os,bool header) const; 0043 0044 public: 0045 0046 /** @name Functions used by the persistent I/O system. */ 0047 //@{ 0048 /** 0049 * Function used to write out object persistently. 0050 * @param os the persistent output stream written to. 0051 */ 0052 void persistentOutput(PersistentOStream & os) const; 0053 0054 /** 0055 * Function used to read in object persistently. 0056 * @param is the persistent input stream read from. 0057 * @param version the version number of the object when written. 0058 */ 0059 void persistentInput(PersistentIStream & is, int version); 0060 //@} 0061 0062 /** 0063 * Standard Init function used to initialize the interfaces. 0064 */ 0065 static void Init(); 0066 0067 protected: 0068 0069 /** 0070 * Coupling Members. 0071 */ 0072 //@{ 0073 /** 0074 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a scalar. 0075 * @param imode The mode 0076 * @param m0 The mass of the decaying particle. 0077 * @param m1 The mass of the outgoing baryon. 0078 * @param m2 The mass of the outgoing meson. 0079 * @param A The coupling \f$A\f$ described above. 0080 * @param B The coupling \f$B\f$ described above. 0081 */ 0082 virtual void halfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0083 Complex& A,Complex& B) const; 0084 0085 /** 0086 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar. 0087 * This method must be implemented in any class inheriting from this one 0088 * which includes \f$\frac12\to\frac32+0\f$ or \f$\frac32\to\frac12+0\f$ decays. 0089 * @param imode The mode 0090 * @param m0 The mass of the decaying particle. 0091 * @param m1 The mass of the outgoing baryon. 0092 * @param m2 The mass of the outgoing meson. 0093 * @param A The coupling \f$A\f$ described above. 0094 * @param B The coupling \f$B\f$ described above. 0095 */ 0096 virtual void halfThreeHalfScalarCoupling(int imode, Energy m0, Energy m1, Energy m2, 0097 Complex& A,Complex& B) const; 0098 0099 /** 0100 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar. 0101 * @param imode The mode 0102 * @param m0 The mass of the decaying particle. 0103 * @param m1 The mass of the outgoing baryon. 0104 * @param m2 The mass of the outgoing meson. 0105 * @param A The coupling \f$A\f$ described above. 0106 * @param B The coupling \f$B\f$ described above. 0107 */ 0108 virtual void threeHalfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0109 Complex& A,Complex& B) const; 0110 0111 /** 0112 * Couplings for spin-\f$\frac32\f$ to spin-\f$\frac32\f$ and a scalar. 0113 * This method must be implemented in any class inheriting from this one 0114 * which includes \f$\frac32\to\frac32+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 A1 The coupling \f$A_1\f$ described above. 0120 * @param A2 The coupling \f$A_2\f$ described above. 0121 * @param B1 The coupling \f$B_1\f$ described above. 0122 * @param B2 The coupling \f$B_2\f$ described above. 0123 */ 0124 virtual void threeHalfThreeHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0125 Complex& A1,Complex& A2, 0126 Complex& B1,Complex& B2) const; 0127 //@} 0128 0129 protected: 0130 0131 /** @name Clone Methods. */ 0132 //@{ 0133 /** 0134 * Make a simple clone of this object. 0135 * @return a pointer to the new object. 0136 */ 0137 virtual IBPtr clone() const {return new_ptr(*this);} 0138 0139 /** Make a clone of this object, possibly modifying the cloned object 0140 * to make it sane. 0141 * @return a pointer to the new object. 0142 */ 0143 virtual IBPtr fullclone() const {return new_ptr(*this);} 0144 //@} 0145 0146 protected: 0147 0148 /** @name Standard Interfaced functions. */ 0149 //@{ 0150 0151 /** 0152 * Initialize this object after the setup phase before saving and 0153 * EventGenerator to disk. 0154 * @throws InitException if object could not be initialized properly. 0155 */ 0156 virtual void doinit(); 0157 0158 /** 0159 * Initialize this object to the begining of the run phase. 0160 */ 0161 virtual void doinitrun(); 0162 //@} 0163 0164 private: 0165 0166 /** 0167 * Private and non-existent assignment operator. 0168 */ 0169 StrongHeavyBaryonDecayer & operator=(const StrongHeavyBaryonDecayer &) = delete; 0170 0171 public: 0172 0173 /** 0174 * Set the parameters for a decay mode 0175 */ 0176 string setUpDecayMode(string arg); 0177 0178 private: 0179 0180 /** 0181 * Strong coupling for the \f$\Sigma_c\to\Lambda_c\pi\f$. 0182 */ 0183 InvEnergy _gsigma_clambda_cpi; 0184 0185 /** 0186 * strong coupling for \f$\Xi^*_c\to\Xi_c\pi\f$. 0187 */ 0188 InvEnergy _gxistar_cxi_cpi; 0189 0190 /** 0191 * Strong coupling for \f$\Lambda_{c1}\to\Sigma_c\pi\f$. 0192 */ 0193 double _flambda_c1sigma_cpi; 0194 0195 /** 0196 * Strong coupling for \f$\Xi_{c1}\to\Xi'_c\pi\f$. 0197 */ 0198 double _fxi_c1xi_cpi; 0199 0200 /** 0201 * Strong coupling for \f$\Lambda_{c1}^*\to\Sigma_c\pi\f$. 0202 */ 0203 InvEnergy2 _flambda_c1starsigma_cpi; 0204 0205 /** 0206 * Strong couplng for \f$\Xi_{c1}^*\to\Xi'_c\pi\f$. 0207 */ 0208 InvEnergy2 _fxi_c1starxi_cpi; 0209 0210 /** 0211 * Strong coupling for the \f$\Sigma_b\to\Lambda_b\pi\f$. 0212 */ 0213 InvEnergy _gsigma_blambda_bpi; 0214 0215 /** 0216 * Strong coupling for \f$\Xi^*_b \to \Xi_b \pi\f$. 0217 */ 0218 InvEnergy _gxistar_bxi_bpi; 0219 0220 /** 0221 * Strong coupling for \f$\Lambda_{b1} \to \Sigma_b \pi\f$. 0222 */ 0223 double _flambda_b1sigma_bpi; 0224 0225 /** 0226 * Strong coupling for \f$\Xi_{b1}\to\Xi'_b\pi\f$. 0227 */ 0228 double _fxi_b1xi_bpi; 0229 0230 /** 0231 * Strong coupling for \f$\Lambda_{b1}^* \to \Sigma_b \pi\f$. 0232 */ 0233 InvEnergy2 _flambda_b1starsigma_bpi; 0234 0235 /** 0236 * Strong couplng for \f$\Xi_{b1}^*\to\Xi'_b\pi\f$. 0237 */ 0238 InvEnergy2 _fxi_b1starxi_bpi; 0239 0240 0241 /** 0242 * PDG code for the incoming baryons 0243 */ 0244 vector<int> incoming_; 0245 0246 /** 0247 * PDG code for the outgoing particles 0248 */ 0249 vector<pair<int,int> > outgoing_; 0250 0251 /** 0252 * max weight 0253 */ 0254 vector<double> maxWeight_; 0255 0256 /** 0257 * The couplings for the different modes. 0258 */ 0259 vector<double> _prefactor; 0260 0261 /** 0262 * The type of matrix element 0263 */ 0264 vector<int> modeType_; 0265 }; 0266 0267 } 0268 0269 0270 #endif /* HERWIG_StrongHeavyBaryonDecayer_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|