Allow Tesla to save a filtered copy of the MC event
This MR adds a Tesla().FilterMC
flag that adds Stripping-like MC µDST writer behaviour to Tesla.
It depends on !52 (merged), and indeed it builds on that MR, so the only interesting commit here is 58410541. I can rebase this on top of master once !52 (merged) is merged.
Merge request reports
Activity
I am wondering if this should not be the default behaviour? I don't have a strong preference but we couldn't we have this behaviour both for DST and uDST? Meaning Turbo will alway find the related MCParticles in the special location? It will make the file a little bit bigger but it should not be too much larger? And it would allow to have the same configuration for all type of productions...
\cc @cattanem
- Resolved by Alex Pearce
- Resolved by Alex Pearce
- Resolved by Alex Pearce
- Resolved by Alex Pearce
I disagree on making this the default behaviour. It can make things difficult when there are two possibly-overlapping sets of 'base' objects. An example of this is when equality is done on the pointer level, which will fail when the same 'true' object lives is duplicated across two separate TES locations.
Alex, the example you give does not really apply, at least not for the current event model. There cannot be the same 'true' object in different containers, i.e. the same pointer cannot be in two containers. You need to either clone an object or remove it from a container to be able to put it in another.
\cc @clemenci who has a deeper understanding of the TES and of its future
Well, yes, this is what I mean. You having the object whose information is exactly the same, but it's been cloned to another location so exists in two places. Then if somewhere you do a pointer comparison, the objects will be deemed different.
We already have this problem for Turbo and PersistReco, where identical tracks are stored as copies in different containers, but the default overlap check doesn't consider them overlapping because the pointers are different.
Basically, I'd like to keep things simple, and having duplicated subsets lying around gives more room for gremlins.
added 2 commits
- 3a737f70 - Don't include non-ConfigurableUser objects in used_configurables.
- d3720d31 - Typo.
I've address the smaller points @raaij made, and open LBHLT-289 to track the larger one.
As I said, I'm cautious about making the changes in this MR the default, given my experience during the implementation of how fragile things can be. For now, I'd rather not support having two containers of MC particles existing at the same time, but I'm happy for the discussion to continue on a JIRA.
…and to repeat for clarity, this MR depends of !52 (merged), which should be merged first, then I'll rebase this.
You can now proceed, @apearce ...
mentioned in commit 43cbbb32
mentioned in merge request !58 (merged)