|
|
|||
File indexing completed on 2026-08-06 09:23:59
0001 // -*- C++ -*- 0002 #ifndef HERWIG_RadiativeHyperonDecayer_H 0003 #define HERWIG_RadiativeHyperonDecayer_H 0004 // 0005 // This is the declaration of the RadiativeHyperonDecayer class. 0006 // 0007 0008 #include "Baryon1MesonDecayerBase.h" 0009 0010 namespace Herwig { 0011 0012 using namespace ThePEG; 0013 0014 /** 0015 * The RadiativeHyperonDecayer class provides the matrix elements 0016 * for the decay of hyperons in which a photon is produced using the 0017 * model of Phys. Rev. D 59 (1999) 054019 [arXiv:hep-ph/9902431]. 0018 * 0019 * @see \ref RadiativeHyperonDecayerInterfaces "The interfaces" 0020 * defined for RadiativeHyperonDecayer. 0021 */ 0022 class RadiativeHyperonDecayer: public Baryon1MesonDecayerBase { 0023 0024 public: 0025 0026 /** 0027 * Which of the possible decays is required 0028 * @param cc Is this mode the charge conjugate 0029 * @param parent The decaying particle 0030 * @param children The decay products 0031 */ 0032 virtual int modeNumber(bool & cc, tcPDPtr parent, 0033 const tPDVector & children) const; 0034 0035 0036 /** 0037 * Output the setup information for the particle database 0038 * @param os The stream to output the information to 0039 * @param header Whether or not to output the information for MySQL 0040 */ 0041 virtual void dataBaseOutput(ofstream & os,bool header) const; 0042 0043 public: 0044 0045 /** @name Functions used by the persistent I/O system. */ 0046 //@{ 0047 /** 0048 * Function used to write out object persistently. 0049 * @param os the persistent output stream written to. 0050 */ 0051 void persistentOutput(PersistentOStream & os) const; 0052 0053 /** 0054 * Function used to read in object persistently. 0055 * @param is the persistent input stream read from. 0056 * @param version the version number of the object when written. 0057 */ 0058 void persistentInput(PersistentIStream & is, int version); 0059 //@} 0060 0061 /** 0062 * The standard Init function used to initialize the interfaces. 0063 * Called exactly once for each class by the class description system 0064 * before the main function starts or 0065 * when this class is dynamically loaded. 0066 */ 0067 static void Init(); 0068 protected: 0069 0070 /** 0071 * Coupling Members. 0072 */ 0073 //@{ 0074 0075 /** 0076 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector. 0077 * This method must be implemented in any class inheriting from this one 0078 * which includes \f$\frac12\to\frac12+1\f$ decays. 0079 * @param imode The mode 0080 * @param m0 The mass of the decaying particle. 0081 * @param m1 The mass of the outgoing baryon. 0082 * @param m2 The mass of the outgoing meson. 0083 * @param A1 The coupling \f$A_1\f$ described above. 0084 * @param A2 The coupling \f$A_2\f$ described above. 0085 * @param B1 The coupling \f$B_1\f$ described above. 0086 * @param B2 The coupling \f$B_2\f$ described above. 0087 */ 0088 virtual void halfHalfVectorCoupling(int imode, Energy m0, Energy m1, Energy m2, 0089 Complex& A1,Complex& A2, 0090 Complex& B1,Complex& B2) const; 0091 //@} 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; 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; 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 private: 0129 0130 /** 0131 * The assignment operator is private and must never be called. 0132 * In fact, it should not even be implemented. 0133 */ 0134 RadiativeHyperonDecayer & operator=(const RadiativeHyperonDecayer &) = delete; 0135 0136 public: 0137 0138 /** 0139 * Set the parameters for a decay mode 0140 */ 0141 string setUpDecayMode(string arg); 0142 0143 private: 0144 0145 /** 0146 * PDG code for the incoming baryon. 0147 */ 0148 vector<long> incomingB_; 0149 0150 /** 0151 * PDG code for the outgoing baryon. 0152 */ 0153 vector<long> outgoingB_; 0154 0155 /** 0156 * The \f$A\f$ coefficient. 0157 */ 0158 vector<InvEnergy> A_; 0159 0160 /** 0161 * The \f$B\f$ coefficient. 0162 */ 0163 vector<InvEnergy> B_; 0164 0165 /** 0166 * the maximum weights for the decays 0167 */ 0168 vector<double> maxweight_; 0169 }; 0170 0171 } 0172 0173 #endif /* HERWIG_RadiativeHyperonDecayer_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|