|
|
|||
File indexing completed on 2026-08-06 09:23:59
0001 // -*- C++ -*- 0002 #ifndef HERWIG_SU3BaryonOctetOctetPhotonDecayer_H 0003 #define HERWIG_SU3BaryonOctetOctetPhotonDecayer_H 0004 // This is the declaration of the SU3BaryonOctetOctetPhotonDecayer class. 0005 0006 #include "Baryon1MesonDecayerBase.h" 0007 0008 namespace Herwig { 0009 using namespace ThePEG; 0010 0011 /** \ingroup Decay 0012 * 0013 * The <code>SU3BaryonOctetOctetPhotonDecayer</code> class performs the decay of 0014 * a baryon octet to a different baryon octet and a photon. 0015 * 0016 * The Lagrangian is taken to be 0017 * \f[ 0018 * ir_d\left[ {\rm tr}\left(\bar{R}\sigma_{\mu\nu}\{f^{\mu\nu}_+,B\}\right) 0019 * +{\rm tr}\left(\bar{B}\sigma_{\mu\nu}\{f^{\mu\nu}_+,R\}\right) 0020 * \right] 0021 * +ir_f\left[ {\rm tr}\left(\bar{R}\sigma_{\mu\nu}[f^{\mu\nu}_+,B] \right) 0022 * +{\rm tr}\left(\bar{B}\sigma_{\mu\nu}[f^{\mu\nu}_+,R] \right) 0023 * \right], 0024 * \f] 0025 * where \f$B\f$ is the matrix field for the ground state baryon multiplet, \f$R\f$ 0026 * is the 0027 * matrix field for the excited baryon multiplet and \f$f^{\mu\nu}_+\f$ is the chiral 0028 * field strength tensor for the electromagentic field given by 0029 * \f[ f^{\mu\nu}_+ = Q F^{\mu\nu} = \left(\begin{array}{ccc}\frac23&0&0\\ 0030 * 0&-\frac13&0\\ 0031 * 0&0&-\frac13 0032 * \end{array}\right) F^{\mu\nu},\f] 0033 * where \f$F^{\mu\nu}\f$ is the electromagentic field strength tensor. 0034 * This form is used for the case where both baryon multiplets have the same parity and 0035 * an additional \f$\gamma_5\f$ is added for the case where the multiplets have 0036 * opposite parity. 0037 * 0038 * For the decay of spin-\f$\frac32\f$ baryons we use the form 0039 * \f[ 0040 * ir_d\left[ {\rm tr}\left(\bar{R}^\mu\gamma_\nu\{f^{\mu\nu}_+,B\}\right) 0041 * +{\rm tr}\left(\bar{B}\gamma_\nu\{f^{\mu\nu}_+,R^\mu\}\right) 0042 * \right] 0043 * +ir_f\left[ {\rm tr}\left(\bar{R}^\mu\gamma_\nu[f^{\mu\nu}_+,B] \right) 0044 * +{\rm tr}\left(\bar{B}\gamma_\nu[f^{\mu\nu}_+,R^\mu] \right) 0045 * \right], 0046 * \f] 0047 * where \f$R^\mu\f$ is the matrix field for the excited baryon multiplet. 0048 * This form is used when the baryon's have the same parity and this form with 0049 * an additional \f$\gamma_5\f$ when they have opposite parity. 0050 * 0051 * This is one of a number of decayers based on \f$SU(3)\f$ symmetry which are 0052 * intended for the decay of excited baryons. 0053 * 0054 * @see Baryon1MesonDecayerBase 0055 * @see SU3BaryonOctetOctetPhotonDecayer 0056 * @see SU3BaryonDecupletOctetPhotonDecayer 0057 * @see SU3BaryonDecupletOctetScalarDecayer 0058 * @see SU3BaryonSingletOctetPhotonDecayer 0059 * @see SU3BaryonSingletOctetScalarDecayer 0060 * @see SU3BaryonOctetDecupletScalarDecayer 0061 * @see SU3BaryonOctetOctetScalarDecayer 0062 * 0063 */ 0064 class SU3BaryonOctetOctetPhotonDecayer: public Baryon1MesonDecayerBase { 0065 0066 public: 0067 0068 /** 0069 * Default constructor. 0070 */ 0071 SU3BaryonOctetOctetPhotonDecayer(); 0072 0073 /** 0074 * Which of the possible decays is required 0075 * @param cc Is this mode the charge conjugate 0076 * @param parent The decaying particle 0077 * @param children The decay products 0078 */ 0079 virtual int modeNumber(bool & cc, tcPDPtr parent, 0080 const tPDVector & children) const; 0081 0082 /** 0083 * Output the setup information for the particle database 0084 * @param os The stream to output the information to 0085 * @param header Whether or not to output the information for MySQL 0086 */ 0087 virtual void dataBaseOutput(ofstream & os,bool header) const; 0088 0089 public: 0090 0091 /** @name Functions used by the persistent I/O system. */ 0092 //@{ 0093 /** 0094 * Function used to write out object persistently. 0095 * @param os the persistent output stream written to. 0096 */ 0097 void persistentOutput(PersistentOStream & os) const; 0098 0099 /** 0100 * Function used to read in object persistently. 0101 * @param is the persistent input stream read from. 0102 * @param version the version number of the object when written. 0103 */ 0104 void persistentInput(PersistentIStream & is, int version); 0105 //@} 0106 0107 /** 0108 * Standard Init function used to initialize the interfaces. 0109 */ 0110 static void Init(); 0111 0112 protected: 0113 0114 /** 0115 * Coupling Members. 0116 */ 0117 //@{ 0118 /** 0119 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector. 0120 * @param imode The mode 0121 * @param m0 The mass of the decaying particle. 0122 * @param m1 The mass of the outgoing baryon. 0123 * @param m2 The mass of the outgoing meson. 0124 * @param A1 The coupling \f$A_1\f$ described above. 0125 * @param A2 The coupling \f$A_2\f$ described above. 0126 * @param B1 The coupling \f$B_1\f$ described above. 0127 * @param B2 The coupling \f$B_2\f$ described above. 0128 */ 0129 virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2, 0130 Complex& A1,Complex& A2, 0131 Complex& B1,Complex& B2) const; 0132 0133 /** 0134 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector. 0135 * @param imode The mode 0136 * @param m0 The mass of the decaying particle. 0137 * @param m1 The mass of the outgoing baryon. 0138 * @param m2 The mass of the outgoing meson. 0139 * @param A1 The coupling \f$A_1\f$ described above. 0140 * @param A2 The coupling \f$A_2\f$ described above. 0141 * @param A3 The coupling \f$A_3\f$ described above. 0142 * @param B1 The coupling \f$B_1\f$ described above. 0143 * @param B2 The coupling \f$B_2\f$ described above. 0144 * @param B3 The coupling \f$B_3\f$ described above. 0145 */ 0146 virtual void threeHalfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2, 0147 Complex& A1,Complex& A2,Complex& A3, 0148 Complex& B1,Complex& B2,Complex& B3) const; 0149 //@} 0150 0151 protected: 0152 0153 /** @name Clone Methods. */ 0154 //@{ 0155 /** 0156 * Make a simple clone of this object. 0157 * @return a pointer to the new object. 0158 */ 0159 virtual IBPtr clone() const {return new_ptr(*this);} 0160 0161 /** Make a clone of this object, possibly modifying the cloned object 0162 * to make it sane. 0163 * @return a pointer to the new object. 0164 */ 0165 virtual IBPtr fullclone() const {return new_ptr(*this);} 0166 //@} 0167 0168 protected: 0169 0170 /** @name Standard Interfaced functions. */ 0171 //@{ 0172 0173 /** 0174 * Initialize this object after the setup phase before saving and 0175 * EventGenerator to disk. 0176 * @throws InitException if object could not be initialized properly. 0177 */ 0178 virtual void doinit(); 0179 0180 /** 0181 * Initialize this object to the begining of the run phase. 0182 */ 0183 virtual void doinitrun(); 0184 //@} 0185 0186 private: 0187 0188 /** 0189 * Private and non-existent assignment operator. 0190 */ 0191 SU3BaryonOctetOctetPhotonDecayer & 0192 operator=(const SU3BaryonOctetOctetPhotonDecayer &) = delete; 0193 0194 private: 0195 0196 /** 0197 * set-up the modes 0198 */ 0199 void setupModes(unsigned int) const; 0200 0201 private: 0202 0203 /** 0204 * The couplings of comutator term. 0205 */ 0206 InvEnergy _lf; 0207 0208 /** 0209 * The couplings of anticomutator term. 0210 */ 0211 InvEnergy _ld; 0212 0213 /** 0214 * the relative parities of the two baryon multiplets 0215 */ 0216 bool _parity; 0217 0218 /** 0219 * PDG codes for the lower lying baryon octet baryons 0220 */ 0221 //@{ 0222 /** 0223 * The PDG code for the \f$p\f$-like member of the outgoing octet. 0224 */ 0225 int _proton; 0226 0227 /** 0228 * The PDG code for the \f$n\f$-like member of the outgoing octet. 0229 */ 0230 int _neutron; 0231 0232 /** 0233 * The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet. 0234 */ 0235 int _sigma0; 0236 0237 /** 0238 * The PDG code for the \f$\Sigma^+\f$-like member of the outgoing octet. 0239 */ 0240 int _sigmap; 0241 0242 /** 0243 * The PDG code for the \f$\Sigma^-\f$-like member of the outgoing octet. 0244 */ 0245 int _sigmam; 0246 0247 /** 0248 * The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet. 0249 */ 0250 int _lambda; 0251 0252 /** 0253 * The PDG code for the \f$\Xi^0\f$-like member of the outgoing octet. 0254 */ 0255 int _xi0; 0256 0257 /** 0258 * The PDG code for the \f$\Xi^-\f$-like member of the outgoing octet. 0259 */ 0260 int _xim; 0261 //@} 0262 0263 0264 /** 0265 * PDG codes for the higher baryon octet baryons 0266 */ 0267 //@{ 0268 /** 0269 * The PDG code for the \f$p\f$-like member of the outgoing octet. 0270 */ 0271 int _eproton; 0272 0273 /** 0274 * The PDG code for the \f$n\f$-like member of the outgoing octet. 0275 */ 0276 int _eneutron; 0277 0278 /** 0279 * The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet. 0280 */ 0281 int _esigma0; 0282 0283 /** 0284 * The PDG code for the \f$\Sigma^+\f$-like member of the outgoing octet. 0285 */ 0286 int _esigmap; 0287 0288 /** 0289 * The PDG code for the \f$\Sigma^-\f$-like member of the outgoing octet. 0290 */ 0291 int _esigmam; 0292 0293 /** 0294 * The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet. 0295 */ 0296 int _elambda; 0297 0298 /** 0299 * The PDG code for the \f$\Xi^0\f$-like member of the outgoing octet. 0300 */ 0301 int _exi0; 0302 0303 /** 0304 * The PDG code for the \f$\Xi^-\f$-like member of the outgoing octet. 0305 */ 0306 int _exim; 0307 //@} 0308 0309 /** 0310 * PDG code for the incoming baryons 0311 */ 0312 mutable vector<int> _incomingB; 0313 0314 /** 0315 * PDG code for the outgoing baryons 0316 */ 0317 mutable vector<int> _outgoingB; 0318 0319 /** 0320 * the maximum weight for the various modes 0321 */ 0322 vector<double> _maxweight; 0323 0324 /** 0325 * The couplings for the different modes. 0326 */ 0327 mutable vector<InvEnergy> _prefactor; 0328 }; 0329 0330 } 0331 0332 0333 #endif /* HERWIG_SU3BaryonOctetOctetPhotonDecayer_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|