Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTMuonL1RegionalFilter_h
0002 #define HLTMuonL1RegionalFilter_h
0003 
0004 /** \class HLTMuonL1RegionalFilter
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 namespace edm {
0016   class ConfigurationDescriptions;
0017 }
0018 
0019 class HLTMuonL1RegionalFilter : public HLTFilter {
0020 public:
0021   explicit HLTMuonL1RegionalFilter(const edm::ParameterSet&);
0022   ~HLTMuonL1RegionalFilter() override;
0023   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0024   bool hltFilter(edm::Event&,
0025                  const edm::EventSetup&,
0026                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0027 
0028 private:
0029   /// input tag identifying the product containing muons
0030   edm::InputTag candTag_;
0031   edm::EDGetTokenT<l1extra::L1MuonParticleCollection> candToken_;
0032 
0033   /// input tag identifying the product containing refs to muons passing the previous level
0034   edm::InputTag previousCandTag_;
0035   edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> previousCandToken_;
0036 
0037   /// the vector of eta region boundaries; note: # of boundaries = # of regions + 1
0038   std::vector<double> etaBoundaries_;
0039 
0040   /// the vector of MinPt values, one for eta each region
0041   std::vector<double> minPts_;
0042 
0043   /// Quality codes:
0044   ///
0045   /// 0  .. no muon
0046   /// 1  .. beam halo muon (CSC)
0047   /// 2  .. very low quality level 1 (e.g. ignore in single and di-muon trigger)
0048   /// 3  .. very low quality level 2 (e.g. ignore in single muon trigger use in di-muon trigger)
0049   /// 4  .. very low quality level 3 (e.g. ignore in di-muon trigger, use in single-muon trigger)
0050   /// 5  .. unmatched RPC
0051   /// 6  .. unmatched DT or CSC
0052   /// 7  .. matched DT-RPC or CSC-RPC
0053   ///
0054   /// attention: try not to rely on quality codes in analysis: they may change again
0055   ///
0056   /// Quality bit mask:
0057   ///
0058   /// the eight lowest order or least significant bits correspond to the qulity codes above;
0059   /// if a bit is 1, that code is accepted, otherwise not;
0060   /// example: 11101000 accepts qualities 3, 5, 6, 7
0061   ///
0062   /// the vector of quality bit masks, one for each eta region
0063   std::vector<int> qualityBitMasks_;
0064 
0065   /// required number of passing candidates to pass the filter
0066   int minN_;
0067 };
0068 
0069 #endif  //HLTMuonL1RegionalFilter_h