|
|
|||
File indexing completed on 2026-08-06 09:23:58
0001 // -*- C++ -*- 0002 #ifndef HERWIG_NonLeptonicHyperonDecayer_H 0003 #define HERWIG_NonLeptonicHyperonDecayer_H 0004 // 0005 // This is the declaration of the NonLeptonicHyperonDecayer class. 0006 // 0007 #include "Baryon1MesonDecayerBase.h" 0008 0009 namespace Herwig { 0010 using namespace ThePEG; 0011 0012 /** \ingroup Decay 0013 * 0014 * This is a general class for the non-leptonic decay of hyperons. The 0015 * decays are given in terms of the invariant amplitudes 0016 * \f[\bar{u}_{B_j} \left\{A+B\gamma_5\right\}u_{B_i}\f] 0017 * where \f$B_j\f$ is the outgoing baryon and \f$B_i\f$ is the incoming baryon. 0018 * 0019 * The default amplitudes are taken from the fit in hep-ph/9902351, 0020 * N.B. due to the sign conventions in hep-ph/9902351 the B amplitudes 0021 * have the opposite sign. 0022 * 0023 * @see Baryon1MesonDecayerBase 0024 * 0025 */ 0026 class NonLeptonicHyperonDecayer: public Baryon1MesonDecayerBase { 0027 0028 public: 0029 0030 /** 0031 * Default constructor. 0032 */ 0033 NonLeptonicHyperonDecayer(); 0034 0035 /** 0036 * Which of the possible decays is required 0037 * @param cc Is this mode the charge conjugate 0038 * @param parent The decaying particle 0039 * @param children The decay products 0040 */ 0041 virtual int modeNumber(bool & cc, tcPDPtr parent, 0042 const tPDVector & children) const; 0043 0044 0045 /** 0046 * Output the setup information for the particle database 0047 * @param os The stream to output the information to 0048 * @param header Whether or not to output the information for MySQL 0049 */ 0050 virtual void dataBaseOutput(ofstream & os,bool header) const; 0051 0052 public: 0053 0054 /** @name Functions used by the persistent I/O system. */ 0055 //@{ 0056 /** 0057 * Function used to write out object persistently. 0058 * @param os the persistent output stream written to. 0059 */ 0060 void persistentOutput(PersistentOStream & os) const; 0061 0062 /** 0063 * Function used to read in object persistently. 0064 * @param is the persistent input stream read from. 0065 * @param version the version number of the object when written. 0066 */ 0067 void persistentInput(PersistentIStream & is, int version); 0068 //@} 0069 0070 /** 0071 * Standard Init function used to initialize the interfaces. 0072 */ 0073 static void Init(); 0074 0075 protected: 0076 0077 /** 0078 * Coupling Members. 0079 */ 0080 //@{ 0081 /** 0082 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a scalar. 0083 * @param imode The mode 0084 * @param m0 The mass of the decaying particle. 0085 * @param m1 The mass of the outgoing baryon. 0086 * @param m2 The mass of the outgoing meson. 0087 * @param A The coupling \f$A\f$ described above. 0088 * @param B The coupling \f$B\f$ described above. 0089 */ 0090 virtual void halfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0091 Complex& A,Complex& B) const; 0092 0093 protected: 0094 0095 /** @name Clone Methods. */ 0096 //@{ 0097 /** 0098 * Make a simple clone of this object. 0099 * @return a pointer to the new object. 0100 */ 0101 virtual IBPtr clone() const {return new_ptr(*this);} 0102 0103 /** Make a clone of this object, possibly modifying the cloned object 0104 * to make it sane. 0105 * @return a pointer to the new object. 0106 */ 0107 virtual IBPtr fullclone() const {return new_ptr(*this);} 0108 //@} 0109 0110 protected: 0111 0112 /** @name Standard Interfaced functions. */ 0113 //@{ 0114 0115 /** 0116 * Initialize this object after the setup phase before saving and 0117 * EventGenerator to disk. 0118 * @throws InitException if object could not be initialized properly. 0119 */ 0120 virtual void doinit(); 0121 0122 /** 0123 * Initialize this object to the begining of the run phase. 0124 */ 0125 virtual void doinitrun(); 0126 //@} 0127 0128 protected: 0129 0130 /** 0131 * Private and non-existent assignment operator. 0132 */ 0133 NonLeptonicHyperonDecayer & operator=(const NonLeptonicHyperonDecayer &) = delete; 0134 0135 public: 0136 0137 /** 0138 * Set the parameters for a decay mode 0139 */ 0140 string setUpDecayMode(string arg); 0141 0142 private: 0143 0144 /** 0145 * PDG code for the incoming baryon. 0146 */ 0147 vector<long> incoming_; 0148 0149 /** 0150 * PDG code for the outgoing baryon. 0151 */ 0152 vector<pair<long,long> > outgoing_; 0153 0154 /** 0155 * The \f$A\f$ coefficient. 0156 */ 0157 vector<double> a_; 0158 0159 /** 0160 * The \f$B\f$ coefficient. 0161 */ 0162 vector<double> b_; 0163 0164 /** 0165 * the maximum weights for the decays 0166 */ 0167 vector<double> maxweight_; 0168 }; 0169 0170 } 0171 0172 0173 #endif /* HERWIG_NonLeptonicHyperonDecayer_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|