74 {
75
76
79
81 EvtId other_b;
82 EvtId daugs[2];
83
84
85 int flip = ( ( p->
getId() == B0 ) ? 0 : 1 );
89
91
92 EvtComplex amp;
94 EvtComplex ePlusIPhi(
cos( _phickm ),
sin( _phickm ) );
95 EvtComplex eMinusIPhi(
cos( -_phickm ), -
sin( _phickm ) );
96
97
98
99
100 if ( !flip )
101 {
102 if ( other_b == B0B )
103 {
104
105 amp =
cos( dmt2 ) * _A_f + eMinusIPhi * EvtComplex( 0.0,
sin( dmt2 ) ) * _Abar_f;
106 }
107 if ( other_b == B0 )
108 {
109
110 amp = ePlusIPhi * EvtComplex( 0.0,
sin( dmt2 ) ) * _A_f +
cos( dmt2 ) * _Abar_f;
111 }
112 }
113 else
114 {
115 if ( other_b == B0B )
116 {
117
118 amp =
cos( dmt2 ) * _A_fbar + eMinusIPhi * EvtComplex( 0.0,
sin( dmt2 ) ) * _Abar_fbar;
119 }
120 if ( other_b == B0 )
121 {
122
123 amp = ePlusIPhi * EvtComplex( 0.0,
sin( dmt2 ) ) * _A_fbar +
cos( dmt2 ) * _Abar_fbar;
124 }
125 }
126
129
132 EvtVector4R p4_parent = momv + moms;
133
135
136 vertex( 0, amp * norm * p4_parent * (
v->epsParent( 0 ) ) );
137 vertex( 1, amp * norm * p4_parent * (
v->epsParent( 1 ) ) );
138 vertex( 2, amp * norm * p4_parent * (
v->epsParent( 2 ) ) );
139
140 return;
141}
double sin(const BesAngle a)
double cos(const BesAngle a)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
void vertex(const EvtComplex &)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)