Derivation Framework Smart Thinning
Firstly, apologies for the delay - I thought I had it working properly and then found a difference between the way this tool was behaving and EgammaTrackParticleThinning which I was using to test the tool...
As this is a relatively complicated merge request I've put it as a WIP to allow for discussion (EDIT: removed!). Adding @jcatmore @akraszna .
As a reminder, here's the original talk that I gave on this. The idea is to have a generic way to follow element links from thinned containers to add in other particles that are connect to those 'parent' objects.
I've tested this by running TEST11.py (which uses the EgammaTrackParticleThinning) and TEST12.py (which uses my new tools) using the commands test_cmd.sh and comparing them using test_files.py (note that ProdFlags needs to be changed to something like DerivationFrameworkProdFlags.py ). The only difference is deliberate.
The difference I have is that the current tools do not thin the container if no parent particles pass their thinning - i.e. if you're running EgammaTrackParticleThinning on the Photons container and no photons pass your selection then the InDetTrackParticles and GSFTrackParticles containers will written out in their entirety. This seemed counter-intuitive to me so I changed it so that they are completely thinned and an empty container is written out instead. I can change this if it's too controversial...
Cheers, Jon
EDIT: Just to note that this is only the C++ side of things - it would be a nice idea to add helper functions to the python to make it easier to use.