56 desc.
add<
int>(
"minTrkHits",-1);
57 desc.
add<
int>(
"minMuonHits",-1);
58 desc.
add<
int>(
"minMuonStations",-1);
59 desc.
add<
double>(
"maxNormalizedChi2",1e99);
60 desc.
add<
unsigned int>(
"allowedTypeMask",255);
61 desc.
add<
unsigned int>(
"requiredTypeMask",0);
62 desc.
add<
unsigned int>(
"trkMuonId",0);
63 desc.
add<
double>(
"minPt",24);
64 desc.
add<
unsigned int>(
"minN",1);
65 desc.
add<
double>(
"maxAbsEta",1e99);
66 descriptions.
add(
"hltMuonTrkFilter",desc);
77 if ( cands->size() != muons->size() )
81 std::vector<l1extra::L1MuonParticleRef> vl1cands;
82 std::vector<l1extra::L1MuonParticleRef>::iterator vl1cands_begin;
83 std::vector<l1extra::L1MuonParticleRef>::iterator vl1cands_end;
85 bool check_l1match =
true;
90 vl1cands_begin = vl1cands.begin();
91 vl1cands_end = vl1cands.end();
94 std::vector<unsigned int> filteredMuons;
95 for (
unsigned int i=0;
i<muons->size(); ++
i ){
100 for (
auto l1cand = vl1cands_begin; l1cand != vl1cands_end; ++l1cand) {
106 if (!matchl1)
continue;
111 if ( !
muon.innerTrack().isNull() ){
114 if ( !
muon.globalTrack().isNull() ){
116 if (
muon.globalTrack()->hitPattern().numberOfValidMuonHits()<
m_minMuonHits)
continue;
121 filteredMuons.push_back(
i);
124 for ( std::vector<unsigned int>::const_iterator itr = filteredMuons.begin(); itr != filteredMuons.end(); ++itr )
127 return filteredMuons.size()>=
m_minN;
T getParameter(std::string const &) const
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
edm::EDGetTokenT< reco::MuonCollection > m_muonsToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
enum start value shifted to 81 so as to avoid clashes with PDG codes
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > m_previousCandToken
double m_maxNormalizedChi2
SelectionType
Selector type.
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > m_candsToken
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
#define DEFINE_FWK_MODULE(type)
unsigned int m_allowedTypeMask
edm::InputTag m_previousCandTag
Abs< T >::type abs(const T &t)
muon::SelectionType m_trkMuonId
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
HLTMuonTrkFilter(const edm::ParameterSet &)
unsigned int m_requiredTypeMask
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override