Back to home page

EIC code displayed by LXR

 
 

    


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

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