1 #ifndef RecoJets_JetProducers_interface_VirtualJetProducerHelper_h
2 #define RecoJets_JetProducers_interface_VirtualJetProducerHelper_h
11 namespace VirtualJetProducerHelper {
16 if (r12 == 0)
return M_PI;
17 if (r12 >= 2)
return 0;
18 return 2 * std::acos(0.5*r12) - 0.5*r12*
sqrt(
std::max(0.0 , 4 - r12*r12));
24 if (r12 >= 2 || r23 >= 2 || r13 >= 2)
return 0;
25 const double r12_2 = r12*r12;
26 const double r13_2 = r13*r13;
27 const double temp = (r12_2 + r13_2 - r23*r23);
28 const double T2 =
std::max(0.0 , 4*r12_2*r13_2 - temp*temp);
32 inline double intersection(
double r12,
double r23,
double r13,
double a12,
double a23,
double a13)
34 if (r12 >= 2 || r23 >= 2 || r13 >= 2)
return 0;
35 const double r12_2 = r12*r12;
36 const double r13_2 = r13*r13;
37 const double temp = (r12_2 + r13_2 - r23*r23);
38 const double T2 =
std::max(0.0 , 4*r12_2*r13_2 - temp*temp);
39 const double common = 0.5*( a12 + a13 + a23 -
M_PI + 0.5*
sqrt(T2) );
double intersection(double r12)