MINT2
Bugg_BW.cpp
Go to the documentation of this file.
1 #include "Mint/Bugg_BW.h"
3 #include "TMath.h"
4 #include "TCanvas.h"
5 #include "TH2D.h"
6 #include "Mint/Utils.h"
7 #include "Mint/DalitzEventList.h"
9 #include <cmath>
10 #include <complex>
11 
12 using namespace std;
13 using namespace MINT;
14 
15 std::complex<double> Bugg_BW::BreitWigner(){
16 
17  double s= mumsRecoMass2()/(GeV*GeV);
18 
19  // double num = M() * Gamma_2pi(s); //only for elastic scattering, not production
20  complex<double> den = M() * M() - s
21  - g_1_square(s) * (s - sA() * _m_pi * _m_pi)/(M() * M() - sA() * _m_pi * _m_pi)*z(s)- complex<double>(0,1) * M() * Gamma_tot(s);
22 
23  return 1./den;
24 }
25 
26 double Bugg_BW::Gamma_2pi(double s){
27  return g_1_square(s)/M() * (s -sA()*_m_pi*_m_pi)/(M()*M() -sA()*_m_pi*_m_pi)*rho_2(s,_m_pi).real();
28 }
29 
30 double Bugg_BW::g_1_square(double s){
31  return M()*(b1()+b2()*s)*exp(-(s-M()*M())/A());
32 }
33 
34 double Bugg_BW::j1(double s){
35 
36  double rho_pipi = rho_2(s,_m_pi).real();
37  double returnVal = 2.;
38  if(rho_pipi>0.)returnVal += rho_pipi * log((1.-rho_pipi)/(1.+rho_pipi));
39 
40  return returnVal/TMath::Pi();
41 }
42 
43 double Bugg_BW::z(double s){
44  return j1(s)-j1(M()*M());
45 }
46 
47 
48 std::complex<double> Bugg_BW::Gamma_2K(double s){
49  return g_KK()*g_1_square(s)*s/(M()*M()*M())*exp(-alpha()*sqrt((s-4.*_m_K*_m_K)*(s-4.*_m_K*_m_K))) * rho_2(s,_m_K);
50 }
51 
52 std::complex<double> Bugg_BW::Gamma_2eta(double s){
53  return g_etaeta() *g_1_square(s)*s/(M()*M()*M())*exp(-alpha()*sqrt((s-4.*_m_eta*_m_eta)*(s-4.*_m_eta*_m_eta))) * rho_2(s,_m_eta);
54 }
55 
56 double Bugg_BW::Gamma_4pi(double s){
57  if(s < 16. * _m_pi*_m_pi) return 0;
58  return g_4pi() * rho_4(s)/rho_4(M()*M());
59 }
60 
61 std::complex<double> Bugg_BW::rho_2(double s, double m){
62  double rho_squared = 1.- 4. * m*m /s;
63  if(rho_squared >= 0)return sqrt(rho_squared);
64  else return complex<double>(0,1)*sqrt(-rho_squared);
65 }
66 
67 double Bugg_BW::rho_4(double s){
68  return 1./(1.+exp(lambda()*(s0()-s)));
69 }
70 
71 
72 //
double Gamma_4pi(double s)
Definition: Bugg_BW.cpp:56
std::complex< double > Gamma_2K(double s)
Definition: Bugg_BW.cpp:48
double rho_4(double s)
Definition: Bugg_BW.cpp:67
std::complex< double > rho_2(double s, double m)
Definition: Bugg_BW.cpp:61
std::complex< double > Gamma_2eta(double s)
Definition: Bugg_BW.cpp:52
static const double s
virtual std::complex< double > BreitWigner()
Definition: Bugg_BW.cpp:15
static const double m
static const double GeV
double Gamma_2pi(double s)
Definition: Bugg_BW.cpp:26
double z(double s)
Definition: Bugg_BW.cpp:43
double lambda(double x, double y, double z)
Definition: lambda.h:8
double g_1_square(double s)
Definition: Bugg_BW.cpp:30
double j1(double s)
Definition: Bugg_BW.cpp:34