Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:24:00

0001 // -*- C++ -*-
0002 #ifndef HERWIG_SingletonFormFactor_H
0003 #define HERWIG_SingletonFormFactor_H
0004 //
0005 // This is the declaration of the SingletonFormFactor class.
0006 //
0007 
0008 #include "BaryonFormFactor.h"
0009 #include "ThePEG/PDT/ParticleData.h"
0010 #include "ThePEG/PDT/ParticleData.h"
0011 
0012 namespace Herwig {
0013 using namespace ThePEG;
0014 
0015 /** \ingroup Decay
0016  *
0017  *  The SingletonFormFactor class implements the form-factors from
0018  *  PRD43, 2939 for the decay of spin-1/2 baryons containing bottom and charm
0019  *  quarks.
0020  *
0021  * @see BaryonFormFactor
0022  * 
0023  */
0024 class SingletonFormFactor: public BaryonFormFactor {
0025 
0026 public:
0027 
0028   /**
0029    * Default constructor
0030    */
0031   SingletonFormFactor();
0032 
0033 public:
0034 
0035   /** @name Functions used by the persistent I/O system. */
0036   //@{
0037   /**
0038    * Function used to write out object persistently.
0039    * @param os the persistent output stream written to.
0040    */
0041   void persistentOutput(PersistentOStream & os) const;
0042 
0043   /**
0044    * Function used to read in object persistently.
0045    * @param is the persistent input stream read from.
0046    * @param version the version number of the object when written.
0047    */
0048   void persistentInput(PersistentIStream & is, int version);
0049   //@}
0050 
0051   /**
0052    * Standard Init function used to initialize the interfaces.
0053    */
0054   static void Init();
0055 
0056 public:
0057 
0058   /** @name Form Factors */
0059   //@{
0060   /**
0061    * The form factor for the weak decay of a spin \f$\frac12\f$ baryon to a 
0062    * spin \f$\frac12\f$ baryon.  
0063    * @param q2 The scale \f$q^2\f$.
0064    * @param iloc The location in the form factor list.
0065    * @param id0 The PDG code of the incoming baryon.
0066    * @param id1 The PDG code of the outgoing baryon.
0067    * @param m0 The mass of the incoming baryon.
0068    * @param m1 The mass of the outgoing baryon.
0069    * @param f1v The form factor \f$F^V_1\f$.
0070    * @param f2v The form factor \f$F^V_2\f$.
0071    * @param f3v The form factor \f$F^V_3\f$.
0072    * @param f1a The form factor \f$F^A_1\f$.
0073    * @param f2a The form factor \f$F^A_2\f$.
0074    * @param f3a The form factor \f$F^A_3\f$.
0075    * @param virt Whether the q2 is space or timelike
0076    */
0077   virtual void SpinHalfSpinHalfFormFactor(Energy2 q2,int iloc, int id0, int id1,
0078                       Energy m0, Energy m1,
0079                       Complex & f1v,Complex & f2v,Complex & f3v,
0080                       Complex & f1a,Complex & f2a,Complex & f3a,
0081                       FlavourInfo flavour,
0082                       Virtuality virt=SpaceLike);
0083   //@}
0084 
0085   /**
0086    * Output the setup information for the particle database
0087    * @param os The stream to output the information to
0088    * @param header Whether or not to output the information for MySQL
0089    * @param create Whether or not to add a statement creating the object
0090    */
0091   virtual void dataBaseOutput(ofstream & os,bool header,bool create) const;
0092 
0093 protected:
0094 
0095   /** @name Clone Methods. */
0096   //@{
0097   /**
0098    * Make a simple clone of this object.
0099    * @return a pointer to the new object.
0100    */
0101   virtual IBPtr clone() const {return new_ptr(*this);}
0102 
0103   /** Make a clone of this object, possibly modifying the cloned object
0104    * to make it sane.
0105    * @return a pointer to the new object.
0106    */
0107   virtual IBPtr fullclone() const {return new_ptr(*this);}
0108   //@}
0109 
0110 protected:
0111 
0112 
0113   /** @name Standard Interfaced functions. */
0114   //@{
0115   /**
0116    * Initialize this object after the setup phase before saving and
0117    * EventGenerator to disk.
0118    * @throws InitException if object could not be initialized properly.
0119    */
0120   virtual void doinit();
0121   //@}
0122 
0123 private:
0124 
0125   /**
0126    * Private and non-existent assignment operator.
0127    */
0128   SingletonFormFactor & operator=(const SingletonFormFactor &) = delete;
0129 
0130 private:
0131 
0132   /**
0133    * The charm quark mass.
0134    */
0135   Energy _mcharm;
0136 
0137   /**
0138    * The strange quark mass.
0139    */
0140   Energy _mstrange;
0141 
0142   /**
0143    *  The mixing angle for the \f$\Lambda\f$.
0144    */
0145   double _thetalambda;
0146 
0147   /**
0148    *  The mixing angle for the \f$\Sigma\f$.
0149    */
0150   double _thetasigma;
0151 
0152   /**
0153    *  The mixing angle for the \f$\Xi\f$.
0154    */
0155   double _thetaxi;
0156 
0157   /**
0158    *  The mixing angle for the \f$\Xi'\f$.
0159    */
0160   double _thetaxip;
0161 
0162   /**
0163    *  The pole masses for the \f$q^2\f$ dependence of the form factors.
0164    */
0165   vector<Energy> _polemass;
0166 
0167   /**
0168    *  The \f$\xi\f$ parameter for the form factors.
0169    */
0170   vector<double> _xi;
0171 
0172   /**
0173    *  The normalisation factor, \f$N_{mM}\f$, for the form factors.
0174    */
0175   vector<double> _nmM;
0176 
0177   /**
0178    *  The mass of the quark for the form factor.
0179    */
0180   vector<Energy> _mquark;
0181 
0182 };
0183 
0184 }
0185 
0186 #endif /* HERWIG_SingletonFormFactor_H */