cms-sw/cmssw — pull request #6365 by davidlt (2014-11-13 00:58:44+00:00)
Title: Do not declare class in template instantiation; add missing header

The package contains two files, which cause Clang to abort (assert):
- `PhysicsTools/PatUtils/plugins/SmearedJetProducer.cc`
- `PhysicsTools/PatUtils/plugins/SmearedPATJetProducer.cc`

After long investigation I stopped here:

corrJetP4 =
std::is_base_of::value ?
jetCorrExtractor_(jet, jetCorrLabel_.label(), jetCorrEtaMax_, &rawJetP4) :
jetCorrExtractor_(jet, jetCorr.product(), jetCorrEtaMax_, &rawJetP4);

`PATJetCorrExtractor` was nowhere to be found in the translation unit.
We have a class declaration in template instantion.

The patch removes such declaration and includes a header (from the same
package), which declares and defines `PATJetCorrExtractor`.

Resolves both Clang aborts.

Signed-off-by: David Abdurachmanov