Hi Volker,

"dim" is the dimensionality of a correction function. It is not known
until it is fetched from the database for the first event processed.
The purpose of the "mapFFTJet" method is to map jet variables
into the input variables of that correction function. "mapFFTJet" knows
how to map one variable only. There is no reasonable way in which this
particular mapper can do its job unless dim == 1, that is why
an exception is thrown. Thus dim != 1 is clearly a misconfiguration
problem -- most likely, a wrong correction function configured.

Regards,
Igor

On 05/12/2014 05:18 AM, Volker Adler wrote:
>
> In JetMETCorrections/FFTJetObjects/interface/L2RecoScaleCalculator.h:
>
> > +
> > +class L2RecoScaleCalculator : public AbsFFTSpecificScaleCalculator
> > +{
> > +public:
> > +    inline explicit L2RecoScaleCalculator(const edm::ParameterSet& ps)
> > +        : m_radiusFactor(ps.getParameter<double>("radiusFactor")) {}
> > +
> > +    inline virtual ~L2RecoScaleCalculator() {}
> > +
> > +    inline virtual void mapFFTJet(const reco::Jet& /* jet */,
> > +                                  const reco::FFTJet<float>& fftJet,
> > +                                  const math::XYZTLorentzVector& /* current */,
> > +                                  double* buf, const unsigned dim) const
> > +    {
> > +        if (dim != 1)
> > +            throw cms::Exception("FFTJetBadConfig")
>
> Please do not throw at run time. An |edm::LogError| is preferred.
> Where is |dim| determined? Is it possibly known at c'tor time already?
> Beside that, it is not used in the function. So, why should the function break due to it?
>
> —
> Reply to this email directly or view it on GitHub <https://github.com/cms-sw/cmssw/pull/3810/files#r12521502>.
>