Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:09:38

0001 #ifndef HLTMuonIsoFilter_h
0002 #define HLTMuonIsoFilter_h
0003 
0004 /** \class HLTMuonIsoFilter
0005  *
0006  *
0007  *  This class is an HLTFilter (-> EDFilter) implementing
0008  *  the isolation filtering for HLT muons
0009  *
0010  *  \author J. Alcaraz
0011  *
0012  */
0013 
0014 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0015 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0016 #include "RecoMuon/MuonIsolation/interface/MuIsoBaseIsolator.h"
0017 #include "RecoMuon/MuonIsolation/interface/MuonIsolatorFactory.h"
0018 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
0019 
0020 namespace edm {
0021   class ConfigurationDescriptions;
0022 }
0023 
0024 class HLTMuonIsoFilter : public HLTFilter {
0025 public:
0026   explicit HLTMuonIsoFilter(const edm::ParameterSet &);
0027   ~HLTMuonIsoFilter() override;
0028   static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0029   bool hltFilter(edm::Event &,
0030                  const edm::EventSetup &,
0031                  trigger::TriggerFilterObjectWithRefs &filterproduct) const override;
0032 
0033 private:
0034   static bool triggerdByPreviousLevel(const reco::RecoChargedCandidateRef &,
0035                                       const std::vector<reco::RecoChargedCandidateRef> &);
0036 
0037   edm::InputTag candTag_;                                             // input tag identifying muon container
0038   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> candToken_;  // token identifying muon container
0039   edm::InputTag previousCandTag_;  // input tag identifying product contains muons passing the previous level
0040   edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>
0041       previousCandToken_;              // token identifying product contains muons passing the previous level
0042   std::vector<edm::InputTag> depTag_;  // input tags identifying deposit maps
0043   std::vector<edm::EDGetTokenT<edm::ValueMap<reco::IsoDeposit> > > depToken_;  // tokens identifying deposit maps
0044   edm::EDGetTokenT<edm::ValueMap<bool> > decMapToken_;                         // bool decision map
0045 
0046   std::unique_ptr<const muonisolation::MuIsoBaseIsolator> theDepositIsolator;
0047 
0048   int min_N_;  // minimum number of muons to fire the trigger
0049 };
0050 
0051 #endif  //HLTMuonIsoFilter_h