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
JetCorrector in Event #5141
JetCorrector in Event #5141
Conversation
Moved the implementation of the JetCorrector so that the needed class can be obtained from the Event rather than the EventSetup. This is needed since 1) having an EventSetup class access data from the Event is against CMSSW rules 2) it is not possible to make the needed 'consumes' call with the previous design. The new implementation lives in the namespace reco while the old implementation is still in the global namespace until the old can be removed.
The ChainedJetCorrectorProducer is the equivalent to the previous JetCorrectionESChain but for the Event based reco::JetCorrector.
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_2_X. JetCorrector in Event It involves the following packages: JetMETCorrections/Algorithms The following packages do not have a category, yet: JetMETCorrections/JetCorrector @cmsbuild, @vadler, @nclopezo, @ktf, @monttj can you please review it and eventually sign? Thanks. |
@Dr15Jones : Great, thanx! I will check as soon as possible. |
@vadler David had suggested that I only write the new Event data product and the Producers which make the new items. All modules which use the old JetCorrector still need to be modified to use the new 'reco::JetCorrector' and all configurations using the old modules need to be changed to use the new EDProducers. |
@vadler I also wanted to note that I couldn't find any working 'test' configuration of the existing |
@vadler ping? |
+1 |
@vadler Basically, every piece of code which requests or uses a JetCorrector has to be changed. I'd suggest doing a
to find those cases. The use tends to be pretty far reaching. |
At the request of David Lange @davidlange6 I implemented a solution to the consumes problem with JetCorrector.
Previously,
JetCorrector
was an EventSetup object yet to do its work it had member functions which took theedm::Event
as a parameter. Given that the JetCorrector was doing 'hidden' gets from the Event it meant any module using theJetCorrector
was unable to make all the necessaryconsumes
calls.This implementation avoids the
consumes
problem by having a newreco::JetCorrector
which is an Event product. Therefore the module which makes thereco::JetCorrector
can do the needed gets from the Event and knows whichconsumes
calls are needed. This also simplifies the use ofreco::JetCorrector
since users no longer have to pass aedm::Event
andedm::EventSetup
to the methods of the class.