File indexing completed on 2024-04-06 12:18:37
0001 #ifndef HLTMuonL3PreFilter_h
0002 #define HLTMuonL3PreFilter_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0015 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
0016 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0017 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0018 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0019 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0020 #include "DataFormats/MuonReco/interface/MuonSelectors.h"
0021 #include "DataFormats/MuonReco/interface/MuonTrackLinks.h"
0022 #include "DataFormats/Math/interface/deltaR.h"
0023 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0024 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0025 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0026 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0027 #include "MuonAnalysis/MuonAssociators/interface/PropagateToMuonSetup.h"
0028
0029 class HLTMuonL3PreFilter : public HLTFilter {
0030 public:
0031 explicit HLTMuonL3PreFilter(const edm::ParameterSet&);
0032 ~HLTMuonL3PreFilter() override;
0033 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0034 bool hltFilter(edm::Event&,
0035 const edm::EventSetup&,
0036 trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0037
0038 private:
0039 bool triggeredByLevel2(const reco::TrackRef& track, std::vector<reco::RecoChargedCandidateRef>& vcands) const;
0040 bool applySelection(const reco::RecoChargedCandidateRef&, const reco::BeamSpot&) const;
0041
0042 const PropagateToMuonSetup propSetup_;
0043 const edm::InputTag beamspotTag_;
0044 const edm::EDGetTokenT<reco::BeamSpot> beamspotToken_;
0045 const edm::InputTag candTag_;
0046 const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> candToken_;
0047 const edm::InputTag previousCandTag_;
0048 const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>
0049 previousCandToken_;
0050 const bool requireL3MuonTrajectorySeed_;
0051 const edm::InputTag l1CandTag_;
0052 const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>
0053 l1CandToken_;
0054 const edm::InputTag recoMuTag_;
0055 const edm::EDGetTokenT<reco::MuonCollection> recoMuToken_;
0056 const int min_N_;
0057 const double max_Eta_;
0058 const int min_Nhits_;
0059 const double max_Dr_;
0060 const double min_Dr_;
0061 const double max_Dz_;
0062 const double min_DxySig_;
0063 const double min_Pt_;
0064 const double nsigma_Pt_;
0065 const double max_NormalizedChi2_;
0066 const double max_DXYBeamSpot_;
0067 const double min_DXYBeamSpot_;
0068 const int min_NmuonHits_;
0069 const double max_PtDifference_;
0070 const double min_TrackPt_;
0071
0072
0073 const int min_MuonStations_L3fromL1_;
0074 const unsigned int allowedTypeMask_L3fromL1_;
0075 const unsigned int requiredTypeMask_L3fromL1_;
0076 double maxNormalizedChi2_L3fromL1_;
0077 muon::SelectionType trkMuonId_;
0078 const double L1MatchingdR_;
0079 const double L1MatchingdR2_;
0080 const bool matchPreviousCand_;
0081
0082 const bool devDebug_;
0083 const edm::InputTag theL3LinksLabel;
0084 const edm::EDGetTokenT<reco::MuonTrackLinksCollection> linkToken_;
0085 };
0086
0087 #endif