Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef Herwig_FlatteResonance_H
0003 #define Herwig_FlatteResonance_H
0004 //
0005 // This is the declaration of the FlatteResonance class.
0006 //
0007 
0008 #include "DalitzResonance.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * The FlatteResonance class implements the Flatte line-shape for resonances in Dalitz decays.
0016  */
0017 class FlatteResonance: public DalitzResonance {
0018 
0019 public:
0020 
0021   /** @name Standard constructors and destructors. */
0022   //@{
0023   /**
0024    * The default constructor.
0025    */
0026   FlatteResonance() {}
0027 
0028   /**
0029    *  Constructor specifiying the parameters
0030    */
0031   FlatteResonance(long pid, ResonanceType::Type rtype, Energy m, Energy w,
0032           unsigned int d1, unsigned int d2, unsigned int s,
0033           double mag, double phi, InvEnergy rr, vector<Energy> f)
0034     : DalitzResonance(pid,rtype,m,w,d1,d2,s,mag,phi,rr),
0035       g_(f)
0036   {}
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   FlatteResonance & operator=(const FlatteResonance &) = delete;
0084 
0085 private:
0086    
0087   /**
0088    * Coupling for the width
0089    */
0090   vector<Energy> g_;
0091 
0092 };
0093 
0094 }
0095 
0096 #endif /* Herwig_FlatteResonance_H */