57 {
report(
INFO,
"EvtGen" ) <<
"_nA,_nB,_nC:" << _nA <<
"," << _nB <<
"," << _nC << endl; }
66 report(
INFO,
"EvtGen" ) <<
"_JA2,_JB2,_JC2:" << _JA2 <<
"," << _JB2 <<
"," << _JC2
71 int* _lambdaA2 =
new int[_nA];
72 int* _lambdaB2 =
new int[_nB];
73 int* _lambdaC2 =
new int[_nC];
77 for ( ib = 0; ib < _nB; ib++ ) { _HBC[ib] =
new EvtComplex[_nC]; }
82 fillHelicity( _lambdaA2, _nA, _JA2 );
83 fillHelicity( _lambdaB2, _nB, _JB2 );
84 fillHelicity( _lambdaC2, _nC, _JC2 );
88 report(
INFO,
"EvtGen" ) <<
"Helicity states of particle A:" << endl;
89 for ( i = 0; i < _nA; i++ ) {
report(
INFO,
"EvtGen" ) << _lambdaA2[i] << endl; }
91 report(
INFO,
"EvtGen" ) <<
"Helicity states of particle B:" << endl;
92 for ( i = 0; i < _nB; i++ ) {
report(
INFO,
"EvtGen" ) << _lambdaB2[i] << endl; }
94 report(
INFO,
"EvtGen" ) <<
"Helicity states of particle C:" << endl;
95 for ( i = 0; i < _nC; i++ ) {
report(
INFO,
"EvtGen" ) << _lambdaC2[i] << endl; }
97 report(
INFO,
"EvtGen" ) <<
"Will now figure out the valid (M_LS) states:" << endl;
101 std::max( _JA2 - _JB2 - _JC2, std::max( _JB2 - _JA2 - _JC2, _JC2 - _JA2 - _JB2 ) );
102 if ( Lmin < 0 ) Lmin = 0;
104 int Lmax = _JA2 + _JB2 + _JC2;
108 int _nPartialWaveAmp = 0;
113 for ( L = Lmin; L <= Lmax; L += 2 )
115 int Smin =
abs( L - _JA2 );
116 if ( Smin <
abs( _JB2 - _JC2 ) ) Smin =
abs( _JB2 - _JC2 );
118 if ( Smax >
abs( _JB2 + _JC2 ) ) Smax =
abs( _JB2 + _JC2 );
120 for ( S = Smin; S <= Smax; S += 2 )
122 _nL[_nPartialWaveAmp] = L;
123 _nS[_nPartialWaveAmp] = S;
126 if (
verbose() ) {
report(
INFO,
"EvtGen" ) <<
"M[" << L <<
"][" << S <<
"]" << endl; }
136 for ( i = 0; i < _nPartialWaveAmp; i++ )
142 {
report(
INFO,
"EvtGen" ) <<
"M[" << _nL[i] <<
"][" << _nS[i] <<
"]=" << _M[i] << endl; }
147 for ( ib = 0; ib < _nB; ib++ )
149 for ( ic = 0; ic < _nC; ic++ )
152 if (
abs( _lambdaB2[ib] - _lambdaC2[ic] ) <= _JA2 )
154 for ( i = 0; i < _nPartialWaveAmp; i++ )
158 int lambda2 = _lambdaB2[ib];
159 int lambda3 = _lambdaC2[ic];
163 int m1 = lambda2 - lambda3;
168 {
report(
INFO,
"EvtGen" ) <<
"s2,lambda2:" << s2 <<
" " << lambda2 << endl; }
170 double fkwTmp = ( L + 1.0 ) / ( s1 + 1.0 );
172 if ( S >=
abs(
m1 ) )
175 EvtComplex tmp = sqrt( fkwTmp ) * c1.
coef( S,
m1, s2, s3, lambda2, -lambda3 ) *
176 c2.
coef( s1,
m1, L, S, 0,
m1 ) * _M[i];
185 <<
"_HBC[" << ib <<
"][" << ic <<
"]=" << _HBC[ib][ic] << endl;
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)