Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:23:59

0001 // -*- C++ -*-
0002 #ifndef THEPEG_SU3BaryonSingletOctetPhotonDecayer_H
0003 #define THEPEG_SU3BaryonSingletOctetPhotonDecayer_H
0004 // This is the declaration of the SU3BaryonSingletOctetPhotonDecayer class.
0005 
0006 #include "Baryon1MesonDecayerBase.h"
0007 
0008 namespace Herwig {
0009 using namespace ThePEG;
0010 
0011 /** \ingroup Decay
0012  *
0013  *  The <code>SU3BaryonSingletOctetPhotonDecayer</code> class performs the
0014  *  radiative decay  of an \f$SU(3)\f$ singlet baryon to an \f$SU(3)\f$ octet baryon.
0015  *
0016  * The Lagrangian is taken to be
0017  * \f[iC\left[ {\rm tr}\left(\bar{S}\sigma_{\mu\nu}f^{\mu\nu}_+,B\right)
0018  *            +{\rm tr}\left(\bar{B}\sigma_{\mu\nu}f^{\mu\nu}_+,S\right)
0019  *      \right]
0020  * \f]
0021  *  where \f$B\f$ is the matrix field for the ground state baryon multiplet, \f$S\f$
0022  *  is the singlet field and \f$f^{\mu\nu}_+\f$ is the chiral
0023  * field strength tensor for the electromagentic field given by
0024  * \f[ f^{\mu\nu}_+ = Q F^{\mu\nu} = \left(\begin{array}{ccc}\frac23&0&0\\
0025  *                                                           0&-\frac13&0\\
0026  *                                                           0&0&-\frac13
0027  *     \end{array}\right) F^{\mu\nu},\f]
0028  * where \f$F^{\mu\nu}\f$ is the electromagentic field strength tensor.
0029  * This form is used for the case where both the singlet and the baryon multiplet
0030  * have the same parity and
0031  * an additional \f$\gamma_5\f$ is added for the case where the multiplets have 
0032  * opposite parity.
0033  *
0034  * For the decay of spin-\f$\frac32\f$ baryons we use the form
0035  * \f[
0036  *  ir_d\left[ {\rm tr}\left(\bar{S}^\mu\gamma_\nu f^{\mu\nu}_+,B\right)
0037  *            +{\rm tr}\left(\bar{B}\gamma_\nu f^{\mu\nu}_+,S^\mu\right)
0038  *            \right],\f]
0039  *  where \f$S^\mu\f$ is the matrix field for the excited baryon multiplet.
0040  *  This form is used when the baryon's have the same parity and this form with
0041  *  an additional \f$\gamma_5\f$ when they have opposite parity.
0042  *
0043  *  This is one of a number of decayers based on \f$SU(3)\f$ symmetry which are
0044  *  intended for the decay of excited baryons.
0045  *
0046  * @see Baryon1MesonDecayerBase
0047  * @see SU3BaryonOctetOctetPhotonDecayer
0048  * @see SU3BaryonDecupletOctetPhotonDecayer
0049  * @see SU3BaryonDecupletOctetScalarDecayer
0050  * @see SU3BaryonSingletOctetPhotonDecayer
0051  * @see SU3BaryonSingletOctetScalarDecayer
0052  * @see SU3BaryonOctetDecupletScalarDecayer
0053  * @see SU3BaryonOctetOctetScalarDecayer
0054  */
0055 class SU3BaryonSingletOctetPhotonDecayer: public Baryon1MesonDecayerBase {
0056 
0057 public:
0058 
0059   /**
0060    * Default constructor.
0061    */
0062   SU3BaryonSingletOctetPhotonDecayer();
0063 
0064   /**
0065    * Which of the possible decays is required
0066    * @param cc Is this mode the charge conjugate
0067    * @param parent The decaying particle
0068    * @param children The decay products
0069    */
0070   virtual int modeNumber(bool & cc, tcPDPtr parent, 
0071              const tPDVector & children) const;
0072 
0073   /**
0074    * Output the setup information for the particle database
0075    * @param os The stream to output the information to
0076    * @param header Whether or not to output the information for MySQL
0077    */
0078   virtual void dataBaseOutput(ofstream & os,bool header) const;
0079 
0080 public:
0081 
0082   /** @name Functions used by the persistent I/O system. */
0083   //@{
0084   /**
0085    * Function used to write out object persistently.
0086    * @param os the persistent output stream written to.
0087    */
0088   void persistentOutput(PersistentOStream & os) const;
0089 
0090   /**
0091    * Function used to read in object persistently.
0092    * @param is the persistent input stream read from.
0093    * @param version the version number of the object when written.
0094    */
0095   void persistentInput(PersistentIStream & is, int version);
0096   //@}
0097 
0098   /**
0099    * Standard Init function used to initialize the interfaces.
0100    */
0101   static void Init();
0102 
0103 protected:
0104 
0105   /**
0106    *  Coupling Members.
0107    */
0108   //@{
0109   /**
0110    * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector.
0111    * @param imode The mode
0112    * @param m0 The mass of the decaying particle.
0113    * @param m1 The mass of the outgoing baryon.
0114    * @param m2 The mass of the outgoing meson.
0115    * @param A1 The coupling \f$A_1\f$ described above.
0116    * @param A2 The coupling \f$A_2\f$ described above.
0117    * @param B1 The coupling \f$B_1\f$ described above.
0118    * @param B2 The coupling \f$B_2\f$ described above.
0119    */
0120   virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
0121                       Complex& A1,Complex& A2,
0122                       Complex& B1,Complex& B2) const;
0123 
0124   /**
0125    * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector.
0126    * @param imode The mode
0127    * @param m0 The mass of the decaying particle.
0128    * @param m1 The mass of the outgoing baryon.
0129    * @param m2 The mass of the outgoing meson.
0130    * @param A1 The coupling \f$A_1\f$ described above.
0131    * @param A2 The coupling \f$A_2\f$ described above.
0132    * @param A3 The coupling \f$A_3\f$ described above.
0133    * @param B1 The coupling \f$B_1\f$ described above.
0134    * @param B2 The coupling \f$B_2\f$ described above.
0135    * @param B3 The coupling \f$B_3\f$ described above.
0136    */
0137   virtual void threeHalfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
0138                        Complex& A1,Complex& A2,Complex& A3,
0139                        Complex& B1,Complex& B2,Complex& B3) const;
0140   //@}
0141 
0142 protected:
0143 
0144   /** @name Clone Methods. */
0145   //@{
0146   /**
0147    * Make a simple clone of this object.
0148    * @return a pointer to the new object.
0149    */
0150   virtual IBPtr clone() const {return new_ptr(*this);}
0151 
0152   /** Make a clone of this object, possibly modifying the cloned object
0153    * to make it sane.
0154    * @return a pointer to the new object.
0155    */
0156   virtual IBPtr fullclone() const {return new_ptr(*this);}
0157   //@}
0158 
0159 protected:
0160 
0161   /** @name Standard Interfaced functions. */
0162   //@{
0163   /**
0164    * Initialize this object after the setup phase before saving and
0165    * EventGenerator to disk.
0166    * @throws InitException if object could not be initialized properly.
0167    */
0168   virtual void doinit();
0169 
0170   /**
0171    * Initialize this object to the begining of the run phase.
0172    */
0173   virtual void doinitrun();
0174   //@}
0175 
0176 private:
0177 
0178   /**
0179    * Private and non-existent assignment operator.
0180    */
0181   SU3BaryonSingletOctetPhotonDecayer & operator=(const SU3BaryonSingletOctetPhotonDecayer &) = delete;
0182 
0183 private:
0184 
0185   /**
0186    * set-up the modes
0187    */
0188   void setupModes(unsigned int) const;
0189 
0190 private:
0191 
0192   /**
0193    * the coupling
0194    */
0195   InvEnergy _c;
0196 
0197   /**
0198    * the relative parities of the two baryon multiplets
0199    */
0200   bool _parity;
0201 
0202   /**
0203    * PDG codes for the lower lying baryon octet baryons
0204    */
0205   //@{
0206   /**
0207    *  The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet.
0208    */
0209   int _sigma0;
0210 
0211   /**
0212    *  The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet.
0213    */
0214   int _lambda;
0215 
0216   /**
0217    * PDG code for the various excited baryon
0218    */
0219   int _elambda;
0220 
0221   /**
0222    * outgoing baryon for the various modes
0223    */
0224   mutable vector<int> _outgoingB;
0225 
0226   /**
0227    * the maximum weight for the various modes
0228    */
0229   vector<double> _maxweight;
0230 
0231   /**
0232    * The couplings for the different modes.
0233    */
0234   mutable vector<InvEnergy> _prefactor;
0235 };
0236 
0237 }
0238 
0239 
0240 #endif /* THEPEG_SU3BaryonSingletOctetPhotonDecayer_H */