Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:21:24

0001 ////////////////////////////////////////////////////////////////////////////////
0002 //
0003 // Level6 SLB (Semileptonic BJet) Corrector
0004 // ----------------------------------------
0005 //
0006 //           25/10/2009  Hauke Held             <hauke.held@cern.ch>
0007 //                       Philipp Schieferdecker <philipp.schieferdecker@cern.ch>
0008 ////////////////////////////////////////////////////////////////////////////////
0009 #ifndef L6SLBCorrector_h
0010 #define L6SLBCorrector_h
0011 
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "JetMETCorrections/Objects/interface/JetCorrector.h"
0014 #include "CondFormats/JetMETObjects/interface/FactorizedJetCorrectorCalculator.h"
0015 #include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h"
0016 #include "DataFormats/BTauReco/interface/SoftLeptonTagInfo.h"
0017 
0018 class L6SLBCorrector : public JetCorrector {
0019   //
0020   // construction / destruction
0021   //
0022 public:
0023   L6SLBCorrector(const JetCorrectorParameters& fParam, const edm::ParameterSet& fConfig);
0024   ~L6SLBCorrector() override;
0025 
0026   //
0027   // member functions
0028   //
0029 public:
0030   /// apply correction using Jet information only
0031   double correction(const LorentzVector& fJet) const override;
0032   /// apply correction using Jet information only
0033   double correction(const reco::Jet& fJet) const override;
0034   /// apply correction using all event information
0035   double correction(const reco::Jet& fJet,
0036                     const edm::RefToBase<reco::Jet>& refToRawJet,
0037                     const edm::Event& fEvent,
0038                     const edm::EventSetup& fSetup) const override;
0039 
0040   /// if correction needs event information
0041   bool eventRequired() const override { return true; }
0042 
0043   //----- if correction needs a jet reference -------------
0044   bool refRequired() const override { return true; }
0045 
0046   //
0047   // private member functions
0048   //
0049 private:
0050   int getBTagInfoIndex(const edm::RefToBase<reco::Jet>& refToRawJet,
0051                        const std::vector<reco::SoftLeptonTagInfo>& tags) const;
0052 
0053   //
0054   // member data
0055   //
0056 private:
0057   std::string tagName_;
0058   bool addMuonToJet_;
0059   edm::InputTag srcBTagInfoElec_;
0060   edm::InputTag srcBTagInfoMuon_;
0061   FactorizedJetCorrectorCalculator* corrector_;
0062 };
0063 
0064 #endif