64 {
65
69
76
79
81
82 EvtParticle *l1, *l2;
85
90
91 EvtVector4R pDaug = l1->
getP4();
92 double p3 = pDaug.
d3mag();
93
94 EvtVector4R pv, ps, ppr;
98
100 EvtHelSys angles( ppr, pv );
101 theta = angles.getHelAng( 1 );
102 double phi = angles.getHelAng( 2 );
103 double gamma = 0;
104
105 if ( (
p1 == OM ) && ( d1 == L0 ) ) {
alpha = 0.0175; }
106 else if ( (
p1 == OMB ) && ( d1 == LB ) ) {
alpha = -0.0175; }
107 else if ( (
p1 == OM ) && ( d1 ==
X0 ) ) {
alpha = 0.09; }
108 else if ( (
p1 == OMB ) || ( d1 == X0B ) ) {
alpha = -0.09; }
109 else if ( (
p1 == OM ) || ( d1 == XM ) ) {
alpha = 0.05; }
110 else if ( (
p1 == OMB ) || ( d1 == XMB ) ) {
alpha = -0.05; }
111
112 double FP, FM;
113 if (
p1 == OM ||
p1 == OMB )
114 {
115 FM = sqrt( ( 1 +
alpha ) / 2. );
116 FP = sqrt( ( 1 -
alpha ) / 2. );
117 }
118 else
119 {
120 FP = 1;
121 FM = 1;
122 }
123
124 vertex( 0, 0,
Djmn( 1.5, 0.5, 0.5, phi, theta, gamma ) * FP );
125 vertex( 0, 1,
Djmn( 1.5, 0.5, -0.5, phi, theta, gamma ) * FM );
126 vertex( 1, 0,
Djmn( 1.5, 1.5, 0.5, phi, theta, gamma ) * FP );
127 vertex( 1, 1,
Djmn( 1.5, 1.5, -0.5, phi, theta, gamma ) * FM );
128 vertex( 2, 0,
Djmn( 1.5, -1.5, 0.5, phi, theta, gamma ) * FP );
129 vertex( 2, 1,
Djmn( 1.5, -1.5, -0.5, phi, theta, gamma ) * FM );
130 vertex( 3, 0,
Djmn( 1.5, -0.5, 0.5, phi, theta, gamma ) * FP );
131 vertex( 3, 1,
Djmn( 1.5, -0.5, -0.5, phi, theta, gamma ) * FM );
132
133 return;
134}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
void vertex(const EvtComplex &)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)