Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_SU3BaryonDecupletOctetScalarDecayer_H
0003 #define HERWIG_SU3BaryonDecupletOctetScalarDecayer_H
0004 //
0005 // This is the declaration of the SU3BaryonDecupletOctetScalarDecayer class.
0006 //
0007 #include "Baryon1MesonDecayerBase.h"
0008 
0009 namespace Herwig {
0010 using namespace ThePEG;
0011 
0012 /** \ingroup Decay
0013  *
0014  *  The <code>SU3BaryonDecupletOctetScalarDecayer</code> class is designed for the
0015  *  decay of a \f$SU(3)\f$ deculpet baryon to an octet baryon and a pseudoscalar meson
0016  *  from the lightest multiplet.
0017  *
0018  *  The coupling is taken to have the form
0019  *  \f[\frac{C}{f_\pi}\left[
0020  *  \bar{\Delta}^{\mu,abc}p_{\phi,\mu}\phi^i_aB^j_b\epsilon_{cij}
0021  * -\bar{B}^b_ip_{\phi,\mu}\phi^a_j\Delta^\mu_{abc}\epsilon^{cij}
0022  *  \right],\f]
0023  *  where \f$\Delta^\mu_{abc}\f$ is the decuplet field, \f$B^j_b\f$
0024  *  is the octet field and
0025  *  \f$\phi^i_a\f$ is the pseudoscalar field, \f$f_\pi\f$ is the pion decay constant
0026  *  and \f$C\f$ is the coupling for the decay.
0027  *
0028  *  This is one of a number of decayers based on \f$SU(3)\f$ symmetry which are
0029  *  intended for the decay of excited baryons.
0030  *
0031  * @see Baryon1MesonDecayerBase
0032  * @see SU3BaryonOctetOctetPhotonDecayer
0033  * @see SU3BaryonDecupletOctetPhotonDecayer
0034  * @see SU3BaryonDecupletOctetScalarDecayer
0035  * @see SU3BaryonSingletOctetPhotonDecayer
0036  * @see SU3BaryonSingletOctetScalarDecayer
0037  * @see SU3BaryonOctetDecupletScalarDecayer
0038  * @see SU3BaryonOctetOctetScalarDecayer
0039  * 
0040  */
0041 class SU3BaryonDecupletOctetScalarDecayer: public Baryon1MesonDecayerBase {
0042 
0043 public:
0044 
0045   /**
0046    * Default constructor.
0047    */
0048   SU3BaryonDecupletOctetScalarDecayer();
0049 
0050   /**
0051    * Which of the possible decays is required
0052    * @param cc Is this mode the charge conjugate
0053    * @param parent The decaying particle
0054    * @param children The decay products
0055    */
0056   virtual int modeNumber(bool & cc, tcPDPtr parent, 
0057              const tPDVector & children) const;
0058 
0059   /**
0060    * Output the setup information for the particle database
0061    * @param os The stream to output the information to
0062    * @param header Whether or not to output the information for MySQL
0063    */
0064   virtual void dataBaseOutput(ofstream & os,bool header) const;
0065 
0066 public:
0067 
0068   /** @name Functions used by the persistent I/O system. */
0069   //@{
0070   /**
0071    * Function used to write out object persistently.
0072    * @param os the persistent output stream written to.
0073    */
0074   void persistentOutput(PersistentOStream & os) const;
0075 
0076   /**
0077    * Function used to read in object persistently.
0078    * @param is the persistent input stream read from.
0079    * @param version the version number of the object when written.
0080    */
0081   void persistentInput(PersistentIStream & is, int version);
0082   //@}
0083 
0084   /**
0085    * Standard Init function used to initialize the interfaces.
0086    */
0087   static void Init();
0088 
0089 protected:
0090 
0091   /**
0092    *  Coupling Members.
0093    */
0094   //@{
0095   /**
0096    * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar.
0097    * @param imode The mode
0098    * @param m0 The mass of the decaying particle.
0099    * @param m1 The mass of the outgoing baryon.
0100    * @param m2 The mass of the outgoing meson.
0101    * @param A The coupling \f$A\f$ described above.
0102    * @param B The coupling \f$B\f$ described above.
0103    */
0104   virtual void threeHalfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2,
0105                        Complex& A,Complex& B) const;
0106   //@}
0107 
0108 protected:
0109 
0110   /** @name Clone Methods. */
0111   //@{
0112   /**
0113    * Make a simple clone of this object.
0114    * @return a pointer to the new object.
0115    */
0116   virtual IBPtr clone() const {return new_ptr(*this);}
0117 
0118   /** Make a clone of this object, possibly modifying the cloned object
0119    * to make it sane.
0120    * @return a pointer to the new object.
0121    */
0122   virtual IBPtr fullclone() const {return new_ptr(*this);}
0123   //@}
0124 
0125 protected:
0126 
0127   /** @name Standard Interfaced functions. */
0128   //@{
0129   /**
0130    * Initialize this object after the setup phase before saving and
0131    * EventGenerator to disk.
0132    * @throws InitException if object could not be initialized properly.
0133    */
0134   virtual void doinit();
0135 
0136   /**
0137    * Initialize this object to the begining of the run phase.
0138    */
0139   virtual void doinitrun();
0140   //@}
0141 
0142 private:
0143 
0144   /**
0145    * Private and non-existent assignment operator.
0146    */
0147   SU3BaryonDecupletOctetScalarDecayer & 
0148   operator=(const SU3BaryonDecupletOctetScalarDecayer &) = delete;
0149 
0150 private:
0151 
0152   /**
0153    * Set-up the modes
0154    */
0155   void setupModes(unsigned int) const;
0156 
0157 private:
0158 
0159   /**
0160    * the coupling
0161    */
0162   double _c;
0163 
0164   /**
0165    * the relative parities of the two baryon multiplets
0166    */
0167   bool _parity;
0168 
0169   /**
0170    * the pion decay constant
0171    */
0172   Energy _fpi;
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   long _proton;
0182 
0183   /**
0184    *  The PDG code for the \f$n\f$-like member of the outgoing octet.
0185    */
0186   long _neutron;
0187 
0188   /**
0189    *  The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet.
0190    */
0191   long _sigma0;
0192 
0193   /**
0194    *  The PDG code for the  \f$\Sigma^+\f$-like member of the outgoing octet.
0195    */
0196   long _sigmap;
0197 
0198   /**
0199    *  The PDG code for the  \f$\Sigma^-\f$-like member of the outgoing octet.
0200    */
0201   long _sigmam;
0202 
0203   /**
0204    *  The PDG code for the \f$\Sigma^0\f$-like member of the outgoing octet.
0205    */
0206   long _lambda;
0207 
0208   /**
0209    *  The PDG code for the \f$\Xi^0\f$-like member of the outgoing octet.
0210    */
0211   long _xi0;
0212 
0213   /**
0214    *  The PDG code for the \f$\Xi^-\f$-like member of the outgoing octet.
0215    */
0216   long _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 incoming decuplet.
0225    */
0226   long _deltapp;
0227 
0228   /**
0229    *  The PDG code for the \f$\Delta^{+}\f$-like member of the incoming decuplet.
0230    */
0231   long _deltap;
0232 
0233   /**
0234    *  The PDG code for the \f$\Delta^{0}\f$-like member of the incoming decuplet.
0235    */
0236   long _delta0;
0237 
0238   /**
0239    *  The PDG code for the \f$\Delta^{-}\f$-like member of the incoming decuplet.
0240    */
0241   long _deltam;
0242 
0243   /**
0244    *  The PDG code for the \f$\Sigma^{*+}\f$-like member of the incoming decuplet.
0245    */
0246   long _sigmasp;
0247 
0248   /**
0249    *  The PDG code for the \f$\Sigma^{*0}\f$-like member of the incoming decuplet.
0250    */
0251   long _sigmas0;
0252 
0253   /**
0254    *  The PDG code for the \f$\Sigma^{*-}\f$-like member of the incoming decuplet.
0255    */
0256   long _sigmasm;
0257 
0258   /**
0259    *  The PDG code for the \f$\Omega^-\f$-like member of the incoming decuplet.
0260    */
0261   long _omega;
0262 
0263   /**
0264    *  The PDG code for the \f$\Xi^{*-}\f$-like member of the incoming decuplet.
0265    */
0266   long _xism;
0267 
0268   /**
0269    *  The PDG code for the \f$\Xi^{*0}\f$-like member of the incoming decuplet.
0270    */
0271   long _xis0;
0272   //@}
0273 
0274   /**
0275    * PDG code for the incoming baryons
0276    */
0277   mutable vector<long> _incomingB;
0278 
0279   /**
0280    * PDG code for the outgoing baryons
0281    */
0282   mutable vector<long> _outgoingB;
0283 
0284   /**
0285    * PDG code for the outgoing mesons
0286    */
0287   mutable vector<long> _outgoingM;
0288 
0289   /**
0290    * the maximum weight for the various modes
0291    */
0292   vector<double> _maxweight;
0293 
0294   /**
0295    * The couplings for the different modes
0296    */
0297   mutable vector<InvEnergy> _prefactor;
0298 
0299 };
0300 
0301 }
0302 
0303 
0304 #endif /* HERWIG_SU3BaryonDecupletOctetScalarDecayer_H */