Skip to content

Automatic jet grooming in FastJets

Andy Buckley requested to merge jet-grooming-builtin into release-3-1-x

Adds a list of fastjet::Transformer to FastJets, to be applied in order.

Please review the API: I've created addTrf, addTrfs and clearTrfs methods, and a clearArea function for consistency, but these can be reviewed. Do we need a setTrfs? Is anyone really going to apply more than one groomer?

I'd also appreciate better takes on the pointer stuff going on here: it would be much nicer to avoid those entirely, but FJ is designed to expect heap-allocation of these things, which introduces a world of pain. Could maybe be refined in 3.2.x, using templates & SFINAE and all that to call the copy constructor for the appropriate concrete type.

Transformers don't currently have a comparison operator, so if this list is non-empty, we have to report the projection as non-equivalent and recompute duplicates -- for now -- but it works, and we can feed back that improvement (again) to fastjet: I think movement will only happen if we supply an explicit patch (and maybe patches for the filter, softdrop etc. implementations, too)

Edited by Andy Buckley

Merge request reports