Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // class declaration
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   //adds the values of MR and Rsq to the event as MET objects
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_;     // input tag identifying product
0048   edm::InputTag inputMetTag_;  // input tag identifying MET product
0049   bool doMuonCorrection_;      // do the muon corrections
0050   double min_R_;               // minimum R vaule
0051   double min_MR_;              // minimum MR vaule
0052   bool DoRPrime_;              // Do the R' instead of R
0053   bool accept_NJ_;             // accept or reject events with high NJ
0054   double R_offset_;            // R offset for parameterized cut
0055   double MR_offset_;           // MR offset for parameterized cut
0056   double R_MR_cut_;            // Cut value for parameterized cut
0057 };
0058 
0059 #endif  //HLTRFilter_h