Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef Herwig_DalitzLASS_H
0003 #define Herwig_DalitzLASS_H
0004 //
0005 // This is the declaration of the DalitzLASS class.
0006 //
0007 
0008 #include "DalitzResonance.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * The DalitzLASS class implements the LASS parametrization of the \f$K\pi\f$ s-wave
0016  */
0017 class DalitzLASS: public DalitzResonance {
0018 
0019 public:
0020 
0021   /**
0022    * The default constructor.
0023    */
0024   DalitzLASS() {}
0025 
0026   /**
0027    *  Constructor specifiying the parameters
0028    */
0029   DalitzLASS(long pid, ResonanceType::Type rtype, Energy m, Energy w,
0030          unsigned int d1, unsigned int d2, unsigned int s,
0031          double mag, double phi, InvEnergy rr, unsigned int iopt,
0032          double FNR, double phiNR, double Fres, double phiRes,
0033          InvEnergy aScat, InvEnergy rEff)
0034     : DalitzResonance(pid,rtype,m,w,d1,d2,s,mag,phi,rr), opt_(iopt),
0035       FNR_(FNR), phiNR_(phiNR), FRes_(Fres), phiRes_(phiRes),
0036       aScat_(aScat), rEff_(rEff)
0037   {}
0038 
0039 public:
0040 
0041   /**
0042    *  Return the Breit-Wigner times the form factor
0043    */
0044   virtual Complex BreitWigner(const Energy & mAB, const Energy & mA, const Energy & mB) const;
0045 
0046   /**
0047    *  Output the parameters
0048    */
0049   virtual void dataBaseOutput(ofstream & output);
0050 
0051 public:
0052 
0053   /** @name Functions used by the persistent I/O system. */
0054   //@{
0055   /**
0056    * Function used to write out object persistently.
0057    * @param os the persistent output stream written to.
0058    */
0059   void persistentOutput(PersistentOStream & os) const;
0060 
0061   /**
0062    * Function used to read in object persistently.
0063    * @param is the persistent input stream read from.
0064    * @param version the version number of the object when written.
0065    */
0066   void persistentInput(PersistentIStream & is, int version);
0067   //@}
0068 
0069   /**
0070    * The standard Init function used to initialize the interfaces.
0071    * Called exactly once for each class by the class description system
0072    * before the main function starts or
0073    * when this class is dynamically loaded.
0074    */
0075   static void Init();
0076 
0077 private:
0078 
0079   /**
0080    * The assignment operator is private and must never be called.
0081    * In fact, it should not even be implemented.
0082    */
0083   DalitzLASS & operator=(const DalitzLASS &) = delete;
0084 
0085 private:
0086 
0087   /**
0088    *  Option for the form of the function
0089    */
0090   unsigned int opt_;
0091 
0092   /**
0093    *  Parameters
0094    */
0095   //@{
0096   /**
0097    *  Non-resonant magnitude
0098    */
0099   double FNR_;
0100 
0101   /**
0102    *  Non-resonant phase
0103    */
0104   double phiNR_;
0105 
0106   /**
0107    *  Resonant magnitude
0108    */
0109   double FRes_;
0110 
0111   /**
0112    *  Resonant phase
0113    */
0114   double phiRes_;
0115 
0116   /**
0117    * Scattering length
0118    */
0119   InvEnergy aScat_;
0120 
0121   /**
0122    * Effective interaction range
0123    */
0124   InvEnergy rEff_;
0125   //@}
0126 
0127 };
0128 
0129 }
0130 
0131 #endif /* Herwig_DalitzLASS_H */