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
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_;
0039 edm::InputTag muonTag_;
0040 bool doMuonCorrection_;
0041 double muonEta_;
0042 double min_Jet_Pt_;
0043 double max_Eta_;
0044 int max_NJ_;
0045 bool accNJJets_;
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