Back to home page

EIC code displayed by LXR

 
 

    


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

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