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

E/g HLT Pixel Match Variable Producer #13846

Merged
merged 9 commits into from Mar 30, 2016

Conversation

Sam-Harper
Copy link
Contributor

Dear All,

This is a new producer which makes new variables related to pixel matching for the E/gamma HLT and is a necessary module for the 2016 Z' trigger strategy.

The core of it relies on parameterising the spread of the dPhi1, dPhi2 and dRZ2 (phi and R/Z matching of the supercluster trajectory to the 1st and 2nd pixel hits) for a given electron. This is done via an arbitrary function in arbitrary bins. While we know what function we want to apply, it has been designed to easily change this function in the future while maintaining the exact same python interface (ie old configs still work the same, no confdb reparse needed). Hence the rather abstract interface. Given this is a stream module, my understanding from replies on the fwcore hypernews that a TF1 / TF2 / TF3 is acceptable here. If its not, we can hard code the functions easily enough.

Martin, does this need to be backported to 80X as well for the HLT?

Cheers,
Sam

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @Sam-Harper for CMSSW_8_1_X.

It involves the following packages:

RecoEgamma/EgammaHLTProducers

@Martin-Grunewald, @perrotta, @cmsbuild, @fwyzard, @davidlange6 can you please review it and eventually sign? Thanks.
@lgray this is something you requested to watch as well.
@slava77, @Degano, @smuzaffar you are the release manager for this.

cms-bot commands are list here #13028

@Martin-Grunewald
Copy link
Contributor

Yes, we'd need a 80X PR as well.
Thanks!

@Martin-Grunewald
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/12076/console

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

@Martin-Grunewald
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_8_1_X IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @slava77, @davidlange6, @Degano, @smuzaffar

@davidlange6 davidlange6 merged commit 9e5e873 into cms-sw:CMSSW_8_1_X Mar 30, 2016
@Martin-Grunewald
Copy link
Contributor

@Sam-Harper @wmtan @Dr15Jones

For some reason I suddenly get compilation problems with your new Egamma plugin - since CMSSW_8_1_X_2016-03-28-2300:

>> Compiling edm plugin /data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc 
/data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc: In static member function 'static void EgammaHLTPixelMatchVarProducer::fillDescriptions(edm::ConfigurationDescriptions&)':
/data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:84:16: error: no match for 'operator=' (operand types are 'std::auto_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >' and 'std::unique_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >')
   binDescCases = 
                ^
In file included from /cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/memory:85:0,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/DataFormats/Common/interface/EDProductfwd.h:9,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/Framework/interface/Frameworkfwd.h:10,
                 from /data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:3:
/cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/backward/auto_ptr.h:136:7: note: candidate: std::auto_ptr< <template-parameter-1-1> >& std::auto_ptr< <template-parameter-1-1> >::operator=(std::auto_ptr< <template-parameter-1-1> >&) [with _Tp = edm::ParameterDescriptionCases<std::basic_string<char> >]
       operator=(auto_ptr& __a) throw()
       ^
/cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/backward/auto_ptr.h:136:7: note:   no known conversion for argument 1 from 'std::unique_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >' to 'std::auto_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >&'
/cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/backward/auto_ptr.h:154:9: note: candidate: template<class _Tp1> std::auto_ptr< <template-parameter-1-1> >& std::auto_ptr< <template-parameter-1-1> >::operator=(std::auto_ptr<_Up>&) [with _Tp1 = _Tp1; _Tp = edm::ParameterDescriptionCases<std::basic_string<char> >]
         operator=(auto_ptr<_Tp1>& __a) throw()
         ^
/cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/backward/auto_ptr.h:154:9: note:   template argument deduction/substitution failed:
/data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:84:16: note:   'std::unique_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >' is not derived from 'std::auto_ptr<Y'
   binDescCases = 
                ^
In file included from /cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/memory:85:0,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/DataFormats/Common/interface/EDProductfwd.h:9,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/Framework/interface/Frameworkfwd.h:10,
                 from /data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:3:
/cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/backward/auto_ptr.h:264:7: note: candidate: std::auto_ptr< <template-parameter-1-1> >& std::auto_ptr< <template-parameter-1-1> >::operator=(std::auto_ptr_ref<_Tp>) [with _Tp = edm::ParameterDescriptionCases<std::basic_string<char> >]
       operator=(auto_ptr_ref<element_type> __ref) throw()
       ^
/cvmfs/cms-ib.cern.ch/2016-14/slc6_amd64_gcc530/external/gcc/5.3.0/include/c++/5.3.0/backward/auto_ptr.h:264:7: note:   no known conversion for argument 1 from 'std::unique_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >' to 'std::auto_ptr_ref<edm::ParameterDescriptionCases<std::basic_string<char> > >'
/data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:107:105: error: no matching function for call to 'edm::ParameterSetDescription::ifValue(edm::ParameterDescription<std::basic_string<char> >, std::auto_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >&)'
   binParamDesc.ifValue(edm::ParameterDescription<std::string>("binType","AbsEtaClus",true), binDescCases);
                                                                                                         ^
In file included from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h:29:0,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h:25,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/Framework/interface/MakerMacros.h:6,
                 from /data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:6:
/cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescription.h:219:5: note: candidate: template<class T> edm::ParameterDescriptionNode* edm::ParameterSetDescription::ifValue(const edm::ParameterDescription<T>&, std::unique_ptr<edm::ParameterDescriptionCases<T> >)
     ifValue(ParameterDescription<T> const& switchParameter,
     ^
/cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescription.h:219:5: note:   template argument deduction/substitution failed:
/data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:107:105: note:   'std::auto_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >' is not derived from 'std::unique_ptr<edm::ParameterDescriptionCases<T> >'
   binParamDesc.ifValue(edm::ParameterDescription<std::string>("binType","AbsEtaClus",true), binDescCases);
                                                                                                         ^
In file included from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h:29:0,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h:25,
                 from /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/Framework/interface/MakerMacros.h:6,
                 from /data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:6:
/cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescription.h:356:5: note: candidate: template<class T> edm::ParameterDescriptionNode* edm::ParameterSetDescription::ifValue(const edm::ParameterDescription<T>&, std::unique_ptr<edm::ParameterDescriptionCases<T> >, bool, bool)
     ifValue(ParameterDescription<T> const& switchParameter,
     ^
/cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw/CMSSW_8_1_X_2016-03-28-2300/src/FWCore/ParameterSet/interface/ParameterSetDescription.h:356:5: note:   template argument deduction/substitution failed:
/data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTPixelMatchVarProducer.cc:107:105: note:   'std::auto_ptr<edm::ParameterDescriptionCases<std::basic_string<char> > >' is not derived from 'std::unique_ptr<edm::ParameterDescriptionCases<T> >'
   binParamDesc.ifValue(edm::ParameterDescription<std::string>("binType","AbsEtaClus",true), binDescCases);
                                                                                                         ^
>> Compiling edm plugin /data/CMS1/CMSSW_8_1_X_2016-03-28-2300/src/RecoEgamma/EgammaHLTProducers/src/EgammaHLTBcHcalIsolationProducersRegional.cc 
config/SCRAM/GMake/Makefile.rules:1917: recipe for target 'tmp/slc6_amd64_gcc530/src/RecoEgamma/EgammaHLTProducers/src/RecoEgammaEgammaHLTProducers/EgammaHLTPixelMatchVarProducer.o' failed
gmake: *** [tmp/slc6_amd64_gcc530/src/RecoEgamma/EgammaHLTProducers/src/RecoEgammaEgammaHLTProducers/EgammaHLTPixelMatchVarProducer.o] Error 1
gmake: *** Waiting for unfinished jobs....
gmake: *** [There are compilation/build errors. Please see the detail log above.] Error 2

maybe due to this PR #13820 not playing nice with your new code?

@Sam-Harper
Copy link
Contributor Author

Thanks for the heads up Martin, looking now and will see if I can fix the problem.

edm::ParameterSetDescription binParamDesc;

std::auto_ptr<edm::ParameterDescriptionCases<std::string>> binDescCases;
binDescCases =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make it compile, remove line 83 and begin line 84 with

auto binDescCases = ...

@Sam-Harper
Copy link
Contributor Author

Thanks Chris! I also had to std::move it into the ifValue func but all compiles and is fine now. Should I update this pull request by pushing the new commit to it or make a new one?

@Martin-Grunewald
Copy link
Contributor

The PR is already integrated, so you need to make a new PR.

@Martin-Grunewald
Copy link
Contributor

Concerning TF1 and overhead: perhaps the CMSSW FormulaEvalator could be used?
#13890

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

5 participants