71 {
72
80
87
92
93
95
96
98
100
108 double tht=angles.getHelAng(1);
109 double ph =angles.getHelAng(2);
110 double gmm=0;
111
113 double p3=pDaug.
d3mag();
114
115
117 double M2=M*M;
119 double m2=m*m;
120 double theta,phi,
alpha,beta,ga;
121
126
127 if(p1==XP){
alpha=-0.46;phi=-2.1; }
128 else if(p1==XM){
alpha=0.46;phi=-2.1;}
129 else if(p1==X0P){
alpha=-0.41;phi=21.0;}
130 else if(p1==X0M){
alpha=0.41;phi=21.0; }
131 else if(p1==LP){
alpha=0.64;phi=-6.5; }
132 else if(p1==LM){
alpha=-0.64;phi=-6.5; }
133 else if(p1==SMP){
alpha=-0.07;phi=10.0;}
134 else if(p1==SMM){
alpha=0.07;phi=10.0; }
135 else if(p1==SPP){
136 if (d1==PP){
alpha=-0.98;phi=36.0; }
137 else if(d1==NP){
alpha=0.07;phi=167.0; }
138 else { cout<<"The decay is not discussed."<<endl; }
139 }
140 else if(p1==SPM){
141 if (d1==PM){
alpha=0.98;phi=36.0; }
142 else if(d1==NM){
alpha=-0.07;phi=167.0; }
143 else { cout<<"The decay is not discussed."<<endl; }
144 }
145 else { cout<<"The decay is not discussed.";
146 }
147
148 double FP=sqrt((1+
alpha)/2.);
149 double FM=sqrt((1-
alpha)/2.);
150
151 vertex(0,0,
Djmn(0.5, 0.5, 0.5,ph,tht,gmm)*FP);
152 vertex(0,1,
Djmn(0.5, 0.5,-0.5,ph,tht,gmm)*FM);
153 vertex(1,0,
Djmn(0.5,-0.5, 0.5,ph,tht,gmm)*FP);
154 vertex(1,1,
Djmn(0.5,-0.5,-0.5,ph,tht,gmm)*FM);
155
156 return;
157
158}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
DOUBLE_PRECISION count[2]
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)