Go to the source code of this file.
Functions | |
double | EvtDecayAngle (const EvtVector4R &, const EvtVector4R &, const EvtVector4R &) |
double | EvtDecayAngleChi (const EvtVector4R &, const EvtVector4R &, const EvtVector4R &, const EvtVector4R &, const EvtVector4R &) |
double | EvtDecayPlaneNormalAngle (const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d1, const EvtVector4R &d2) |
double | EvtDecayAnglePhi (const EvtVector4R &g, const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d) |
EvtComplex | wignerD (int j, int m1, int m2, double phi, double theta, double gamma) |
double EvtDecayAngle | ( | const EvtVector4R & | , | |
const EvtVector4R & | , | |||
const EvtVector4R & | ||||
) |
Definition at line 33 of file EvtKine.cc.
References EvtVector4R::mass2(), and q.
Referenced by EvtMHelAmp::amplitude(), and EvtResonance::resAmpl().
00034 { 00035 00036 double pd=p*d; 00037 double pq=p*q; 00038 double qd=q*d; 00039 double mp2=p.mass2(); 00040 double mq2=q.mass2(); 00041 double md2=d.mass2(); 00042 00043 double cost=(pd*mq2-pq*qd)/sqrt((pq*pq-mq2*mp2)*(qd*qd-mq2*md2)); 00044 00045 return cost; 00046 00047 }
double EvtDecayAngleChi | ( | const EvtVector4R & | , | |
const EvtVector4R & | , | |||
const EvtVector4R & | , | |||
const EvtVector4R & | , | |||
const EvtVector4R & | ||||
) |
Definition at line 49 of file EvtKine.cc.
References boostTo(), EvtVector4R::cross(), EvtVector4R::d3mag(), EvtVector4R::dot(), EvtConst::twoPi, and x.
00051 { 00052 00053 EvtVector4R p4_d1p,p4_h1p,p4_h2p,p4_d2p; 00054 00055 00056 // boost all vectors parent restframe 00057 00058 p4_d1p=boostTo(p4_d1,p4_p); 00059 p4_d2p=boostTo(p4_d2,p4_p); 00060 p4_h1p=boostTo(p4_h1,p4_p); 00061 p4_h2p=boostTo(p4_h2,p4_p); 00062 00063 00064 EvtVector4R d1_perp,d1_prime,h1_perp; 00065 EvtVector4R D; 00066 00067 D=p4_d1p+p4_d2p; 00068 00069 d1_perp=p4_d1p-(D.dot(p4_d1p)/D.dot(D))*D; 00070 h1_perp=p4_h1p-(D.dot(p4_h1p)/D.dot(D))*D; 00071 00072 // orthogonal to both D and d1_perp 00073 00074 d1_prime=D.cross(d1_perp); 00075 00076 d1_perp= d1_perp/d1_perp.d3mag(); 00077 d1_prime= d1_prime/d1_prime.d3mag(); 00078 00079 double x,y; 00080 00081 x=d1_perp.dot(h1_perp); 00082 y=d1_prime.dot(h1_perp); 00083 00084 double chi=atan2(y,x); 00085 00086 if (chi<0.0) chi+=EvtConst::twoPi; 00087 00088 return chi; 00089 00090 }
double EvtDecayAnglePhi | ( | const EvtVector4R & | g, | |
const EvtVector4R & | p, | |||
const EvtVector4R & | q, | |||
const EvtVector4R & | d | |||
) |
Definition at line 111 of file EvtKine.cc.
References alpha, EvtVector4R::dotr3(), EvtVector4R::mag2r3(), EvtVector4R::mass(), q, EvtVector4R::scalartripler3(), EvtConst::twoPi, and x.
Referenced by EvtMHelAmp::amplitude().
00113 { 00114 double eq = (p * q) / p.mass(); 00115 double ed = (p * d) / p.mass(); 00116 double mq = q.mass(); 00117 double q2 = p.mag2r3(q); 00118 double qd = p.dotr3(q,d); 00119 double zq = p.dotr3(z,q); 00120 double zd = p.dotr3(z,d); 00121 double alpha = (eq - mq)/(q2 * mq) * qd - ed/mq; 00122 00123 double y = p.scalartripler3(z,q,d) + alpha * p.scalartripler3(z,q,q); 00124 double x = (zq * (qd + alpha * q2) - q2 * (zd + alpha * zq)) / sqrt(q2); 00125 00126 double phi = atan2(y,x); 00127 00128 return phi<0 ? (phi+EvtConst::twoPi) : phi; 00129 }
double EvtDecayPlaneNormalAngle | ( | const EvtVector4R & | p, | |
const EvtVector4R & | q, | |||
const EvtVector4R & | d1, | |||
const EvtVector4R & | d2 | |||
) |
Definition at line 94 of file EvtKine.cc.
References EvtTensor4C::cont2(), directProd(), dual(), EvtVector4C::get(), EvtVector4R::mass2(), and q.
00095 { 00096 00097 EvtVector4C lc=dual(directProd(d1,d2)).cont2(q); 00098 00099 EvtVector4R l(real(lc.get(0)),real(lc.get(1)), 00100 real(lc.get(2)),real(lc.get(3))); 00101 00102 double pq=p*q; 00103 00104 return q.mass()*(p*l)/sqrt(-(pq*pq-p.mass2()*q.mass2())*l.mass2()); 00105 00106 00107 }
EvtComplex wignerD | ( | int | j, | |
int | m1, | |||
int | m2, | |||
double | phi, | |||
double | theta, | |||
double | gamma | |||
) |
Definition at line 132 of file EvtKine.cc.
References EvtdFunction::d(), and exp().
Referenced by EvtMHelAmp::amplitude().
00134 { 00135 EvtComplex gp(0.0, -phi*m1); 00136 EvtComplex gm(0.0, -gamma*m2); 00137 //double d = EvtdFunction::d(j, m1, m2, theta); 00138 00139 return exp( gp ) * EvtdFunction::d(2*j, 2*m1,2*m2, theta) * exp( gm ); //pingrg, 2010-11-29, d(j,m1,m2,theta)->d(2*j,2*m1,2*m2,theta)consistent with Djmn in EvtHelSys 00140 }