37 {
38
40 {
42 << " ERROR: EvtHypNonLepton generator expected 2 or 3 arguments but found: "
44 report(
INFO,
"EvtGen" ) <<
" 1. Decay asymmetry parameter - alpha" << std::endl;
45 report(
INFO,
"EvtGen" ) <<
" 2. Parameter phi - in degrees (not radians)" << std::endl;
46 report(
INFO,
"EvtGen" ) <<
" 3. Note on every x-th decay" << std::endl;
47 ::abort();
48 }
49
51 {
53 <<
" ERROR: EvtHypNonLepton generator expected 2 daughters but found: " <<
getNDaug()
54 << std::endl;
55 ::abort();
56 }
57
58
60 {
62 << " ERROR: EvtHypNonLepton generator expected dirac parent particle, but found "
64 << " spin degrees of freedom" << std::endl;
65 ::abort();
66 }
68 {
69 report(
ERROR,
"EvtGen" ) <<
" ERROR: EvtHypNonLepton generator expected the first child "
70 "to be dirac particle, but found "
72 << " spin degrees of freedom" << std::endl;
73 ::abort();
74 }
76 {
77 report(
ERROR,
"EvtGen" ) <<
" ERROR: EvtHypNonLepton generator expected the second child "
78 "to be scalar particle, but found "
80 << " spin degrees of freedom" << std::endl;
81 ::abort();
82 }
83
84
87 if (
getNArg() == 3 ) m_noTries =
static_cast<long>(
getArg( 2 ) );
88 else m_noTries = 0;
89
90
92 double p_to_s, beta, delta, gamma;
93
97
99 {
100 report(
ERROR,
"EvtGen" ) <<
" ERROR: EvtHypNonLepton found impossible decay: " << M
101 <<
" --> " <<
m1 <<
" + " <<
m2 <<
" GeV\n"
102 << std::endl;
103 ::abort();
104 }
105
106 p = sqrt( M * M - (
m1 +
m2 ) * (
m1 +
m2 ) ) * sqrt( M * M - (
m1 -
m2 ) * (
m1 -
m2 ) ) /
107 2. / M;
108
109 beta = sqrt( 1. - m_alpha * m_alpha ) *
sin( m_phi );
110 delta = -atan2( beta, m_alpha );
111 gamma = sqrt( 1. - m_alpha * m_alpha - beta * beta );
112 p_to_s = sqrt( ( 1. - gamma ) / ( 1. + gamma ) );
113
114 m_B_to_A =
115 p_to_s * (
m1 + sqrt( p * p +
m1 *
m1 ) ) / p * EvtComplex(
cos( delta ),
sin( delta ) );
116}
double sin(const BesAngle a)
double cos(const BesAngle a)
static EvtSpinType::spintype getSpinType(EvtId i)
static double getMass(EvtId i)
static int getSpin2(spintype stype)