1 /*******************************************************************************
2 * Project: BaBar detector at the SLAC PEP-II B-factory
4 * Author: Denis Dujmic, ddujmic@slac.stanford.edu
6 * Copyright (C) 2005 SLAC
7 *******************************************************************************/
12 #include "EvtGenBase/EvtComplex.hh"
13 #include "EvtGenBase/EvtLASSAmp.hh"
14 #include "EvtGenBase/EvtDalitzCoord.hh"
15 #include "EvtGenBase/EvtdFunction.hh"
16 #include "EvtGenBase/EvtCyclic3.hh"
18 using EvtCyclic3::Index;
19 using EvtCyclic3::Pair;
22 EvtLASSAmp::EvtLASSAmp(EvtDalitzPlot *dp,
23 EvtCyclic3::Pair pair,
25 double a, double r, double cutoff, std::string subtype) :
26 EvtAmplitude<EvtDalitzPoint>(),
36 double ma = dp->m( first(pair) );
37 double mb = dp->m( second(pair) );
38 double E0a = 0.5 * (_m0*_m0 + ma*ma - mb*mb) / _m0;
39 _q0 = E0a*E0a - ma*ma;
46 EvtLASSAmp::EvtLASSAmp(const EvtLASSAmp& other) :
47 EvtAmplitude<EvtDalitzPoint>(other),
54 _cutoff(other._cutoff),
55 _subtype(other._subtype)
58 _dalitzSpace = other._dalitzSpace;
62 EvtLASSAmp::~EvtLASSAmp() {}
67 EvtLASSAmp::amplitude(const EvtDalitzPoint &dalitzPoint) const {
71 Parameterization of Kpi S-wave using LASS scattering data.
72 - Nucl.Phys.B296, 493 (1988)
73 - W.Dunwoodie,http://www.slac.stanford.edu/~wmd/kpi_swave/kpi_swave_fit.note
76 ----------------- + exp(2*i*delta) * --------------------------------
77 q*cot(delta)-i*q m0^2-m^2 - i*m0*Gamma0*q/m*m0/q0
80 where q = momentum of K or pi in Kpi system
82 q*cot(delta) = 1/ a + 1/2 * [ r * q**2 ]
90 double s = dalitzPoint.q(_pair);
92 double q = dalitzPoint.p(first(_pair), _pair);
95 double qcotd = 1./_a + 0.5*_r*q*q;
96 EvtComplex lass_elastic = m<_cutoff ? m / ( qcotd - EvtComplex(0,q) ) : 0;
102 cosd = qcotd*qcotd/(q*q);
103 cosd = sqrt( cosd/(1+cosd) );
104 sind = sqrt( 1-cosd*cosd );
106 EvtComplex lass_phase( cosd, sind);
107 lass_phase *= lass_phase;
110 double gamma = _g0 * q/m * _m0/_q0;
111 EvtComplex lass_Kstar = (_m0*_m0)*(_g0/_q0)/(_m0*_m0-m*m-EvtComplex(0.,_m0*gamma));
113 EvtComplex theAmplitude(0.0, 0.0);
115 if (_subtype == "LASS_ELASTIC") {
117 theAmplitude = lass_elastic;
119 } else if (_subtype == "LASS_RESONANT") {
121 theAmplitude = lass_phase * lass_Kstar;
125 theAmplitude = lass_phase * lass_Kstar + lass_elastic;