File indexing completed on 2024-04-06 12:19:17
0001 #ifndef JetMETCorrections_FFTJetObjects_AbsFFTSpecificScaleCalculator_h
0002 #define JetMETCorrections_FFTJetObjects_AbsFFTSpecificScaleCalculator_h
0003
0004 #include "DataFormats/JetReco/interface/Jet.h"
0005 #include "DataFormats/JetReco/interface/FFTJet.h"
0006 #include "DataFormats/Math/interface/LorentzVector.h"
0007 #include "JetMETCorrections/FFTJetObjects/interface/FFTJetObjectFactory.h"
0008
0009
0010
0011
0012
0013 struct AbsFFTSpecificScaleCalculator {
0014 inline virtual ~AbsFFTSpecificScaleCalculator() {}
0015
0016 virtual void mapFFTJet(const reco::Jet& jet,
0017 const reco::FFTJet<float>& fftJet,
0018 const math::XYZTLorentzVector& current,
0019 double* buf,
0020 unsigned dim) const = 0;
0021 };
0022
0023
0024
0025
0026
0027
0028 class FFTSpecificScaleCalculatorFactory : public DefaultFFTJetObjectFactory<AbsFFTSpecificScaleCalculator> {
0029 typedef DefaultFFTJetObjectFactory<AbsFFTSpecificScaleCalculator> Base;
0030 friend class StaticFFTJetObjectFactory<FFTSpecificScaleCalculatorFactory>;
0031 FFTSpecificScaleCalculatorFactory();
0032 };
0033
0034 typedef StaticFFTJetObjectFactory<FFTSpecificScaleCalculatorFactory> StaticFFTSpecificScaleCalculatorFactory;
0035
0036 AbsFFTSpecificScaleCalculator* parseFFTSpecificScaleCalculator(const edm::ParameterSet& ps,
0037 const std::string& tableDescription);
0038
0039 #endif