59 ,
ptMin_ ( iConfig.getParameter<double> (
"ptMin") )
60 ,
maxPTDiff_ ( iConfig.getParameter<double> (
"maxPTDiff") )
62 ,
debug_ ( iConfig.getParameter<
bool> (
"debug") )
65 produces<reco::PFCandidateCollection>(
"muons");
85 bool foundMuon =
false;
87 auto pOutputCandidateCollection = std::make_unique<reco::PFCandidateCollection>();
89 for (
unsigned i=0;
i<pfCandidates->size();
i++ ) {
97 if ( muon->isTrackerMuon()
98 && muon->isGlobalMuon()
99 && fabs(muon->innerTrack()->pt()/muon->globalTrack()->pt() - 1) <=
maxPTDiff_ 105 pOutputCandidateCollection->push_back( cand );
108 cout << cand << endl;
109 cout <<
"\t" <<
"tracker pT = ";
110 if (muon->isTrackerMuon())
cout << muon->innerTrack()->pt();
111 else cout <<
"(n/a)";
113 cout <<
"\t" <<
"global fit pT = ";
114 if (muon->isGlobalMuon())
cout << muon->globalTrack()->pt();
115 else cout <<
"(n/a)";
120 iEvent.
put(
std::move(pOutputCandidateCollection),
"muons");
122 bool pass = !foundMuon;
124 iEvent.
put(std::make_unique<bool>(pass));
edm::EDGetTokenT< reco::PFCandidateCollection > tokenPFCandidates_
bool filter(edm::Event &, const edm::EventSetup &) override
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
InconsistentMuonPFCandidateFilter(const edm::ParameterSet &)
double pt() const final
transverse momentum
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
#define DEFINE_FWK_MODULE(type)
~InconsistentMuonPFCandidateFilter() override
reco::MuonRef muonRef() const
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
Particle reconstructed by the particle flow algorithm.
virtual ParticleType particleId() const