File indexing completed on 2024-04-06 12:19:15
0001
0002
0003
0004
0005
0006
0007 #ifndef JetMETCorrections_JetCorrector_L1FastjetCorrectorImpl_h
0008 #define JetMETCorrections_JetCorrector_L1FastjetCorrectorImpl_h 1
0009
0010 #include "JetMETCorrections/JetCorrector/interface/JetCorrectorImpl.h"
0011 #include "JetMETCorrections/Algorithms/interface/JetCorrectorImplMakerBase.h"
0012 #include "CondFormats/JetMETObjects/interface/FactorizedJetCorrectorCalculator.h"
0013 #include "FWCore/Utilities/interface/EDGetToken.h"
0014
0015 namespace edm {
0016 class ParameterSet;
0017 class Event;
0018 class EventSetup;
0019 class ConsumesCollector;
0020 class ConfigurationDescriptions;
0021 }
0022
0023 class L1FastjetCorrectorImplMaker : public JetCorrectorImplMakerBase {
0024 public:
0025 L1FastjetCorrectorImplMaker(edm::ParameterSet const&, edm::ConsumesCollector);
0026 std::unique_ptr<reco::JetCorrectorImpl> make(edm::Event const&, edm::EventSetup const&);
0027
0028 static void fillDescriptions(edm::ConfigurationDescriptions& iDescriptions);
0029
0030 private:
0031 edm::EDGetTokenT<double> rhoToken_;
0032 };
0033
0034 class L1FastjetCorrectorImpl : public reco::JetCorrectorImpl {
0035 public:
0036 typedef L1FastjetCorrectorImplMaker Maker;
0037
0038
0039 L1FastjetCorrectorImpl(std::shared_ptr<FactorizedJetCorrectorCalculator const> corrector, double rho)
0040 : rho_(rho), corrector_(corrector) {}
0041
0042
0043
0044
0045 double correction(const LorentzVector& fJet) const override;
0046
0047 double correction(const reco::Jet& fJet) const override;
0048
0049
0050 bool refRequired() const override { return false; }
0051
0052 private:
0053
0054 double rho_;
0055 std::shared_ptr<FactorizedJetCorrectorCalculator const> corrector_;
0056 };
0057
0058 #endif