1 #ifndef RecoJets_JetProducers_interface_VirtualJetProducerHelper_h
2 #define RecoJets_JetProducers_interface_VirtualJetProducerHelper_h
11 namespace VirtualJetProducerHelper {
19 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)
26 const double r12_2 = r12 * r12;
27 const double r13_2 = r13 * r13;
28 const double temp = (r12_2 + r13_2 - r23 * r23);
29 const double T2 =
std::max(0.0, 4 * r12_2 * r13_2 - temp * temp);
33 inline double intersection(
double r12,
double r23,
double r13,
double a12,
double a23,
double a13) {
34 if (r12 >= 2 || r23 >= 2 || r13 >= 2)
36 const double r12_2 = r12 * r12;
37 const double r13_2 = r13 * r13;
38 const double temp = (r12_2 + r13_2 - r23 * r23);
39 const double T2 =
std::max(0.0, 4 * r12_2 * r13_2 - temp * temp);
40 const double common = 0.5 * (a12 + a13 + a23 -
M_PI + 0.5 *
sqrt(T2));
double intersection(double r12)