]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenBase/EvtLASSAmp.cxx
o updates to fix the 11a pass4 problem of T0 (Alla)
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtLASSAmp.cxx
CommitLineData
da0e9ce3 1#include "EvtGenBase/EvtPatches.hh"
2/*******************************************************************************
3 * Project: BaBar detector at the SLAC PEP-II B-factory
4 * Package: EvtGenBase
5 * Author: Denis Dujmic, ddujmic@slac.stanford.edu
6 *
7 * Copyright (C) 2005 SLAC
8 *******************************************************************************/
9
10#include <assert.h>
11#include <math.h>
12#include <iostream>
13#include "EvtGenBase/EvtComplex.hh"
14#include "EvtGenBase/EvtLASSAmp.hh"
15#include "EvtGenBase/EvtDalitzCoord.hh"
16#include "EvtGenBase/EvtdFunction.hh"
17#include "EvtGenBase/EvtCyclic3.hh"
18using std::endl;
19using EvtCyclic3::Index;
20using EvtCyclic3::Pair;
21
22
23EvtLASSAmp::EvtLASSAmp(EvtDalitzPlot *dp,
24 EvtCyclic3::Pair pair,
25 double m0, double g0,
26 double a, double r, double cutoff) :
27 EvtAmplitude<EvtDalitzPoint>(),
28 _pair(pair),
29 _m0(m0),
30 _g0(g0),
31 _r(r),
32 _a(a),
33 _cutoff(cutoff)
34{
35 _dalitzSpace = dp;
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;
40 assert(_q0>0);
41 _q0 = sqrt(_q0);
42}
43
44
45
46EvtLASSAmp::EvtLASSAmp(const EvtLASSAmp& other) :
47 EvtAmplitude<EvtDalitzPoint>(other),
48 _pair(other._pair),
49 _m0(other._m0),
50 _g0(other._g0),
51 _q0(other._q0),
52 _r(other._r),
53 _a(other._a),
54 _cutoff(other._cutoff)
55{
56 _dalitzSpace = other._dalitzSpace;
57}
58
59
60EvtLASSAmp::~EvtLASSAmp() {}
61
62
63
64EvtComplex
65EvtLASSAmp::amplitude(const EvtDalitzPoint &dalitzPoint) const {
66
67 /*
68
69 Parameterization of Kpi S-wave using LASS scattering data.
70 - Nucl.Phys.B296, 493 (1988)
71 - W.Dunwoodie,http://www.slac.stanford.edu/~wmd/kpi_swave/kpi_swave_fit.note
72
73 m m0^2*Gamma0/q0
74 ----------------- + exp(2*i*delta) * --------------------------------
75 q*cot(delta)-i*q m0^2-m^2 - i*m0*Gamma0*q/m*m0/q0
76
77
78 where q = momentum of K or pi in Kpi system
79
80 q*cot(delta) = 1/ a + 1/2 * [ r * q**2 ]
81
82 a = scattering length
83
84 r = effective range
85
86 */
87
88 double s = dalitzPoint.q(_pair);
89 double m = sqrt(s);
90 double q = dalitzPoint.p(first(_pair), _pair);
91
92 // elastic scattering
93 double qcotd = 1./_a + 0.5*_r*q*q;
94 EvtComplex lass_elastic = m<_cutoff ? m / ( qcotd - EvtComplex(0,q) ) : 0;
95
96 // relative phase
97 double cosd=1;
98 double sind=0;
99 if (q>0) {
100 cosd = qcotd*qcotd/(q*q);
101 cosd = sqrt( cosd/(1+cosd) );
102 sind = sqrt( 1-cosd*cosd );
103 }
104 EvtComplex lass_phase( cosd, sind);
105 lass_phase *= lass_phase;
106
107 // K*(1430)
108 double gamma = _g0 * q/m * _m0/_q0;
109 EvtComplex lass_Kstar = (_m0*_m0)*(_g0/_q0)/(_m0*_m0-m*m-EvtComplex(0.,_m0*gamma));
110
111 return lass_elastic + lass_phase * lass_Kstar;
112}