Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLT2L1TkMuonL1TkMuonMuRefDR_h
0002 #define HLT2L1TkMuonL1TkMuonMuRefDR_h
0003 
0004 #include "DataFormats/Common/interface/Handle.h"
0005 #include "DataFormats/Common/interface/Ref.h"
0006 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
0007 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0008 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0009 
0010 #include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h"
0011 
0012 #include <string>
0013 #include <vector>
0014 namespace trigger {
0015   class TriggerFilterObjectWithRefs;
0016 }
0017 
0018 //
0019 // class declaration
0020 //
0021 
0022 class HLT2L1TkMuonL1TkMuonMuRefDR : public HLTFilter {
0023 public:
0024   explicit HLT2L1TkMuonL1TkMuonMuRefDR(const edm::ParameterSet&);
0025   ~HLT2L1TkMuonL1TkMuonMuRefDR() override;
0026   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0027   bool hltFilter(edm::Event&,
0028                  const edm::EventSetup&,
0029                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0030   bool getCollections(edm::Event& iEvent,
0031                       std::vector<l1t::TrackerMuonRef>& coll1,
0032                       std::vector<l1t::TrackerMuonRef>& coll2,
0033                       trigger::TriggerFilterObjectWithRefs& filterproduct) const;
0034   bool computeDR(edm::Event& iEvent, l1t::TrackerMuonRef& c1, l1t::TrackerMuonRef& c2) const;
0035 
0036 private:
0037   // configuration
0038   const std::vector<edm::InputTag> originTag1_;  // input tag identifying originals 1st product
0039   const std::vector<edm::InputTag> originTag2_;  // input tag identifying originals 2nd product
0040   const edm::InputTag inputTag1_;                // input tag identifying filtered 1st product
0041   const edm::InputTag inputTag2_;                // input tag identifying filtered 2nd product
0042   const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> inputToken1_;
0043   const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> inputToken2_;
0044   const double minDR_;  // minimum dR between two muon regional candidates linked to L1TkMuon
0045   const int min_N_;     // number of pairs passing cuts required
0046   const bool same_;     // 1st and 2nd product are one and the same
0047 
0048   // eta and phi scaling for RegionalMuonCand
0049   static constexpr unsigned int emtfRegion_{3};
0050   static constexpr float etaScale_{0.010875};
0051   static constexpr float phiScale_{2. * M_PI / 576.};
0052 };
0053 
0054 #endif  //HLT2L1TkMuonL1TkMuonMuRefDR_h