61 {
62
65
67 EvtId other_b;
68
70
71 EvtComplex G1P, G1M, G1_T_even, G1_T_odd;
72
74
79
80 G1_T_even = ( G1P + G1M ) / sqrt( 2.0 );
81 G1_T_odd = ( G1P - G1M ) / sqrt( 2.0 );
82
84
87
88 EvtComplex cG1_T_even, cG1_T_odd;
89
90 if ( other_b == B0B )
91 {
92 cG1_T_even = G1_T_even * ( cdmt + lambda_km * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
93 cG1_T_odd = G1_T_odd * ( cdmt - lambda_km * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
94 }
95 if ( other_b == B0 )
96 {
97 cG1_T_even =
98 G1_T_even * ( cdmt + ( 1.0 / lambda_km ) * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
99 cG1_T_odd =
100 -G1_T_odd * ( cdmt - ( 1.0 / lambda_km ) * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
101 }
102
103 EvtComplex hp, hm, h0;
104
105
106
107
108 hm = ( cG1_T_even - cG1_T_odd ) / sqrt( 2.0 );
109 hp = ( cG1_T_even + cG1_T_odd ) / sqrt( 2.0 );
110 h0 = EvtComplex( 0.0, 0.0 );
111
112 EvtParticle *v1, *ph;
113
117 EvtVector4R momv1 = v1->
getP4();
118 EvtVector4R momph = ph->
getP4();
119
120 EvtTensor4C d, g;
121
122 g.
setdiag( 1.0, -1.0, -1.0, -1.0 );
123
125
126 v = momv1 / momv1.
d3mag();
127 vp = ( momv1 + momph ) / ( momv1 + momph ).
mass();
128
129 d = ( ( 1.0 / sqrt( 3.0 ) ) * ( h0 - ( hp + hm ) ) * ( -1.0 / sqrt( 3.0 ) ) ) * g +
130 ( ( 1.0 / sqrt( 2.0 ) ) * ( hp - hm ) * EvtComplex( 0.0, 1.0 ) *
131 ( sqrt( 1.0 / 2.0 ) ) ) *
133 ( sqrt( 2.0 / 3.0 ) * ( h0 + 0.5 * ( hp + hm ) ) * sqrt( 3.0 / 2.0 ) ) *
135
136 EvtVector4C ep0, ep1, ep2;
137
141
142 EvtVector4C ep20, ep21, ep22;
143
146
147 vertex( 0, 0, ep0 * ep20 );
148 vertex( 0, 1, ep0 * ep21 );
149
150 vertex( 1, 0, ep1 * ep20 );
151 vertex( 1, 1, ep1 * ep21 );
152
153 vertex( 2, 0, ep2 * ep20 );
154 vertex( 2, 1, ep2 * ep21 );
155
156 return;
157}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtTensor4C dual(const EvtTensor4C &t2)
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)
virtual EvtVector4C epsParentPhoton(int i)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
virtual EvtVector4C eps(int i) const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void setdiag(double t00, double t11, double t22, double t33)
EvtVector4C cont1(const EvtVector4C &v4) const