Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:18:30

0001 #ifndef HLTHtMhtProducer_h_
0002 #define HLTHtMhtProducer_h_
0003 
0004 /** \class HLTHtMhtProducer
0005  *
0006  *  \brief  This produces a reco::MET object that stores HT and MHT
0007  *  \author Steven Lowette
0008  *  \author Michele de Gruttola, Jia Fu Low (Nov 2013)
0009  *
0010  *  HT & MHT are calculated using input CaloJet or PFJet collection.
0011  *  MHT can include or exclude the contribution from muons.
0012  *  HT is stored as `sumet_`, MHT is stored as `p4_` in the output.
0013  *
0014  */
0015 
0016 #include "FWCore/Framework/interface/stream/EDProducer.h"
0017 #include "FWCore/Framework/interface/Event.h"
0018 #include "FWCore/Framework/interface/EventSetup.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020 
0021 #include "DataFormats/Common/interface/View.h"
0022 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0023 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
0024 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
0025 
0026 namespace edm {
0027   class ConfigurationDescriptions;
0028 }
0029 
0030 // Class declaration
0031 class HLTHtMhtProducer : public edm::stream::EDProducer<> {
0032 public:
0033   explicit HLTHtMhtProducer(const edm::ParameterSet& iConfig);
0034   ~HLTHtMhtProducer() override;
0035   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0036   void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0037 
0038 private:
0039   /// Use pt; otherwise, use et.
0040   bool usePt_;
0041 
0042   /// Exclude PF muons in the MHT calculation (but not HT)
0043   /// Ignored if pfCandidatesLabel_ is empty.
0044   bool excludePFMuons_;
0045 
0046   /// Minimum number of jets passing pt and eta requirements
0047   int minNJetHt_;
0048   int minNJetMht_;
0049 
0050   /// Minimum pt requirement for jets
0051   double minPtJetHt_;
0052   double minPtJetMht_;
0053 
0054   /// Maximum (abs) eta requirement for jets
0055   double maxEtaJetHt_;
0056   double maxEtaJetMht_;
0057 
0058   /// Input jet, PFCandidate collections
0059   edm::InputTag jetsLabel_;
0060   edm::InputTag pfCandidatesLabel_;
0061 
0062   edm::EDGetTokenT<reco::CandidateView> m_theJetToken;
0063   edm::EDGetTokenT<reco::PFCandidateCollection> m_thePFCandidateToken;
0064 };
0065 
0066 #endif  // HLTHtMhtProducer_h_