59 {
60
68
75
80
82
83
84
86
88
89 EvtParticle *l1, *l2;
92 EvtVector4R DRP4 = l1->
getP4();
93 EvtVector4R MEP4 = l2->
getP4();
94 EvtVector4R PRP4 = p->
getP4();
95 EvtHelSys angles( PRP4, DRP4 );
96 double tht = angles.getHelAng( 1 );
97 double ph = angles.getHelAng( 2 );
98 double gmm = 0;
99
100 EvtVector4R pDaug = l1->
getP4();
101 double p3 = pDaug.
d3mag();
102
103 double M = p->
mass();
104 double M2 = M * M;
105 double m = l1->
mass();
107 double theta, phi,
alpha, beta, ga;
108
113
115 {
117 phi = -2.1;
118 }
120 {
122 phi = -2.1;
123 }
124 else if (
p1 == X0P )
125 {
127 phi = 21.0;
128 }
129 else if (
p1 == X0M )
130 {
132 phi = 21.0;
133 }
135 {
137 phi = -6.5;
138 }
140 {
142 phi = -6.5;
143 }
144 else if (
p1 == SMP )
145 {
147 phi = 10.0;
148 }
149 else if (
p1 == SMM )
150 {
152 phi = 10.0;
153 }
154 else if (
p1 == SPP )
155 {
156 if ( d1 == PP )
157 {
159 phi = 36.0;
160 }
161 else if ( d1 == NP )
162 {
164 phi = 167.0;
165 }
166 else { cout << "The decay is not discussed." << endl; }
167 }
168 else if (
p1 == SPM )
169 {
170 if ( d1 == PM )
171 {
173 phi = 36.0;
174 }
175 else if ( d1 == NM )
176 {
178 phi = 167.0;
179 }
180 else { cout << "The decay is not discussed." << endl; }
181 }
182 else { cout << "The decay is not discussed."; }
184
185 double FP = sqrt( ( 1 +
alpha ) / 2. );
186 double FM = sqrt( ( 1 -
alpha ) / 2. );
187
188 vertex( 0, 0,
Djmn( 0.5, 0.5, 0.5, ph, tht, gmm ) * FP );
189 vertex( 0, 1,
Djmn( 0.5, 0.5, -0.5, ph, tht, gmm ) * FM );
190 vertex( 1, 0,
Djmn( 0.5, -0.5, 0.5, ph, tht, gmm ) * FP );
191 vertex( 1, 1,
Djmn( 0.5, -0.5, -0.5, ph, tht, gmm ) * FM );
192
193 return;
194}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
DOUBLE_PRECISION count[3]
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)