74 {
75
79
86
89
91
95
100
101
103 double p3=pDaug.
d3mag();
104
109
112 theta=angles.getHelAng(1);
113 double phi =angles.getHelAng(2);
114 double gamma=0;
115
116 if((p1==OM)&&(d1==L0)){
118 }
119 else if((p1==OMB)&&(d1==LB)){
121 }
122 else if((p1==OM)&&(d1==
X0)){
124 }
125 else if((p1==OMB)||(d1==X0B)){
127 }
128 else if((p1==OM)||(d1==XM)){
130 }
131 else if((p1==OMB)||(d1==XMB)){
133 }
134
135 double FP,FM;
136 if(p1==OM||p1==OMB){
137 FM=sqrt((1+
alpha)/2.);
138 FP=sqrt((1-
alpha)/2.);
139 }
140 else {
141 FP=1;FM=1;
142 }
143
144 vertex(0,0,
Djmn(1.5, 0.5, 0.5,phi,theta,gamma)*FP);
145 vertex(0,1,
Djmn(1.5, 0.5,-0.5,phi,theta,gamma)*FM);
146 vertex(1,0,
Djmn(1.5, 1.5, 0.5,phi,theta,gamma)*FP);
147 vertex(1,1,
Djmn(1.5, 1.5,-0.5,phi,theta,gamma)*FM);
148 vertex(2,0,
Djmn(1.5,-1.5, 0.5,phi,theta,gamma)*FP);
149 vertex(2,1,
Djmn(1.5,-1.5,-0.5,phi,theta,gamma)*FM);
150 vertex(3,0,
Djmn(1.5,-0.5, 0.5,phi,theta,gamma)*FP);
151 vertex(3,1,
Djmn(1.5,-0.5,-0.5,phi,theta,gamma)*FM);
152
153 return;
154
155}
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)