Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTrigger_Muon_HLTDiMuonGlbTrkFilter_h
0002 #define HLTrigger_Muon_HLTDiMuonGlbTrkFilter_h
0003 
0004 // author D.Kovalskyi
0005 
0006 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0007 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0008 #include "DataFormats/MuonReco/interface/MuonSelectors.h"
0009 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0010 #include "MagneticField/Engine/interface/MagneticField.h"
0011 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0012 
0013 namespace edm {
0014   class ConfigurationDescriptions;
0015 }
0016 
0017 class HLTDiMuonGlbTrkFilter : public HLTFilter {
0018 public:
0019   HLTDiMuonGlbTrkFilter(const edm::ParameterSet&);
0020   ~HLTDiMuonGlbTrkFilter() override = default;
0021 
0022   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0023 
0024   bool hltFilter(edm::Event&,
0025                  const edm::EventSetup&,
0026                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0027 
0028 private:
0029   edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> const idealMagneticFieldRecordToken_;
0030   // WARNING: two input collection represent should be aligned and represent
0031   // the same list of muons, just stored in different containers
0032   edm::InputTag m_muonsTag;                             // input collection of muons
0033   edm::EDGetTokenT<reco::MuonCollection> m_muonsToken;  // input collection of muons
0034   edm::InputTag m_candsTag;                             // input collection of candidates to be referenced
0035   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> m_candsToken;  // input collection of candidates to be referenced
0036   int m_minTrkHits;
0037   int m_minMuonHits;
0038   unsigned int m_allowedTypeMask;
0039   unsigned int m_requiredTypeMask;
0040   double m_maxNormalizedChi2;
0041   double m_minDR2;
0042   double m_minPtMuon1;
0043   double m_minPtMuon2;
0044   double m_maxEtaMuon;
0045   double m_maxYDimuon;
0046   double m_minMass;
0047   double m_maxMass;
0048   int m_chargeOpt;
0049   double m_maxDCAMuMu;
0050   double m_maxdEtaMuMu;
0051   muon::SelectionType m_trkMuonId;
0052   bool m_saveTags;
0053 };
0054 
0055 #endif