27 muonTag_ ( iConfig.getParameter<
edm::InputTag>(
"inputMuonCollection") ),
29 applyTriggerIdLoose_ ( iConfig.getParameter<
bool>(
"applyTriggerIdLoose") ),
31 allowedTypeMask_ ( iConfig.getParameter<unsigned
int>(
"allowedTypeMask") ),
32 requiredTypeMask_ ( iConfig.getParameter<unsigned
int>(
"requiredTypeMask") ),
33 min_NMuonHits_ ( iConfig.getParameter<
int>(
"minNMuonHits") ),
34 min_NMuonStations_ ( iConfig.getParameter<
int>(
"minNMuonStations") ),
35 min_NTrkLayers_ ( iConfig.getParameter<
int>(
"minNTrkLayers") ),
36 min_NTrkHits_ ( iConfig.getParameter<
int>(
"minTrkHits") ),
37 min_PixLayers_ ( iConfig.getParameter<
int>(
"minPixLayer") ),
38 min_PixHits_ ( iConfig.getParameter<
int>(
"minPixHits") ),
39 min_Pt_ ( iConfig.getParameter<double>(
"minPt") ),
40 max_NormalizedChi2_ ( iConfig.getParameter<double>(
"maxNormalizedChi2") )
42 produces<reco::MuonCollection>();
51 desc.
add<
bool>(
"applyTriggerIdLoose",
true);
52 desc.
add<
unsigned int>(
"typeMuon",0);
53 desc.
add<
unsigned int>(
"allowedTypeMask",0);
54 desc.
add<
unsigned int>(
"requiredTypeMask",0);
55 desc.
add<
int>(
"minNMuonHits",0);
56 desc.
add<
int>(
"minNMuonStations",0);
57 desc.
add<
int>(
"minNTrkLayers",0);
58 desc.
add<
int>(
"minTrkHits",0);
59 desc.
add<
int>(
"minPixLayer",0);
60 desc.
add<
int>(
"minPixHits",0);
61 desc.
add<
double>(
"minPt",0.);
62 desc.
add<
double>(
"maxNormalizedChi2",9999.);
67 auto output = std::make_unique<reco::MuonCollection>();
72 for (
unsigned int i=0;
i<muons->size(); ++
i ){
81 if ( !
muon.innerTrack().isNull() ){
82 if (
muon.innerTrack()->hitPattern().trackerLayersWithMeasurement() <
min_NTrkLayers_)
continue;
84 if (
muon.innerTrack()->hitPattern().pixelLayersWithMeasurement() <
min_PixLayers_)
continue;
85 if (
muon.innerTrack()->hitPattern().numberOfValidPixelHits()<
min_PixHits_)
continue;
89 if ( !
muon.globalTrack().isNull() ){
91 if (
muon.globalTrack()->hitPattern().numberOfValidMuonHits() <
min_NMuonHits_)
continue;
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
const unsigned int allowedTypeMask_
const int min_NMuonStations_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const double max_NormalizedChi2_
const int min_NTrkLayers_
const unsigned int requiredTypeMask_
std::vector< Muon > MuonCollection
collection of Muon objects
SelectionType
Selector type.
MuonIDFilterProducerForHLT(const edm::ParameterSet &)
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
const bool applyTriggerIdLoose_
const muon::SelectionType type_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const edm::EDGetTokenT< reco::MuonCollection > muonToken_
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
~MuonIDFilterProducerForHLT() override
bool isLooseTriggerMuon(const reco::Muon &)