Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTMuonPFIsoFilter_h
0002 #define HLTMuonPFIsoFilter_h
0003 
0004 /** \class HLTMuonPFIsoFilter
0005  *
0006  *
0007  *  This class is an HLTFilter (-> EDFilter) implementing
0008  *  the isolation filtering for HLT muons
0009  *
0010  *
0011  */
0012 
0013 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0014 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0015 #include "RecoMuon/MuonIsolation/interface/MuIsoBaseIsolator.h"
0016 #include "RecoMuon/MuonIsolation/interface/MuonIsolatorFactory.h"
0017 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
0018 
0019 namespace edm {
0020   class ConfigurationDescriptions;
0021 }
0022 
0023 class HLTMuonPFIsoFilter : public HLTFilter {
0024 public:
0025   explicit HLTMuonPFIsoFilter(const edm::ParameterSet &);
0026   ~HLTMuonPFIsoFilter() override;
0027   static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0028   bool hltFilter(edm::Event &,
0029                  const edm::EventSetup &,
0030                  trigger::TriggerFilterObjectWithRefs &filterproduct) const override;
0031 
0032 private:
0033   static bool triggerdByPreviousLevel(const reco::RecoChargedCandidateRef &,
0034                                       const std::vector<reco::RecoChargedCandidateRef> &);
0035 
0036   edm::InputTag candTag_;                                             // input tag identifying muon container
0037   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> candToken_;  // token identifying muon container
0038   edm::InputTag previousCandTag_;  // input tag identifying product contains muons passing the previous level
0039   edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>
0040       previousCandToken_;              // token identifying product contains muons passing the previous level
0041   std::vector<edm::InputTag> depTag_;  // input tags identifying deposit maps
0042   std::vector<edm::EDGetTokenT<edm::ValueMap<double> > > depToken_;  // tokens identifying deposit maps
0043   edm::InputTag rhoTag_;                                             // input tag identifying rho container
0044   edm::EDGetTokenT<double> rhoToken_;                                // token identifying rho container
0045 
0046   double maxIso_;     // max PF iso deposit allowed
0047   int min_N_;         // minimum number of muons to fire the trigger
0048   bool onlyCharged_;  // if true, only consider the charged component for isolation
0049   bool doRho_;        // if true, apply deltaBeta correction
0050   double effArea_;    // value for effective area for rho correction
0051 };
0052 
0053 #endif  //HLTMuonPFIsoFilter_h