145 {
146
147 Vec4 pd1_W = d1_W.p();
148 Vec4 pd2_W = d2_W.p();
150 pd1_W.bstback(pv_W_orig);
151 pd2_W.bstback(pv_W_orig);
152
153 double m1_W_orig = sqrt(
pow(pd1_W.e(),2) -
pow(pd1_W.px(),2) -
pow(pd1_W.py(),2) -
pow(pd1_W.pz(),2));
154 double m2_W_orig = sqrt(
pow(pd2_W.e(),2) -
pow(pd2_W.px(),2) -
pow(pd2_W.py(),2) -
pow(pd2_W.pz(),2));
155 double mWchild = sqrt(
pow(pd1_W.e()+pd2_W.e(),2)-
pow(pd1_W.px()+pd2_W.px(),2)-
pow(pd1_W.py()+pd2_W.py(),2)-
pow(pd1_W.pz()+pd2_W.pz(),2));
156
157 double r_W_orig = 1 - (
pow(m1_W_orig,2) +
pow(m2_W_orig,2))/
pow(mW,2);
158 double r_W_flat = 1 - (
pow(m1_W_orig,2) +
pow(m2_W_orig,2))/
pow(mWflat,2);
159 double mR_W = (mWflat*r_W_flat)/(mWchild*r_W_orig);
160
161
162 pd1_W.px(mR_W*pd1_W.px());
163 pd1_W.py(mR_W*pd1_W.py());
164 pd1_W.pz(mR_W*pd1_W.pz());
165 pd1_W.e(sqrt(
pow(pd1_W.px(),2)+
pow(pd1_W.py(),2)+
pow(pd1_W.pz(),2)+
pow(m1_W_orig,2)));
166
167 pd2_W.px(mR_W*pd2_W.px());
168 pd2_W.py(mR_W*pd2_W.py());
169 pd2_W.pz(mR_W*pd2_W.pz());
170 pd2_W.e(sqrt(
pow(pd2_W.px(),2)+
pow(pd2_W.py(),2)+
pow(pd2_W.pz(),2)+
pow(m2_W_orig,2)));
171
173 pd1_W.bst(pv_W); d1_W.p(pd1_W);
174 pd2_W.bst(pv_W); d2_W.p(pd2_W);
175 double m1_W = sqrt(
pow(pd1_W.e(),2) -
pow(pd1_W.px(),2) -
pow(pd1_W.py(),2) -
pow(pd1_W.pz(),2));
176 double m2_W = sqrt(
pow(pd2_W.e(),2) -
pow(pd2_W.px(),2) -
pow(pd2_W.py(),2) -
pow(pd2_W.pz(),2));
177
178
179 d1_W.m(m1_W);
180 d2_W.m(m2_W);
181 }