Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef Herwig_PiPiI2_H
0003 #define Herwig_PiPiI2_H
0004 //
0005 // This is the declaration of the PiPiI2 class.
0006 //
0007 
0008 #include "DalitzResonance.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * The PiPiI2 class provides an implementation of the \f$I=2\f$ s-eave for \f$\pi\pi\f$.
0016  */
0017 class PiPiI2: public DalitzResonance {
0018 
0019 public:
0020 
0021   /** @name Standard constructors and destructors. */
0022   //@{
0023   /**
0024    * The default constructor.
0025    */
0026   PiPiI2() {};
0027 
0028   /**
0029    *  Constructor specifiying the parameters
0030    */
0031   PiPiI2(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,
0034      InvEnergy a, InvEnergy2 b, InvEnergy4 c, InvEnergy6 d,
0035      Energy mmin, Energy mmax, double deta)
0036     : DalitzResonance(pid,rtype,m,w,d1,d2,s,mag,phi,rr),
0037       a_(a),b_(b),c_(c),d_(d),
0038       mmin_(mmin), mmax_(mmax), deltaEta_(deta)
0039   {}
0040 
0041 public:
0042 
0043   /**
0044    *  Return the Breit-Wigner times the form factor
0045    */
0046   virtual Complex BreitWigner(const Energy & mAB, const Energy & mA, const Energy & mB) const;
0047 
0048   /**
0049    *  Output the parameters
0050    */
0051   virtual void dataBaseOutput(ofstream & output);
0052 
0053 public:
0054 
0055   /** @name Functions used by the persistent I/O system. */
0056   //@{
0057   /**
0058    * Function used to write out object persistently.
0059    * @param os the persistent output stream written to.
0060    */
0061   void persistentOutput(PersistentOStream & os) const;
0062 
0063   /**
0064    * Function used to read in object persistently.
0065    * @param is the persistent input stream read from.
0066    * @param version the version number of the object when written.
0067    */
0068   void persistentInput(PersistentIStream & is, int version);
0069   //@}
0070 
0071   /**
0072    * The standard Init function used to initialize the interfaces.
0073    * Called exactly once for each class by the class description system
0074    * before the main function starts or
0075    * when this class is dynamically loaded.
0076    */
0077   static void Init();
0078 
0079 private:
0080 
0081   /**
0082    * The assignment operator is private and must never be called.
0083    * In fact, it should not even be implemented.
0084    */
0085   PiPiI2 & operator=(const PiPiI2 &) = delete;
0086 
0087 private :
0088 
0089   /**
0090    *  Parameters for \f$\delta^2_0\f$
0091    */
0092   //@{
0093   /**
0094    *  Parameter \f$a\f$
0095    */
0096   InvEnergy a_;
0097   
0098   /**
0099    *  Parameter \f$b\f$
0100    */
0101   InvEnergy2 b_;
0102   
0103   /**
0104    *  Parameter \f$c\f$
0105    */
0106   InvEnergy4 c_;
0107   
0108   /**
0109    *  Parameter \f$d\f$
0110    */
0111   InvEnergy6 d_;
0112   //@}
0113 
0114   /**
0115    *  Parameters for \f$\eta^_0\f$
0116    */
0117   //@{
0118   /**
0119    *  Minimum mass
0120    */
0121   Energy mmin_;
0122   
0123   /**
0124    *  Maximum mass
0125    */
0126   Energy mmax_;
0127 
0128   /**
0129    *   \f$\Delta\eta\f$ 
0130    */
0131   double deltaEta_;
0132   //@}
0133 };
0134 
0135 }
0136 
0137 #endif /* Herwig_PiPiI2_H */