Init function.
379{
380
381
382 const unsigned short int narg(1);
383 if (getNArg() != narg) {
384 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "EvtPHSPBMix generator expected "
385 << " " << narg
386 << " argument(s) (delta m) but found:"
387 << getNArg() << endl;
388 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Will terminate execution!" << endl;
389 ::abort();
390 }
391
392
393
394
395
396
397
398 checkNDaug(4, 5);
399
400
401 bool BBpipi(getNDaug() == 5);
402
403 if (!(EvtPDL::chargeConj(getDaug(0)) == getDaug(getNDaug() - 1))) {
404 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "EvtPHSPBMix generator expected two first particles "
405 << "to be charge conjugate." << endl
406 << " Found " << EvtPDL::name(getDaug(0)).c_str()
407 << "," << EvtPDL::name(getDaug(getNDaug() - 1)).c_str() << endl;
408 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Will terminate execution!" << endl;
409 ::abort();
410 }
411
412
413 _freq = getArg(0) / EvtConst::c;
414
415
416
417 double tau = 1e12 * EvtPDL::getctau(getDaug(0)) / EvtConst::c;
418 double dm = 1e-12 * getArg(0);
419 double x = dm * tau;
420
421 std::ostringstream sss;
422 sss << " " << EvtPDL::name(getParentId()).c_str() << " --> "
423 << EvtPDL::name(getDaug(0)).c_str() << " + "
424 << EvtPDL::name(getDaug(1)).c_str();
425 sss << " + " << EvtPDL::name(getDaug(2)).c_str();
426 if (BBpipi)
427 sss << " + " << EvtPDL::name(getDaug(3)).c_str();
428
429 EvtGenReport(EVTGEN_INFO, "EvtGen") << "PHSP_B_MIX will generate mixing :"
430 << endl << endl
431 << sss.str() << endl << endl
432 << "using parameters:" << endl << endl
433 << " delta(m) = " << dm << " hbar/ps" << endl
434 <<
" _freq = " <<
_freq <<
" hbar/mm" << endl
435 << " dgog = " << 0 << endl
436 << " dGamma = " << 0 << " hbar/mm" << endl
437 << " q/p = " << 1 << endl
438 << " tau = " << tau << " ps" << endl
439 << " x = " << x << endl
440 << endl;
441
442}