jet quality variables for UFO jets
This MR implements a new tool to calculate jet quality variables (needed for example for jet cleaning) for small-R UFO CSSK jets. The variables implemented in this tool are currently all zero in the main branch due to the retrieval of the constituents. A new tool was developed rather than modifying FEHelpers::getClusterMoment due to the complications of UFOs of type combined and the possibility of double-counting clusters.
This tool could in the future replace JetCaloQualityTool and JetCaloQualityUtils for any jet type (cluster-based, particle-flow-based ...). Rather than writing different functions for the different input types, the clusters (either directly the constituents or retrieved following the chain from FlowElements) is passed to the function to calculate those variables. The moment calculation was validated for EMTopo jets and EMPFlow jets (no validation possible for UFO jets due to variables being broken at the moment). No differences were observed for EMTopo jets. For EMPFlow jets, small differences were observed in the validation due to some choices that were made in the previous calcuation, e.g. the energy of the particle-flow object was used for the normalization of the moments rather than the underlying cluster energy. This MR only uses JetCaloQualityToolFE for small-R UFO jets. For EMTopo and EMPFlow jets, the old implementation is still used.
Tagging a few people for feedback
I'm happy to rename JetCaloQualityToolFE to something more meaningful!