double JetInfo::CoreEnergyFraction(Jet const &jet) const { DEBUG0; auto energy = 0_eV; auto core_energy = 0_eV; for (auto const &constituent : Constituents()) if (constituent.DetectorPart() == DetectorPart::photon) { energy += constituent.Momentum().Et(); if (jet.DeltaRTo(constituent.Momentum()) < 0.2_rad) core_energy += constituent.Momentum().Et(); } return energy == 0_eV ? 0. : static_cast<double>(core_energy / energy); }
Angle JetInfo::TrackRadius(Jet const &jet) const { DEBUG0; auto energy = 0_eV; auto weight = 0_eV * rad; for (auto const &constituent : Constituents()) if (constituent.DetectorPart() == DetectorPart::track) { energy += constituent.Momentum().Et(); weight += constituent.Momentum().Et() * jet.DeltaRTo(constituent.Momentum()); } return energy == 0_eV ? 0_rad : Angle(weight / energy); }