New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New feature. Thinned collections. #5515
Conversation
Implementation of a new feature. This includes a template class to be used to create thinned collection producers. It also includes code to automatically redirect Ref's, Ptr's, RefVector's, PtrVector's and things derived from them to the thinned collections if the original collections have been dropped. ThinnedAssociations and a new table in the Framework are implemented to make the redirection work. Keeping and dropping of the ThinnedAssociations and table entries is handled automatically. This includes code to make this work with Root I/O, Secondary file input, secondary source, subprocesses, FWLite, EDAlias's, and Streamer I/O. There are new unit tests for all those cases as well.
A new Pull Request was created by @wddgit (W. David Dagenhart) for CMSSW_7_3_X. New feature. Thinned collections. It involves the following packages: DQM/SiStripMonitorHardware @civanch, @Dr15Jones, @danduggan, @rovere, @cmsbuild, @nclopezo, @mdhildreth, @deguio, @ojeda, @ktf can you please review it and eventually sign? Thanks. |
+1 |
+1 |
+1 |
@bendavid If someone was to attempt to use this new feature, there is no documentation yet. We should probably write some. For now, the best place to start would be with this file, FWCore/Integration/test/ThinningThingProducer.cc. That file is for testing, but a user would need to implement one of those and get it configured so it runs, then put in keep and drop statements for the thinned and parent collection. The rest should be automatic. I have not performance tested it yet,but there will be performance hit to dereference a Ref or Ptr to a thinned collection. Worse for Ref's than Ptr's. |
Ok, will take a look. We can try to implement and compare to our current brute force implementation which painfully rekeys all the refs |
do they work in fwlite and pyfwlite? |
Yes |
@bendavid, @arizzi, @gpetruc |
Implementation of a new feature. This includes a
template class to be used to create thinned collection
producers. It also includes code to automatically redirect
Ref's, Ptr's, RefVector's, PtrVector's and things derived
from them to the thinned collections if the original
collections have been dropped. ThinnedAssociations and
a new table in the Framework are implemented to make
the redirection work. Keeping and dropping of the
ThinnedAssociations and table entries is handled automatically.
This includes code to make this work with Root I/O, Secondary
file input, secondary source, subprocesses, FWLite, EDAlias's,
and Streamer I/O. There are new unit tests for all
those cases as well.