Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:05

0001 #ifndef HADRONS_PS_Library_ResonanceFlavour_H
0002 #define HADRONS_PS_Library_ResonanceFlavour_H
0003 
0004 #include "ATOOLS/Math/MathTools.H"
0005 #include "ATOOLS/Math/Histogram.H"
0006 
0007 namespace HADRONS {
0008    
0009   
0010 
0011   class SimpleResonanceFlavour {
0012 
0013     protected:
0014       std::string         m_name;
0015       double              m_mass, m_width, m_mass2;
0016 
0017     public:
0018       SimpleResonanceFlavour() {}
0019       SimpleResonanceFlavour( std::string name, double _mass, double _width );
0020       ~SimpleResonanceFlavour() {}
0021        
0022       double      Mass() { return m_mass; }
0023       double      Mass2() { return m_mass2; }
0024       double      Width() { return m_width; }
0025       double      MassWidth() { return m_mass*m_width; }
0026       std::string Name() { return m_name; }
0027   };
0028 
0029   class ResonanceFlavour : public SimpleResonanceFlavour {
0030 
0031     protected:
0032       kf_code    m_kfc;
0033       int                 m_running;
0034       ATOOLS::Histogram * p_hist;
0035       double              m_G_at_m2;
0036       int                 m_body;
0037 
0038       double TwoBodyResonanceMassWidth( double s, double m1, double m2 ); 
0039       double TwoBodyResonanceMassWidth( double s, double m ); 
0040       double TwoBodyResonanceMassWidth_12( double s, double m ); 
0041       double ThreeBodyResonanceMassWidth( double s );
0042 
0043       ATOOLS::Histogram * CreateGHistogram( ResonanceFlavour res1, ResonanceFlavour res2, double beta, kf_code out ); 
0044       double      GetValueOfG( double s ); 
0045       double      IntegralG( double Q2, ResonanceFlavour res1, ResonanceFlavour res2, double beta, kf_code out );
0046      
0047     public:
0048       static double Lambda( double a, double b, double c ); 
0049       static double Sqrt_Lambda( double a, double b, double c); 
0050     public:
0051       ResonanceFlavour() {}
0052       ResonanceFlavour( kf_code _kfc, double _mass, double _width, int _run );
0053       ~ResonanceFlavour() { if(p_hist) delete p_hist; }
0054 
0055       void        InitialiseThreeBodyResonance( ResonanceFlavour &res1, ResonanceFlavour &res2, double beta=0. );
0056       void        InitialiseThreeBodyResonance( ResonanceFlavour &res1 );
0057 
0058       Complex     BreitWigner( double s ); 
0059       Complex     BreitWignerAlt( double s ); 
0060       double      OffShellMassWidth( double s ); 
0061       int         Running() { return m_running; }
0062 
0063   };
0064 
0065 }
0066 
0067 #endif
0068