59 _isRBWmodel = !
getArg( 4 );
64 <<
"Number of arguments for this model must be 0, 2, 4 or 5:" << std::endl
65 <<
"[ x y ][ qp.re qp.im ][ doK-matrix ]" << std::endl
66 <<
"Check your dec file." << std::endl;
81 for (
int index = 0; index < 3; index++ ) dau[index] =
getDaug( index );
84 for (
int index = 0; index < 3; index++ )
85 if ( ( dau[index] == _K0B ) || ( dau[index] == _KS ) || ( dau[index] == _KL ) )
87 else if ( ( dau[index] == _PIP ) || ( dau[index] == _KP ) ) _d2 = index;
88 else if ( ( dau[index] == _PIM ) || ( dau[index] == _KM ) ) _d3 = index;
89 else reportInvalidAndExit();
90 else if ( parId == _D0B )
91 for (
int index = 0; index < 3; index++ )
92 if ( ( dau[index] == _K0 ) || ( dau[index] == _KS ) || ( dau[index] == _KL ) )
94 else if ( ( dau[index] == _PIM ) || ( dau[index] == _KM ) ) _d2 = index;
95 else if ( ( dau[index] == _PIP ) || ( dau[index] == _KP ) ) _d3 = index;
96 else reportInvalidAndExit();
97 else reportInvalidAndExit();
101 if ( dau[_d2] == _PIP || dau[_d2] == _PIM ) _isKsPiPi =
true;
112 double m2AB = ( pA + pB ).mass2();
113 double m2AC = ( pA + pC ).mass2();
114 double m2BC = ( pB + pC ).mass2();
125 ampDalitz = dalitzKsPiPi( point );
126 ampAntiDalitz = dalitzKsPiPi( antiPoint );
133 ampDalitz = dalitzKsKK( point );
134 ampAntiDalitz = dalitzKsKK( antiPoint );
145 EvtComplex barAOverA = ampAntiDalitz / ampDalitz;
156 ( ( 1. + chi ) * h1( gt ) + ( 1. - chi ) * h2( gt ) );
163void EvtD0mixDalitz::readPDGValues() {
215 static const EvtDalitzPlot plot( _mKs, _mPi, _mPi, _mD0 );
223 static EvtDalitzReso KStarm( plot, _BC, _AC, _VECTOR, 0.893606, 0.0463407, _RBW );
224 static EvtDalitzReso KStarp( plot, _BC, _AB, _VECTOR, 0.893606, 0.0463407, _RBW );
225 static EvtDalitzReso rho0( plot, _AC, _BC, _VECTOR, 0.7758, 0.1464, _GS );
226 static EvtDalitzReso omega( plot, _AC, _BC, _VECTOR, 0.78259, 0.00849, _RBW );
227 static EvtDalitzReso f0_980( plot, _AC, _BC, _SCALAR, 0.975, 0.044, _RBW );
228 static EvtDalitzReso f0_1370( plot, _AC, _BC, _SCALAR, 1.434, 0.173, _RBW );
229 static EvtDalitzReso f2_1270( plot, _AC, _BC, _TENSOR, 1.2754, 0.1851, _RBW );
230 static EvtDalitzReso K0Starm_1430( plot, _BC, _AC, _SCALAR, 1.459, 0.175, _RBW );
231 static EvtDalitzReso K0Starp_1430( plot, _BC, _AB, _SCALAR, 1.459, 0.175, _RBW );
232 static EvtDalitzReso K2Starm_1430( plot, _BC, _AC, _TENSOR, 1.4256, 0.0985, _RBW );
233 static EvtDalitzReso K2Starp_1430( plot, _BC, _AB, _TENSOR, 1.4256, 0.0985, _RBW );
234 static EvtDalitzReso sigma( plot, _AC, _BC, _SCALAR, 0.527699, 0.511861, _RBW );
235 static EvtDalitzReso sigma2( plot, _AC, _BC, _SCALAR, 1.03327, 0.0987890, _RBW );
236 static EvtDalitzReso KStarm_1680( plot, _BC, _AC, _VECTOR, 1.677, 0.205, _RBW );
239 amp += EvtComplex( .848984, .893618 );
240 amp += EvtComplex( -1.16356, 1.19933 ) * KStarm.evaluate( point );
241 amp += EvtComplex( .106051, -.118513 ) * KStarp.evaluate( point );
242 amp += EvtComplex( 1.0, 0.0 ) * rho0.evaluate( point );
243 amp += EvtComplex( -.0249569, .0388072 ) * omega.evaluate( point );
244 amp += EvtComplex( -.423586, -.236099 ) * f0_980.evaluate( point );
245 amp += EvtComplex( -2.16486, 3.62385 ) * f0_1370.evaluate( point );
246 amp += EvtComplex( .217748, -.133327 ) * f2_1270.evaluate( point );
247 amp += EvtComplex( 1.62128, 1.06816 ) * K0Starm_1430.evaluate( point );
248 amp += EvtComplex( .148802, .0897144 ) * K0Starp_1430.evaluate( point );
249 amp += EvtComplex( 1.15489, -.773363 ) * K2Starm_1430.evaluate( point );
250 amp += EvtComplex( .140865, -.165378 ) * K2Starp_1430.evaluate( point );
251 amp += EvtComplex( -1.55556, -.931685 ) * sigma.evaluate( point );
252 amp += EvtComplex( -.273791, -.0535596 ) * sigma2.evaluate( point );
253 amp += EvtComplex( -1.69720, .128038 ) * KStarm_1680.evaluate( point );
259 static EvtDalitzReso KStarm( plot, _BC, _AC, _VECTOR, 0.893619, 0.0466508, _RBW );
260 static EvtDalitzReso KStarp( plot, _BC, _AB, _VECTOR, 0.893619, 0.0466508, _RBW );
261 static EvtDalitzReso rho0( plot, _AC, _BC, _VECTOR, 0.7758, 0.1464, _GS );
262 static EvtDalitzReso omega( plot, _AC, _BC, _VECTOR, 0.78259, 0.00849, _RBW );
263 static EvtDalitzReso f2_1270( plot, _AC, _BC, _TENSOR, 1.2754, 0.1851, _RBW );
264 static EvtDalitzReso K0Starm_1430( plot, _AC, 1.46312, 0.232393, 1.0746, -1.83214, .803516,
265 2.32788, 1., -5.31306 );
266 static EvtDalitzReso K0Starp_1430( plot, _AB, 1.46312, 0.232393, 1.0746, -1.83214, .803516,
267 2.32788, 1., -5.31306 );
268 static EvtDalitzReso K2Starm_1430( plot, _BC, _AC, _TENSOR, 1.4256, 0.0985, _RBW );
269 static EvtDalitzReso K2Starp_1430( plot, _BC, _AB, _TENSOR, 1.4256, 0.0985, _RBW );
270 static EvtDalitzReso KStarm_1680( plot, _BC, _AC, _VECTOR, 1.677, 0.205, _RBW );
273 static EvtComplex fr12( 1.87981, -.628378 );
274 static EvtComplex fr13( 4.3242, 2.75019 );
275 static EvtComplex fr14( 3.22336, .271048 );
276 static EvtComplex fr15( .0, .0 );
277 static EvtDalitzReso Pole1( plot, _BC,
"Pole1", _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
278 static EvtDalitzReso Pole2( plot, _BC,
"Pole2", _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
279 static EvtDalitzReso Pole3( plot, _BC,
"Pole3", _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
280 static EvtDalitzReso Pole4( plot, _BC,
"Pole4", _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
281 static EvtDalitzReso kmatrix( plot, _BC,
"f11prod", _KMAT, fr12, fr13, fr14, fr15,
285 amp += EvtComplex( -1.31394, 1.14072 ) * KStarm.evaluate( point );
286 amp += EvtComplex( .116239, -.107287 ) * KStarp.evaluate( point );
287 amp += EvtComplex( 1.0, 0.0 ) * rho0.evaluate( point );
288 amp += EvtComplex( -.0313343, .0424013 ) * omega.evaluate( point );
289 amp += EvtComplex( .559412, -.232336 ) * f2_1270.evaluate( point );
290 amp += EvtComplex( 7.35400, -3.67637 ) * K0Starm_1430.evaluate( point );
291 amp += EvtComplex( .255913, -.190459 ) * K0Starp_1430.evaluate( point );
292 amp += EvtComplex( 1.05397, -.936297 ) * K2Starm_1430.evaluate( point );
293 amp += EvtComplex( -.00760136, -.0908624 ) * K2Starp_1430.evaluate( point );
294 amp += EvtComplex( -1.45336, -.164494 ) * KStarm_1680.evaluate( point );
295 amp += EvtComplex( -1.81830, 9.10680 ) * Pole1.evaluate( point );
296 amp += EvtComplex( 10.1751, 3.87961 ) * Pole2.evaluate( point );
297 amp += EvtComplex( 23.6569, -4.94551 ) * Pole3.evaluate( point );
298 amp += EvtComplex( .0725431, -9.16264 ) * Pole4.evaluate( point );
299 amp += EvtComplex( -2.19449, -7.62666 ) * kmatrix.evaluate( point );
308 static const EvtDalitzPlot plot( _mKs, _mK, _mK, _mD0 );
311 static EvtDalitzReso a00_980( plot, _AC, _BC, _SCALAR, 0.999, _RBW, .550173, .324, _EtaPic );
312 static EvtDalitzReso phi( plot, _AC, _BC, _VECTOR, 1.01943, .00459319, _RBW );
313 static EvtDalitzReso a0p_980( plot, _AC, _AB, _SCALAR, 0.999, _RBW, .550173, .324, _EtaPic );
314 static EvtDalitzReso f0_1370( plot, _AC, _BC, _SCALAR, 1.350, .265, _RBW );
315 static EvtDalitzReso a0m_980( plot, _AB, _AC, _SCALAR, 0.999, _RBW, .550173, .324, _EtaPic );
316 static EvtDalitzReso f0_980( plot, _AC, _BC, _SCALAR, 0.965, _RBW, .695, .165, _PicPicKK );
317 static EvtDalitzReso f2_1270( plot, _AC, _BC, _TENSOR, 1.2754, .1851, _RBW );
318 static EvtDalitzReso a00_1450( plot, _AC, _BC, _SCALAR, 1.474, .265, _RBW );
319 static EvtDalitzReso a0p_1450( plot, _AC, _AB, _SCALAR, 1.474, .265, _RBW );
320 static EvtDalitzReso a0m_1450( plot, _AB, _AC, _SCALAR, 1.474, .265, _RBW );
323 EvtComplex amp( 0., 0. );
324 amp += EvtComplex( 1.0, 0.0 ) * a00_980.evaluate( point );
325 amp += EvtComplex( -.126314, .188701 ) * phi.evaluate( point );
326 amp += EvtComplex( -.561428, .0135338 ) * a0p_980.evaluate( point );
327 amp += EvtComplex( .035, -.00110488 ) * f0_1370.evaluate( point );
328 amp += EvtComplex( -.0872735, .0791190 ) * a0m_980.evaluate( point );
329 amp += EvtComplex( 0., 0. ) * f0_980.evaluate( point );
330 amp += EvtComplex( .257341, -.0408343 ) * f2_1270.evaluate( point );
331 amp += EvtComplex( -.0614342, -.649930 ) * a00_1450.evaluate( point );
332 amp += EvtComplex( -.104629, .830120 ) * a0p_1450.evaluate( point );
333 amp += EvtComplex( 0., 0. ) * a0m_1450.evaluate( point );
341EvtComplex EvtD0mixDalitz::h1(
const double& gt )
const {
342 return exp( -EvtComplex( _y, _x ) * gt / 2. );
345EvtComplex EvtD0mixDalitz::h2(
const double& gt )
const {
346 return exp( EvtComplex( _y, _x ) * gt / 2. );
EvtComplex exp(const EvtComplex &c)
ostream & report(Severity severity, const char *facility)
void decay(EvtParticle *p)
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
static double getMass(EvtId i)
static EvtId getId(const std::string &name)
static double getctau(EvtId i)
const EvtVector4R & getP4() const
void setLifetime(double tau)
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
static double Flat(double min, double max)