42 {
43
45
46
50
52 {
report(
INFO,
"EvtGen" ) <<
"_nA,_nB,_nC:" << _nA <<
"," << _nB <<
"," << _nC << endl; }
53
54
58
60 {
61 report(
INFO,
"EvtGen" ) <<
"_JA2,_JB2,_JC2:" << _JA2 <<
"," << _JB2 <<
"," << _JC2
62 << endl;
63 }
64
65
66 int* _lambdaA2 = new int[_nA];
67 int* _lambdaB2 = new int[_nB];
68 int* _lambdaC2 = new int[_nC];
69
71 int ib, ic;
72 for ( ib = 0; ib < _nB; ib++ ) { _HBC[ib] = new EvtComplex[_nC]; }
73
74 int i;
75
76 fillHelicity( _lambdaA2, _nA, _JA2,
getParentId() );
77 fillHelicity( _lambdaB2, _nB, _JB2,
getDaug( 0 ) );
78 fillHelicity( _lambdaC2, _nC, _JC2,
getDaug( 1 ) );
79
81 {
82 report(
INFO,
"EvtGen" ) <<
"Helicity states of particle A:" << endl;
83 for ( i = 0; i < _nA; i++ ) {
report(
INFO,
"EvtGen" ) << _lambdaA2[i] << endl; }
84
85 report(
INFO,
"EvtGen" ) <<
"Helicity states of particle B:" << endl;
86 for ( i = 0; i < _nB; i++ ) {
report(
INFO,
"EvtGen" ) << _lambdaB2[i] << endl; }
87
88 report(
INFO,
"EvtGen" ) <<
"Helicity states of particle C:" << endl;
89 for ( i = 0; i < _nC; i++ ) {
report(
INFO,
"EvtGen" ) << _lambdaC2[i] << endl; }
90 }
91
92
93
94 int argcounter = 0;
95
96 for ( ib = 0; ib < _nB; ib++ )
97 {
98 for ( ic = 0; ic < _nC; ic++ )
99 {
100 _HBC[ib][ic] = 0.0;
101 if (
abs( _lambdaB2[ib] - _lambdaC2[ic] ) <= _JA2 ) argcounter += 2;
102 }
103 }
104
106
107 argcounter = 0;
108
109 for ( ib = 0; ib < _nB; ib++ )
110 {
111 for ( ic = 0; ic < _nC; ic++ )
112 {
113 if (
abs( _lambdaB2[ib] - _lambdaC2[ic] ) <= _JA2 )
114 {
115 _HBC[ib][ic] =
116 getArg( argcounter ) *
exp( EvtComplex( 0.0,
getArg( argcounter + 1 ) ) );
117 ;
118 argcounter += 2;
120 {
122 << "_HBC[" << ib << "][" << ic << "]=" << _HBC[ib][ic] << endl;
123 }
124 }
125 }
126 }
127
131
132
133 delete[] _lambdaA2;
134 delete[] _lambdaB2;
135 delete[] _lambdaC2;
136 for ( int ib = 0; ib < _nB; ib++ ) { delete[] _HBC[ib]; }
137 delete[] _HBC;
138}
EvtComplex exp(const EvtComplex &c)
EvtComplex * EvtComplexPtr
ostream & report(Severity severity, const char *facility)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
static EvtSpinType::spintype getSpinType(EvtId i)
static int getSpin2(spintype stype)
static int getSpinStates(spintype stype)