File indexing completed on 2024-04-06 12:18:31
0001 #ifndef HLTRFilter_h
0002 #define HLTRFilter_h
0003
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/Utilities/interface/InputTag.h"
0008
0009 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0010
0011 #include "DataFormats/METReco/interface/CaloMET.h"
0012 #include "DataFormats/METReco/interface/PFMET.h"
0013 #include "DataFormats/METReco/interface/MET.h"
0014 #include "DataFormats/METReco/interface/METCollection.h"
0015 #include "TVector3.h"
0016 #include "TLorentzVector.h"
0017
0018 namespace edm {
0019 class ConfigurationDescriptions;
0020 }
0021
0022
0023
0024
0025
0026 class HLTRFilter : public HLTFilter {
0027 public:
0028 explicit HLTRFilter(const edm::ParameterSet&);
0029 ~HLTRFilter() override;
0030 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0031 bool hltFilter(edm::Event&,
0032 const edm::EventSetup&,
0033 trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0034
0035 static double CalcMR(TLorentzVector ja, TLorentzVector jb);
0036 static double CalcR(double MR,
0037 TLorentzVector ja,
0038 TLorentzVector jb,
0039 edm::Handle<edm::View<reco::MET>> met,
0040 const std::vector<math::XYZTLorentzVector>& muons);
0041
0042 void addObjects(edm::Event&, trigger::TriggerFilterObjectWithRefs& filterproduct, double MR, double Rsq) const;
0043
0044 private:
0045 edm::EDGetTokenT<std::vector<math::XYZTLorentzVector>> m_theInputToken;
0046 edm::EDGetTokenT<edm::View<reco::MET>> m_theMETToken;
0047 edm::InputTag inputTag_;
0048 edm::InputTag inputMetTag_;
0049 bool doMuonCorrection_;
0050 double min_R_;
0051 double min_MR_;
0052 bool DoRPrime_;
0053 bool accept_NJ_;
0054 double R_offset_;
0055 double MR_offset_;
0056 double R_MR_cut_;
0057 };
0058
0059 #endif