Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_NonLeptonicOmegaDecayer_H
0003 #define HERWIG_NonLeptonicOmegaDecayer_H
0004 // This is the declaration of the NonLeptonicOmegaDecayer class.
0005 
0006 #include "Baryon1MesonDecayerBase.h"
0007 
0008 namespace Herwig {
0009 using namespace ThePEG;
0010 
0011 /** \ingroup Decay
0012  *
0013  *  The <code>NonLeptonicOmegaDecayer</code> class is designed for the non-leptonic
0014  *  weak decay of the Omega to a baryon from the lightest \f$SU(3)\f$ octet and a 
0015  *  pseudoscalar meson. The results are taken from hep-ph/9905398.
0016  *
0017  *  due to problems with the size of the d-wave term and recent measurements giving
0018  * the opposite sign for the \f$\alpha\f$ parameter we have set this term to zero.
0019  *
0020  * @see Baryon1MesonDecayerBase.
0021  * 
0022  */
0023 class NonLeptonicOmegaDecayer: public Baryon1MesonDecayerBase {
0024 
0025 public:
0026 
0027   /**
0028    * Default constructor.
0029    */
0030   NonLeptonicOmegaDecayer();
0031 
0032   /**
0033    * Which of the possible decays is required
0034    * @param cc Is this mode the charge conjugate
0035    * @param parent The decaying particle
0036    * @param children The decay products
0037    */
0038   virtual int modeNumber(bool & cc, tcPDPtr parent, 
0039              const tPDVector & children) const;
0040 
0041   /**
0042    * Output the setup information for the particle database
0043    * @param os The stream to output the information to
0044    * @param header Whether or not to output the information for MySQL
0045    */
0046   virtual void dataBaseOutput(ofstream & os,bool header) const;
0047 
0048 public:
0049 
0050   /** @name Functions used by the persistent I/O system. */
0051   //@{
0052   /**
0053    * Function used to write out object persistently.
0054    * @param os the persistent output stream written to.
0055    */
0056   void persistentOutput(PersistentOStream & os) const;
0057 
0058   /**
0059    * Function used to read in object persistently.
0060    * @param is the persistent input stream read from.
0061    * @param version the version number of the object when written.
0062    */
0063   void persistentInput(PersistentIStream & is, int version);
0064   //@}
0065 
0066   /**
0067    * Standard Init function used to initialize the interfaces.
0068    */
0069   static void Init();
0070 
0071 protected:
0072 
0073   /**
0074    *  Coupling Members.
0075    */
0076   //@{
0077   /**
0078    * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar. 
0079    * @param imode The mode
0080    * @param m0 The mass of the decaying particle.
0081    * @param m1 The mass of the outgoing baryon.
0082    * @param m2 The mass of the outgoing meson.
0083    * @param A The coupling \f$A\f$ described above.
0084    * @param B The coupling \f$B\f$ described above.
0085    */
0086   virtual void threeHalfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2,
0087                        Complex& A,Complex& B) const;
0088   //@}
0089 
0090 protected:
0091 
0092   /** @name Clone Methods. */
0093   //@{
0094   /**
0095    * Make a simple clone of this object.
0096    * @return a pointer to the new object.
0097    */
0098   virtual IBPtr clone() const {return new_ptr(*this);}
0099 
0100   /** Make a clone of this object, possibly modifying the cloned object
0101    * to make it sane.
0102    * @return a pointer to the new object.
0103    */
0104   virtual IBPtr fullclone() const {return new_ptr(*this);}
0105   //@}
0106 
0107 protected:
0108 
0109   /** @name Standard Interfaced functions. */
0110   //@{
0111   /**
0112    * Initialize this object after the setup phase before saving and
0113    * EventGenerator to disk.
0114    * @throws InitException if object could not be initialized properly.
0115    */
0116   virtual void doinit();
0117 
0118   /**
0119    * Initialize this object to the begining of the run phase.
0120    */
0121   virtual void doinitrun();
0122   //@}
0123 
0124 private:
0125 
0126   /**
0127    * Private and non-existent assignment operator.
0128    */
0129   NonLeptonicOmegaDecayer & operator=(const NonLeptonicOmegaDecayer &) = delete;
0130 
0131 private:
0132 
0133   /**
0134    * The \f$d^*\f$ coupling for the \f$B^*\f$ multiplet, this is \f$d^* /M_{B^*}\f$
0135    * from the paper.
0136    */
0137   double _dstar;
0138 
0139   /**
0140    * The \f$f^*\f$ coupling for the \f$B^*\f$ multiplet, this is \f$f^* /M_{B^*}\f$
0141    * from the paper.
0142    */
0143   double _fstar;
0144 
0145   /**
0146    * The \f$\omega_d\f$ coupling for the \f$R\f$ multiplet, this is \f$\omega_d/M_R\f$
0147    * from the paper.
0148    */
0149   double _omegad;
0150 
0151   /**
0152    * The \f$\omega_f\f$ coupling for the \f$R\f$ multiplet, this is \f$\omega_f/M_R\f$
0153    * from the paper.
0154    */
0155   double _omegaf;
0156 
0157   /**
0158    * The \f$\mathcal{C}_{B^*}\f$ coupling of the \f$B^*\f$ multiplet to the decuplet.
0159    */
0160   double _cbstar;
0161 
0162   /**
0163    * The \f$s_c\f$ coupling of the \f$R\f$ multiplet to the decuplet.
0164    */
0165   double _sc;
0166 
0167   /**
0168    * The \f$\mathcal{C}\f$ coupling of the decuplet to the ground state baryons.
0169    */
0170   double _c;
0171 
0172   /**
0173    * The pion decay constant \f$f_\pi\f$.
0174    */
0175   Energy _fpi;
0176 
0177   /**
0178    * The \f$h_\pi\f$ pion self-coupling.
0179    */
0180   double _hpi;
0181 
0182   /**
0183    * The \f$h_c\f$ coupling.
0184    */
0185   Energy _hc;
0186 
0187   /**
0188    * The \f$d\f$ coupling for the ground-state baryon multiplet.
0189    */
0190   Energy _d;
0191 
0192   /**
0193    * The \f$f\f$ coupling for the ground-state baryon multiplet.
0194    */
0195   Energy _f;
0196 
0197   /**
0198    * The mass of the \f$\Lambda^0\f$.
0199    */
0200   Energy _mlambda;
0201 
0202   /**
0203    * The mass of the \f$\Xi\f$.
0204    */
0205   Energy _mxi;
0206 
0207   /**
0208    * The mass of the \f$\Omega\f$.
0209    */
0210   Energy _momega;
0211 
0212   /**
0213    * The mass of the \f$\Xi^*\f$.
0214    */
0215   Energy _mxistar;
0216 
0217   /**
0218    * The mass of the \f$\pi^+\f$.
0219    */
0220   Energy _mpip;
0221 
0222   /**
0223    * The mass of the \f$\pi^0\f$.
0224    */
0225   Energy _mpi0;
0226 
0227   /**
0228    * The mass of the \f$K^+\f$.
0229    */
0230   Energy _mkp;
0231 
0232   /**
0233    * The mass of the \f$K^0\f$.
0234    */
0235   Energy _mk0;
0236 
0237   /**
0238    * The mass of the \f$B^*\f$ resonance, this is the \f$\frac12^+\f$ multiplet.
0239    */
0240   Energy _mbstar;
0241 
0242   /**
0243    * The mass of the \f$R\f$ resonance, this is the \f$\frac12^-\f$ multiplet.
0244    */
0245   Energy _mr;
0246 
0247   /**
0248    * use local values for the masses for the couplings
0249    */
0250   bool _localmasses;
0251 
0252   /**
0253    * The PDG code for the incoming baryon.
0254    */
0255   long _incomingB;
0256 
0257   /**
0258    * The PDG code for the outgoing baryon.
0259    */
0260   vector<long> _outgoingB;
0261 
0262   /**
0263    *  The PDG code for the outgoing meson.
0264    */
0265   vector<long> _outgoingM;
0266 
0267   /**
0268    * The \f$A\f$ coefficient for the decays.
0269    */
0270   vector<InvEnergy> _a;
0271 
0272   /**
0273    * The \f$B\f$ coefficient for the decays.
0274    */
0275   vector<InvEnergy> _b;
0276 
0277   /**
0278    * The maximum weights for the decays.
0279    */
0280   vector<double> _maxweight;
0281 };
0282 
0283 }
0284 
0285 
0286 #endif /* HERWIG_NonLeptonicOmegaDecayer_H */