60 {
61
63
67
71
72 if ( ap != EvtComplex( 0.0, 0.0 ) )
73 {
74 EvtVector4C epi[3], epf[3];
75
79
83
85 EvtVector3C
p1( momv.
get( 1 ), momv.
get( 2 ), momv.
get( 3 ) );
86
87 EvtVector3C ei0( epi[0].get( 1 ), epi[0].get( 2 ), epi[0].get( 3 ) );
88 EvtVector3C ei1( epi[1].get( 1 ), epi[1].get( 2 ), epi[1].get( 3 ) );
89 EvtVector3C ei2( epi[2].get( 1 ), epi[2].get( 2 ), epi[2].get( 3 ) );
90
91 EvtVector3C ef0( epf[0].get( 1 ), epf[0].get( 2 ), epf[0].get( 3 ) );
92 EvtVector3C ef1( epf[1].get( 1 ), epf[1].get( 2 ), epf[1].get( 3 ) );
93 EvtVector3C ef2( epf[2].get( 1 ), epf[2].get( 2 ), epf[2].get( 3 ) );
94
95 double norm = 1 / momv.
d3mag();
96 EvtVector3C q0 =
p1.cross( ef0 );
97 EvtVector3C q1 =
p1.cross( ef1 );
98 EvtVector3C q2 =
p1.cross( ef2 );
99
100 vertex( 0, 0, norm * ei0.conj() * q0 );
101 vertex( 0, 1, norm * ei0.conj() * q1 );
102 vertex( 0, 2, norm * ei0.conj() * q2 );
103
104 vertex( 1, 0, norm * ei1.conj() * q0 );
105 vertex( 1, 1, norm * ei1.conj() * q1 );
106 vertex( 1, 2, norm * ei1.conj() * q2 );
107
108 vertex( 2, 0, norm * ei2.conj() * q0 );
109 vertex( 2, 1, norm * ei2.conj() * q1 );
110 vertex( 2, 2, norm * ei2.conj() * q2 );
111 }
112 else if ( as != EvtComplex( 0.0, 0.0 ) || ad != EvtComplex( 0.0, 0.0 ) )
113 {
114
115
116
117
118
119 EvtTensor4C d, g;
120
121 g.
setdiag( 1.0, -1.0, -1.0, -1.0 );
122
123 d = ad * ( ( 1.0 / (
v->getP4().d3mag() *
v->getP4().d3mag() ) ) *
125 ( 1 / 3.0 ) * g ) +
126 as * g;
127
128 EvtVector4C ep0, ep1, ep2;
129
133
137
141
145 }
146 else
147 {
148 report(
ERROR,
"EvtGen" ) <<
"In EvtVectorToVectorScalar.cc" << endl;
149 report(
ERROR,
"EvtGen" ) <<
"Not all zero value for parameters are need!!" << endl;
150 ::abort();
151 }
152 return;
153}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
ostream & report(Severity severity, const char *facility)
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
void vertex(const EvtComplex &)
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
EvtComplex cont(const EvtVector4C &v4) const