21 double getRadius(
const TLorentzVector&
vec,
const VRConfig&
cfg) {
30 const VRConfig&
cfg) {
31 const size_t n_jets =
jets.size();
32 std::vector<VRJetDR>
min_dr(n_jets, {INFINITY,INFINITY});
33 for (
size_t iii = 0; iii < n_jets; iii++) {
35 const TLorentzVector j1p4 =
j1->p4();
36 const double j1_radius = getRadius(j1p4,
cfg);
37 for (
size_t jjj = iii+1; jjj < n_jets; jjj++) {
39 const TLorentzVector j2p4 =
j2->p4();
40 const double j2_radius = getRadius(j2p4,
cfg);
41 const double min_radius =
std::min(j1_radius, j2_radius);
42 const double dR = j1p4.DeltaR(j2p4);
43 const double rel_dR = dR / min_radius;
46 for (
const size_t idx: {iii,jjj}) {
49 vrstruct.relative = rel_dR;
50 vrstruct.absolute = dR;
62 relative_name(
"relativeDeltaRToVRJet"),
63 absolute_name(
"deltaRToVRJet"),
64 jet_parameters_source(param_source)
69 m_param_source(
cfg.jet_parameters_source),
70 m_rel_decorator(
cfg.relative_name),
71 m_abs_decorator(
cfg.absolute_name),
72 m_min_radius(
"VariableRMinRadius"),
73 m_max_radius(
"SizeParameter"),
74 m_mass_scale(
"VariableRMassScale")
98 throw std::logic_error(
"unknown jet parameter lookup");
101 for (
size_t iii = 0; iii <
jets.size(); iii++) {
103 const auto drs =
min_dr.at(iii);