Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTRHemisphere_h
0002 #define HLTRHemisphere_h
0003 
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/stream/EDFilter.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/Utilities/interface/InputTag.h"
0009 
0010 #include "DataFormats/Common/interface/View.h"
0011 #include "DataFormats/JetReco/interface/CaloJet.h"
0012 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0013 
0014 #include "DataFormats/METReco/interface/CaloMET.h"
0015 #include "DataFormats/METReco/interface/CaloMETCollection.h"
0016 
0017 #include "DataFormats/MuonReco/interface/Muon.h"
0018 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0019 
0020 namespace edm {
0021   class ConfigurationDescriptions;
0022 }
0023 
0024 //
0025 // class declaration
0026 //
0027 
0028 class HLTRHemisphere : public edm::stream::EDFilter<> {
0029 public:
0030   explicit HLTRHemisphere(const edm::ParameterSet&);
0031   ~HLTRHemisphere() override;
0032   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0033   bool filter(edm::Event&, const edm::EventSetup&) override;
0034 
0035 private:
0036   edm::EDGetTokenT<edm::View<reco::Jet>> m_theJetToken;
0037   edm::EDGetTokenT<std::vector<reco::RecoChargedCandidate>> m_theMuonToken;
0038   edm::InputTag inputTag_;  // input tag identifying product
0039   edm::InputTag muonTag_;   // input tag for the muon objects
0040   bool doMuonCorrection_;   // do the muon corrections
0041   double muonEta_;          // maximum muon eta
0042   double min_Jet_Pt_;       // minimum jet pT threshold for collection
0043   double max_Eta_;          // maximum eta
0044   int max_NJ_;              // don't calculate R if event has more than NJ jets
0045   bool accNJJets_;          // accept or reject events with high NJ
0046 
0047   void ComputeHemispheres(std::unique_ptr<std::vector<math::XYZTLorentzVector>>& hlist,
0048                           const std::vector<math::XYZTLorentzVector>& JETS,
0049                           std::vector<math::XYZTLorentzVector>* extraJets = nullptr);
0050 };
0051 
0052 #endif  //HLTRHemisphere_h