Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTMuonL1TRegionalFilter_h
0002 #define HLTMuonL1TRegionalFilter_h
0003 
0004 /** \class HLTMuonL1TRegionalFilter
0005  *
0006  *
0007  *  This filter cuts on MinPt and Quality in specified eta regions
0008  *
0009  *
0010  *  \author Cristina Botta, Zoltan Gecse
0011  *
0012  */
0013 
0014 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0015 #include "DataFormats/L1Trigger/interface/Muon.h"
0016 
0017 namespace edm {
0018   class ConfigurationDescriptions;
0019 }
0020 
0021 class HLTMuonL1TRegionalFilter : public HLTFilter {
0022 public:
0023   explicit HLTMuonL1TRegionalFilter(const edm::ParameterSet&);
0024   ~HLTMuonL1TRegionalFilter() override;
0025   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0026   bool hltFilter(edm::Event&,
0027                  const edm::EventSetup&,
0028                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0029 
0030 private:
0031   /// input tag identifying the product containing muons
0032   edm::InputTag candTag_;
0033   edm::EDGetTokenT<l1t::MuonBxCollection> candToken_;
0034 
0035   /// input tag identifying the product containing refs to muons passing the previous level
0036   edm::InputTag previousCandTag_;
0037   edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> previousCandToken_;
0038 
0039   /// the vector of eta region boundaries; note: # of boundaries = # of regions + 1
0040   std::vector<double> etaBoundaries_;
0041 
0042   /// the vector of MinPt values, one for eta each region
0043   std::vector<double> minPts_;
0044 
0045   /// Quality codes:
0046   /// to be updated with new L1 quality definitions
0047   std::vector<int> qualityBitMasks_;
0048 
0049   /// required number of passing candidates to pass the filter
0050   int minN_;
0051 
0052   /// use central bx only muons
0053   bool centralBxOnly_;
0054 };
0055 
0056 #endif  //HLTMuonL1TRegionalFilter_h