12 inline double Gamma(
const double Q2,
const double M2,
const double G,
const double mkpp2,
13 const double mkmp2 ) {
14 const double mkmp22 = mkmp2 * mkmp2;
15 double beta2_q = ( Q2 * Q2 - 2 * Q2 * mkpp2 + mkmp22 ) / pow( Q2 - mkpp2, 2 );
16 double beta2_M = ( M2 * M2 - 2 * M2 * mkpp2 + mkmp22 ) / pow( M2 - mkpp2, 2 );
17 double beta2 = beta2_q / beta2_M;
18 double beta = sqrt( beta2 );
19 return G * M2 / Q2 * beta2 * beta;
30 inline TLorentzVector
PseudoScalars3(
const TLorentzVector& qp,
const TLorentzVector& qm,
31 const TLorentzVector& q0 ) {
35 double Jx = qp.Y() * qm.Z() * q0.T() - qp.Y() * qm.T() * q0.Z() +
36 qp.T() * qm.Y() * q0.Z() - qp.T() * qm.Z() * q0.Y() +
37 qp.Z() * qm.T() * q0.Y() - qp.Z() * qm.Y() * q0.T();
39 double Jy = qp.X() * qm.Z() * q0.T() - qp.X() * qm.T() * q0.Z() +
40 qp.T() * qm.X() * q0.Z() - qp.T() * qm.Z() * q0.X() +
41 qp.Z() * qm.T() * q0.X() - qp.Z() * qm.X() * q0.T();
43 double Jz = qp.Y() * qm.X() * q0.T() - qp.Y() * qm.T() * q0.X() +
44 qp.T() * qm.Y() * q0.X() - qp.T() * qm.X() * q0.Y() +
45 qp.X() * qm.T() * q0.Y() - qp.X() * qm.Y() * q0.T();
47 double Jt = qp.Y() * qm.Z() * q0.X() - qp.Y() * qm.X() * q0.Z() +
48 qp.X() * qm.Y() * q0.Z() - qp.X() * qm.Z() * q0.Y() +
49 qp.Z() * qm.X() * q0.Y() - qp.Z() * qm.Y() * q0.X();
51 TLorentzVector J( Jx, Jy, Jz, Jt );
double Gamma(const double Q2, const double M2, const double G, const double mkpp2, const double mkmp2)