Back to home page

EIC code displayed by LXR

 
 

    


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

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