54 desc.
add<
int>(
"minTrkHits",-1);
55 desc.
add<
int>(
"minMuonHits",-1);
56 desc.
add<
int>(
"minMuonStations",-1);
57 desc.
add<
double>(
"maxNormalizedChi2",1e99);
58 desc.
add<
unsigned int>(
"allowedTypeMask",255);
59 desc.
add<
unsigned int>(
"requiredTypeMask",0);
60 desc.
add<
unsigned int>(
"trkMuonId",0);
61 desc.
add<
double>(
"minPt",24);
62 desc.
add<
unsigned int>(
"minN",1);
63 desc.
add<
double>(
"maxAbsEta",1e99);
64 descriptions.
add(
"hltMuonTrkL1TFilter",desc);
75 if ( cands->size() != muons->size() )
79 std::vector<l1t::MuonRef> vl1cands;
80 std::vector<l1t::MuonRef>::iterator vl1cands_begin;
81 std::vector<l1t::MuonRef>::iterator vl1cands_end;
83 bool check_l1match =
true;
88 vl1cands_begin = vl1cands.begin();
89 vl1cands_end = vl1cands.end();
92 std::vector<unsigned int> filteredMuons;
93 for (
unsigned int i=0;
i<muons->size(); ++
i ){
98 for (
auto l1cand = vl1cands_begin; l1cand != vl1cands_end; ++l1cand) {
104 if (!matchl1)
continue;
109 if ( !
muon.innerTrack().isNull() ){
112 if ( !
muon.globalTrack().isNull() ){
114 if (
muon.globalTrack()->hitPattern().numberOfValidMuonHits()<
m_minMuonHits)
continue;
119 filteredMuons.push_back(
i);
122 for ( std::vector<unsigned int>::const_iterator itr = filteredMuons.begin(); itr != filteredMuons.end(); ++itr )
125 return filteredMuons.size()>=
m_minN;
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T getParameter(std::string const &) const
unsigned int m_requiredTypeMask
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > m_previousCandToken
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
muon::SelectionType m_trkMuonId
unsigned int m_allowedTypeMask
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
double m_maxNormalizedChi2
SelectionType
Selector type.
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
edm::InputTag m_previousCandTag
HLTMuonTrkL1TFilter(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
Abs< T >::type abs(const T &t)
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)
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > m_candsToken