CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L6SLBCorrectorImpl.h
Go to the documentation of this file.
1 //
3 // Level6 SLB (Semileptonic BJet) Corrector
4 // ----------------------------------------
5 //
6 // 25/10/2009 Hauke Held <hauke.held@cern.ch>
7 // Philipp Schieferdecker <philipp.schieferdecker@cern.ch>
9 #ifndef L6SLBCorrectorImpl_h
10 #define L6SLBCorrectorImpl_h
11 
18 
19 namespace edm
20 {
21  class ParameterSet;
22  class Event;
23  class EventSetup;
24  class ConsumesCollector;
26 }
27 
29  public:
31  std::unique_ptr<reco::JetCorrectorImpl> make(edm::Event const&, edm::EventSetup const&);
32 
33  static void fillDescriptions(edm::ConfigurationDescriptions& iDescriptions);
34  private:
38 };
39 
41 {
42  //
43  // construction / destruction
44  //
45 public:
47 
48  L6SLBCorrectorImpl ( std::shared_ptr<FactorizedJetCorrectorCalculator const> corrector,
49  edm::RefProd<std::vector<reco::SoftLeptonTagInfo>> const& bTagInfoMuon,
50  edm::RefProd<std::vector<reco::SoftLeptonTagInfo>> const& bTagInfoElec,
51  bool addMuonToJet);
52 
53  //
54  // member functions
55  //
56 public:
58  virtual double correction (const LorentzVector& fJet) const override;
60  virtual double correction (const reco::Jet& fJet) const override;
62  virtual double correction (const reco::Jet& fJet,
63  const edm::RefToBase<reco::Jet>& refToRawJet) const override;
64 
65  //----- if correction needs a jet reference -------------
66  virtual bool refRequired () const override {return true;}
67 
68  //
69  // private member functions
70  //
71 private:
72  int getBTagInfoIndex(const edm::RefToBase<reco::Jet>& refToRawJet,
73  const std::vector<reco::SoftLeptonTagInfo>& tags) const;
74 
75 
76  //
77  // member data
78  //
79 private:
80  //edm::InputTag srcBTagInfoElec_;
81  //edm::InputTag srcBTagInfoMuon_;
82  std::shared_ptr<FactorizedJetCorrectorCalculator const> corrector_;
86 
87 };
88 
89 #endif
L6SLBCorrectorImplMaker Maker
Base class for all types of Jets.
Definition: Jet.h:20
std::shared_ptr< FactorizedJetCorrectorCalculator const > corrector_
reco::Particle::LorentzVector LorentzVector
L6SLBCorrectorImplMaker(edm::ParameterSet const &, edm::ConsumesCollector)
L6SLBCorrectorImpl(std::shared_ptr< FactorizedJetCorrectorCalculator const > corrector, edm::RefProd< std::vector< reco::SoftLeptonTagInfo >> const &bTagInfoMuon, edm::RefProd< std::vector< reco::SoftLeptonTagInfo >> const &bTagInfoElec, bool addMuonToJet)
tuple corrector
Definition: mvaPFMET_cff.py:86
edm::EDGetTokenT< std::vector< reco::SoftLeptonTagInfo > > muonToken_
int getBTagInfoIndex(const edm::RefToBase< reco::Jet > &refToRawJet, const std::vector< reco::SoftLeptonTagInfo > &tags) const
tuple tags
Definition: o2o.py:248
virtual double correction(const LorentzVector &fJet) const override
apply correction using Jet information only
edm::RefProd< std::vector< reco::SoftLeptonTagInfo > > bTagInfoMuon_
static void fillDescriptions(edm::ConfigurationDescriptions &iDescriptions)
edm::RefProd< std::vector< reco::SoftLeptonTagInfo > > bTagInfoElec_
virtual bool refRequired() const override
if correction needs the jet reference
edm::EDGetTokenT< std::vector< reco::SoftLeptonTagInfo > > elecToken_
std::unique_ptr< reco::JetCorrectorImpl > make(edm::Event const &, edm::EventSetup const &)