Skip to content
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

Merged
merged 1 commit into from Sep 25, 2014

Conversation

wddgit
Copy link
Contributor

@wddgit wddgit commented Sep 23, 2014

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.

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.
@cmsbuild
Copy link
Contributor

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
DataFormats/Common
DataFormats/FWLite
DataFormats/Provenance
DataFormats/Streamer
DataFormats/TestObjects
FWCore/FWLite
FWCore/Framework
FWCore/Integration
FWCore/TFWLiteSelector
FWCore/Version
IOPool/Input
IOPool/Output
IOPool/SecondaryInput
IOPool/Streamer
Mixing/Base

@civanch, @Dr15Jones, @danduggan, @rovere, @cmsbuild, @nclopezo, @mdhildreth, @deguio, @ojeda, @ktf can you please review it and eventually sign? Thanks.
@venturia, @threus, @wmtan this is something you requested to watch as well.
You can sign-off by replying to this message having '+1' in the first line of your reply.
You can reject by replying to this message having '-1' in the first line of your reply.
@nclopezo, @ktf you are the release manager for this.
You can merge this pull request by typing 'merge' in the first line of your comment.

@deguio
Copy link
Contributor

deguio commented Sep 24, 2014

+1
DQM ~untouched
F.

@Dr15Jones
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

@civanch
Copy link
Contributor

civanch commented Sep 25, 2014

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_3_X IBs unless changes (tests are also fine). @nclopezo, @ktf can you please take care of it?

ktf added a commit that referenced this pull request Sep 25, 2014
@ktf ktf merged commit 8e3e72f into cms-sw:CMSSW_7_3_X Sep 25, 2014
@Dr15Jones
Copy link
Contributor

@bendavid

@wddgit
Copy link
Contributor Author

wddgit commented Sep 25, 2014

@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.

@bendavid
Copy link
Contributor

Ok, will take a look. We can try to implement and compare to our current brute force implementation which painfully rekeys all the refs
https://github.com/cms-sw/cmssw/blob/CMSSW_7_2_X/RecoEgamma/EgammaPhotonProducers/src/ReducedEGProducer.cc

@bendavid
Copy link
Contributor

@arizzi, @gpetruc

@arizzi
Copy link
Contributor

arizzi commented Sep 26, 2014

do they work in fwlite and pyfwlite?

@Dr15Jones
Copy link
Contributor

Yes

@wddgit
Copy link
Contributor Author

wddgit commented Sep 30, 2014

@bendavid, @arizzi, @gpetruc
I just added a new TWIKI page for this feature:
https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideThinnedCollections

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants