Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTMuonL3SimplePreFilter_h
0002 #define HLTMuonL3SimplePreFilter_h
0003 
0004 /** \class HLTMuonL3SimplePreFilter
0005  *
0006  *
0007  *  This class is an HLTFilter (-> EDFilter) implementing
0008  *  the a simple filtering for HLT muons 
0009  * 
0010  *  Original author:  S. Folgueras <santiago.folgueras@cern.ch>
0011  *
0012  */
0013 
0014 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0015 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0016 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0017 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0018 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0019 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0020 
0021 class HLTMuonL3SimplePreFilter : public HLTFilter {
0022 public:
0023   explicit HLTMuonL3SimplePreFilter(const edm::ParameterSet &);
0024   ~HLTMuonL3SimplePreFilter() 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   static bool triggerdByPreviousLevel(const reco::RecoChargedCandidateRef &,
0032                                       const std::vector<reco::RecoChargedCandidateRef> &);
0033 
0034   edm::InputTag candTag_;                                             // input tag identifying muon container
0035   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> candToken_;  // token identifying muon container
0036   edm::InputTag previousCandTag_;  // input tag identifying product contains muons passing the previous level
0037   edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>
0038       previousCandToken_;  // token identifying product contains muons passing the previous level
0039   edm::InputTag beamspotTag_;
0040   edm::EDGetTokenT<reco::BeamSpot> beamspotToken_;
0041 
0042   const int min_N_;                  // minimum number of muons to fire the trigger
0043   const double max_Eta_;             // Eta cut
0044   const int min_Nhits_;              // threshold on number of hits on muon
0045   const double max_Dz_;              // dz cut
0046   const double min_DxySig_;          // dxy significance cut
0047   const double min_Pt_;              // pt threshold in GeV
0048   const double nsigma_Pt_;           // pt uncertainty margin (in number of sigmas)
0049   const double max_NormalizedChi2_;  // cutoff in normalized chi2
0050   const double max_DXYBeamSpot_;     // cutoff in dxy from the beamspot
0051   const double min_DXYBeamSpot_;     // minimum cut on dxy from the beamspot
0052   const int min_NmuonHits_;          // cutoff in minumum number of chi2 hits
0053   const double max_PtDifference_;    // cutoff in maximum different between global track and tracker track
0054   const double min_TrackPt_;         // cutoff in tracker track pt
0055   bool matchPreviousCand_;
0056 };
0057 #endif  //HLTMuonL3SimplePreFilter_h