Handle FlowElements correctly in MET overlaps
Validation of MET reconstructed with FlowElements turned up some differences with respect to PFO-based MET. We traced this back to the overlap type bitmask in MissingETAssociation
, where each bit corresponds to a certain object type (according to its xAOD::Type::ObjectType
). However, this bitmask is represented as a char
(8 bits), but the ObjectType
for FlowElement
maps to 11, so there's actually no corresponding bit.
This implements a solution: Since FlowElements are always used to represent some underlying object (specified by their SignalType
), I've introduced a special case where if our object is a FlowElement, the xAOD::Type::ObjectType
corresponding to its xAOD::FlowElement::SignalType
is computed and used instead of xAOD::Type::FlowElement
.
In implementing this, I've also managed to remove the assumption that all FlowElements are representing PFOs - FlowElements representing Tracks, CaloClusters, etc. can also be used in the MET reconstruction (even though they don't exist in practice yet).