43 for ( ib = 0; ib <
m_nB; ib++ ) {
49 for ( ia = 0; ia <
m_nA; ia++ ) {
54 for ( ib = 0; ib <
m_nB; ib++ ) {
59 for ( ic = 0; ic <
m_nC; ic++ ) {
64 for ( ia = 0; ia <
m_nA; ia++ ) {
65 for ( ib = 0; ib <
m_nB; ib++ ) {
66 delete[]
m_amp[ia][ib];
104 for ( ib = 0; ib <
m_nB; ib++ ) {
109 for ( ia = 0; ia <
m_nA; ia++ ) {
113 for ( ib = 0; ib <
m_nB; ib++ ) {
117 for ( ic = 0; ic <
m_nC; ic++ ) {
124 for ( ia = 0; ia <
m_nA; ia++ ) {
128 for ( ib = 0; ib <
m_nB; ib++ ) {
141 for ( ib = 0; ib <
m_nB; ib++ ) {
142 for ( ic = 0; ic <
m_nC; ic++ ) {
143 m_HBC[ib][ic] = HBC[ib][ic];
157 double maxprob = 0.0;
159 for ( itheta = -10; itheta <= 10; itheta++ ) {
160 theta = acos( 0.099999 * itheta );
161 for ( ia = 0; ia <
m_nA; ia++ ) {
163 for ( ib = 0; ib <
m_nB; ib++ ) {
164 for ( ic = 0; ic <
m_nC; ic++ ) {
165 m_amp[ia][ib][ic] = 0.0;
178 prob *= sqrt( 1.0 *
m_nA );
180 if ( prob > maxprob )
194 double theta = acos( pB.
get( 3 ) / pB.
d3mag() );
195 double phi = atan2( pB.
get( 2 ), pB.
get( 1 ) );
203 for ( ia = 0; ia <
m_nA; ia++ ) {
204 for ( ib = 0; ib <
m_nB; ib++ ) {
205 for ( ic = 0; ic <
m_nC; ic++ ) {
206 m_amp[ia][ib][ic] = 0.0;
231 for ( ia = 0; ia <
m_nA; ia++ ) {
232 for ( ib = 0; ib <
m_nB; ib++ ) {
233 for ( ic = 0; ic <
m_nC; ic++ ) {
268 if ( fabs( prob1 - prob2 ) > 0.000001 * prob1 ) {
270 <<
"prob1,prob2:" << prob1 <<
" " << prob2 << endl;
282 if ( n == 2 && J2 == 2 ) {
289 if ( n == 1 && J2 == 1 ) {
300 assert( n == J2 + 1 );
302 for ( i = 0; i < n; i++ ) {
303 lambda2[i] = n - i * 2 - 1;
332 for ( i = 0; i < n; i++ ) {
333 for ( j = 0; j < n; j++ ) {
344 <<
"Spin2(m_JA2)=" <<
m_JA2 <<
" not supported!" << endl;
369 for ( i = 0; i < n; i++ ) {
370 for ( j = 0; j < n; j++ ) {
381 <<
"Spin2(m_JB2)=" <<
m_JB2 <<
" not supported!" << endl;
406 for ( i = 0; i < n; i++ ) {
407 for ( j = 0; j < n; j++ ) {
418 <<
"Spin2(m_JC2)=" <<
m_JC2 <<
" not supported!" << endl;
429 for ( ia = 0; ia <
m_nA; ia++ ) {
430 for ( ib = 0; ib <
m_nB; ib++ ) {
431 for ( ic = 0; ic <
m_nC; ic++ ) {
433 for ( i = 0; i <
m_nC; i++ ) {
436 m_amp1[ia][ib][ic] = temp;
441 for ( ia = 0; ia <
m_nA; ia++ ) {
442 for ( ic = 0; ic <
m_nC; ic++ ) {
443 for ( ib = 0; ib <
m_nB; ib++ ) {
445 for ( i = 0; i <
m_nB; i++ ) {
448 m_amp3[ia][ib][ic] = temp;
453 for ( ib = 0; ib <
m_nB; ib++ ) {
454 for ( ic = 0; ic <
m_nC; ic++ ) {
455 for ( ia = 0; ia <
m_nA; ia++ ) {
457 for ( i = 0; i <
m_nA; i++ ) {
460 m_amp[ia][ib][ic] = temp;
EvtComplex conj(const EvtComplex &c)
double real(const EvtComplex &c)
EvtComplex exp(const EvtComplex &c)
EvtComplex * EvtComplexPtr
double abs(const EvtComplex &c)
EvtComplexPtr * EvtComplexPtrPtr
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
void vertex(const EvtComplex &)
void applyRotationMatrices()
EvtComplexPtrPtrPtr m_amp1
void fillHelicity(int *lambda2, int n, int J2, EvtId id)
EvtEvalHelAmp(EvtId idA, EvtId idB, EvtId idC, EvtComplexPtrPtr HBC)
EvtComplexPtrPtrPtr m_amp3
void evalAmp(EvtParticle *p, EvtAmp &)
EvtComplexPtrPtrPtr m_amp
void setUpRotationMatrices(EvtParticle *p, double theta, double phi)
static EvtSpinType::spintype getSpinType(EvtId i)
static int getStdHep(EvtId id)
const EvtVector4R & getP4() const
virtual EvtSpinDensity rotateToHelicityBasis() const =0
EvtParticle * getDaug(const int i)
const EvtComplex & get(int i, int j) const
static int getSpin2(spintype stype)
static int getSpinStates(spintype stype)
static double d(int j, int m1, int m2, double theta)