Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_SU3BaryonDecupletOctetPhotonDecayer_H
0003 #define HERWIG_SU3BaryonDecupletOctetPhotonDecayer_H
0004 // This is the declaration of the SU3BaryonDecupletOctetPhotonDecayer class.
0005 
0006 #include "Baryon1MesonDecayerBase.h"
0007 
0008 namespace Herwig {
0009 using namespace ThePEG;
0010 
0011 /** \ingroup Decay
0012  *
0013  *  The <code>SU3BaryonDecupletOctetPhotonDecayer</code> class is designed for the decay
0014  *  of a deculpet baryon to an octet baryon and a photon using the SU(3) conserving
0015  *  term in the chiral lagrangian.
0016  *
0017  *  The lagrangian is taken to be
0018  * \f[ \bar{B}_i^b\gamma^\nu\gamma_5\Delta^\mu_{jbc}Q_j\epsilon^{cij}F_{\mu\nu},\f]
0019  *  where \f$B\f$ is the matrix field for the baryon octet, \f$\Delta\f$ is the field for
0020  *  the decuplet, \f$Q\f$ is the charge matrix
0021  * \f[Q  = \left(\begin{array}{ccc}\frac23&0&0\\
0022  *                                                           0&-\frac13&0\\
0023  *                                                           0&0&-\frac13
0024  *     \end{array}\right),\f]
0025  *  and \f$F^{\mu\nu}\f$ is the electromagnetic field strength. This form is used when 
0026  *  the multiplets have the same parity and this form without the \f$\gamma_5\f$ if
0027  *  the multiplets have opposite parity.
0028  *
0029  *  This is one of a number of decayers based on \f$SU(3)\f$ symmetry which are
0030  *  intended for the decay of excited baryons.
0031  *
0032  * @see Baryon1MesonDecayerBase
0033  * @see SU3BaryonOctetOctetPhotonDecayer
0034  * @see SU3BaryonDecupletOctetPhotonDecayer
0035  * @see SU3BaryonDecupletOctetScalarDecayer
0036  * @see SU3BaryonSingletOctetPhotonDecayer
0037  * @see SU3BaryonSingletOctetScalarDecayer
0038  * @see SU3BaryonOctetDecupletScalarDecayer
0039  * @see SU3BaryonOctetOctetScalarDecayer
0040  * 
0041  */
0042 class SU3BaryonDecupletOctetPhotonDecayer: public Baryon1MesonDecayerBase {
0043 
0044 public:
0045 
0046   /**
0047    * Default constructor.
0048    */
0049   SU3BaryonDecupletOctetPhotonDecayer();
0050 
0051   /**
0052    * Which of the possible decays is required
0053    * @param cc Is this mode the charge conjugate
0054    * @param parent The decaying particle
0055    * @param children The decay products
0056    */
0057   virtual int modeNumber(bool & cc, tcPDPtr parent, 
0058              const tPDVector & children) const;
0059 
0060   /**
0061    * Output the setup information for the particle database
0062    * @param os The stream to output the information to
0063    * @param header Whether or not to output the information for MySQL
0064    */
0065   virtual void dataBaseOutput(ofstream & os,bool header) const;
0066 
0067 public:
0068 
0069   /** @name Functions used by the persistent I/O system. */
0070   //@{
0071   /**
0072    * Function used to write out object persistently.
0073    * @param os the persistent output stream written to.
0074    */
0075   void persistentOutput(PersistentOStream & os) const;
0076 
0077   /**
0078    * Function used to read in object persistently.
0079    * @param is the persistent input stream read from.
0080    * @param version the version number of the object when written.
0081    */
0082   void persistentInput(PersistentIStream & is, int version);
0083   //@}
0084 
0085   /**
0086    * Standard Init function used to initialize the interfaces.
0087    */
0088   static void Init();
0089 
0090 protected:
0091 
0092   /**
0093    *  Coupling Members.
0094    */
0095   //@{
0096   /**
0097    * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector.
0098    * @param imode The mode
0099    * @param m0 The mass of the decaying particle.
0100    * @param m1 The mass of the outgoing baryon.
0101    * @param m2 The mass of the outgoing meson.
0102    * @param A1 The coupling \f$A_1\f$ described above.
0103    * @param A2 The coupling \f$A_2\f$ described above.
0104    * @param A3 The coupling \f$A_3\f$ described above.
0105    * @param B1 The coupling \f$B_1\f$ described above.
0106    * @param B2 The coupling \f$B_2\f$ described above.
0107    * @param B3 The coupling \f$B_3\f$ described above.
0108    */
0109   virtual void threeHalfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2,
0110                        Complex& A1,Complex& A2,Complex& A3,
0111                        Complex& B1,Complex& B2,Complex& B3) const;
0112   //@}
0113 
0114 protected:
0115 
0116   /** @name Clone Methods. */
0117   //@{
0118   /**
0119    * Make a simple clone of this object.
0120    * @return a pointer to the new object.
0121    */
0122   virtual IBPtr clone() const {return new_ptr(*this);}
0123 
0124   /** Make a clone of this object, possibly modifying the cloned object
0125    * to make it sane.
0126    * @return a pointer to the new object.
0127    */
0128   virtual IBPtr fullclone() const {return new_ptr(*this);}
0129   //@}
0130 
0131 protected:
0132 
0133   /** @name Standard Interfaced functions. */
0134   //@{
0135   /**
0136    * Initialize this object after the setup phase before saving and
0137    * EventGenerator to disk.
0138    * @throws InitException if object could not be initialized properly.
0139    */
0140   virtual void doinit();
0141 
0142   /**
0143    * Initialize this object to the begining of the run phase.
0144    */
0145   virtual void doinitrun();
0146   //@}
0147 
0148 private:
0149 
0150   /**
0151    * Private and non-existent assignment operator.
0152    */
0153   SU3BaryonDecupletOctetPhotonDecayer & operator=(const SU3BaryonDecupletOctetPhotonDecayer &) = delete;
0154 
0155 private:
0156 
0157   /**
0158    * set-up the modes
0159    */
0160   void setupModes(unsigned int) const;
0161 
0162 private:
0163 
0164   /**
0165    * the coupling
0166    */
0167   InvEnergy C_;
0168 
0169   /**
0170    * the relative parities of the two baryon multiplets
0171    */
0172   bool parity_;
0173 
0174   /**
0175    * PDG codes for the various octet baryons
0176    */
0177   //@{
0178   /**
0179    *  The PDG code for the \f$p\f$-like member of the outgoing octet.
0180    */
0181   int proton_;
0182 
0183   /**
0184    *  The PDG code for the \f$n\f$-like member of the outgoing octet.
0185    */
0186   int neutron_;
0187 
0188   /**
0189    *  The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet.
0190    */
0191   int sigma0_;
0192 
0193   /**
0194    *  The PDG code for the  \f$\Sigma^+\f$-like member of the outgoing octet.
0195    */
0196   int sigmap_;
0197 
0198   /**
0199    *  The PDG code for the  \f$\Sigma^-\f$-like member of the outgoing octet.
0200    */
0201   int sigmam_;
0202 
0203   /**
0204    *  The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet.
0205    */
0206   int lambda_;
0207 
0208   /**
0209    *  The PDG code for the \f$\Xi^0\f$-like member of the outgoing octet.
0210    */
0211   int xi0_;
0212 
0213   /**
0214    *  The PDG code for the \f$\Xi^-\f$-like member of the outgoing octet.
0215    */
0216   int xim_;
0217   //@}
0218 
0219   /**
0220    * PDG codes for the various decuplet baryons
0221    */
0222   //@{
0223   /**
0224    *  The PDG code for the \f$\Delta^{++}\f$-like member of the outgoing decuplet.
0225    */
0226   int deltapp_;
0227 
0228   /**
0229    *  The PDG code for the \f$\Delta^{+}\f$-like member of the outgoing decuplet.
0230    */
0231   int deltap_;
0232 
0233   /**
0234    *  The PDG code for the \f$\Delta^{0}\f$-like member of the outgoing decuplet.
0235    */
0236   int delta0_;
0237 
0238   /**
0239    *  The PDG code for the \f$\Delta^{-}\f$-like member of the outgoing decuplet.
0240    */
0241   int deltam_;
0242 
0243   /**
0244    *  The PDG code for the \f$\Sigma^{*+}\f$-like member of the outgoing decuplet.
0245    */
0246   int sigmasp_;
0247 
0248   /**
0249    *  The PDG code for the \f$\Sigma^{*0}\f$-like member of the outgoing decuplet.
0250    */
0251   int sigmas0_;
0252 
0253   /**
0254    *  The PDG code for the \f$\Sigma^{*-}\f$-like member of the outgoing decuplet.
0255    */
0256   int sigmasm_;
0257 
0258   /**
0259    *  The PDG code for the \f$\Omega^-\f$-like member of the outgoing decuplet.
0260    */
0261   int omega_;
0262 
0263   /**
0264    *  The PDG code for the \f$\Xi^{*-}\f$-like member of the outgoing decuplet.
0265    */
0266   int xism_;
0267 
0268   /**
0269    *  The PDG code for the \f$\Xi^{*0}\f$-like member of the outgoing decuplet.
0270    */
0271   int xis0_;
0272   //@}
0273 
0274   /**
0275    * PDG code for the incoming baryons
0276    */
0277   mutable vector<int> incomingB_;
0278 
0279   /**
0280    * PDG code for the outgoing baryons
0281    */
0282   mutable vector<int> outgoingB_;
0283 
0284   /**
0285    * the maximum weight for the various modes
0286    */
0287   vector<double> maxweight_;
0288 
0289   /**
0290    * The couplings for the different modes.
0291    */
0292   mutable vector<InvEnergy> prefactor_;
0293 };
0294 
0295 }
0296 
0297 
0298 #endif /* HERWIG_SU3BaryonDecupletOctetPhotonDecayer_H */