24 , _mOmega(other._mOmega)
25 , _GOmega(other._GOmega)
49 std::complex<double> invBW(m_w*m_w -
s, -m_w * gamma);
56 double gamma, gamma_r, gamma_w, rho, rho0, pstr, pstr0, pstrD;
57 double fr, fr0, fD, mD ,
m, spipi, mKK, m_r, m_w, mpi;
58 double alpha, beta, epsilon, delta ;
59 complex<double> bwr, bww;
61 spipi = spipi_in/(
GeV*
GeV);
78 double arg =
m*
m - 4.0*mpi*mpi;
80 pstr = sqrt (arg) / 2.0;
81 pstr0 = sqrt (m_r*m_r - 4.0 * mpi*mpi) / 2.0;
82 double arg2 = (mD*mD - (
m + mKK)*(
m + mKK)) *
83 (mD*mD - (
m - mKK)*(
m - mKK) );
84 if(arg2 < 0)
return 0;
86 pstrD = 1.0 / (2.0 * mD) * sqrt(arg2);
88 double arg3 = 1.0 - 4.* mpi*mpi /
m*
m;
89 if(arg3 < 0)
return 0;
91 rho0 = sqrt (1.0 - 4.* mpi*mpi / m_r*m_r);
93 fD = sqrt (pstrD/0.20) * sqrt (2.0/( pow(pstrD/0.20,2)+1.0));
94 fr = sqrt (pstr/0.20) * sqrt (2.0/( pow(pstr/0.20,2) +1.0));
95 fr0 = sqrt (pstr0/0.20) * sqrt (2.0/( pow(pstr0/0.20,2)+1.0));
97 gamma = gamma_r * (rho/rho0) * (fr/fr0)*(fr/fr0);
98 bwr = fD * m_r * (gamma_r / rho0) *
BW (
m*
m, m_r, gamma);
101 rho0 = sqrt (1.0 - 4.* mpi*mpi / m_w*m_w);
102 pstr0 = sqrt (m_w*m_w - 4.0 * mpi*mpi) / 2.0;
104 fr0 = sqrt (pstr0/0.20) * sqrt (2.0/( pow(pstr0/0.20, 2)+1.0));
106 gamma = gamma_w * (rho/rho0) * (fr/fr0)*(fr/fr0);
107 bww = fD * m_w * (gamma_w / rho0) *
BW (
m*
m,m_w,gamma);
108 bww = bww * (fr/fr0);
110 complex<double> cmplx_i(0,1);
111 complex<double> expIPhase(cos(beta + alpha), sin(beta + alpha));
112 complex<double> BWrho = sqrt (pstrD * pstr) *
113 (bwr + bww * epsilon * expIPhase *
114 delta * (m_r + m_w) / (m_w*m_w - m_r*m_r - cmplx_i *
115 (m_w * gamma_w - m_r * gamma_r)));
119 cout <<
"returning BWrho = " << BWrho
120 <<
" for spipi = " << spipi << endl;
virtual void resetInternals()
virtual void print(std::ostream &out=std::cout) const
std::complex< double > BW(double s, double m_w, double gamma) const
static double width(const std::string &name)
std::complex< double > AlbertosFunction(double sij)
bool setEventPtr(IDalitzEvent &evt) const
virtual ~CrystalBarrelFOCUS()
std::ostream & operator<<(std::ostream &out, const CrystalBarrelFOCUS &)
virtual void print(IDalitzEvent &evt, std::ostream &out=std::cout)
double GammaOmegaFixed() const
virtual double mumsRecoMass2() const
CrystalBarrelFOCUS(const AssociatedDecayTree &decay)
double GammaRhoFixed() const
virtual std::string name() const
static double mass(const std::string &name)
virtual std::complex< double > getVal(IDalitzEvent &evt)