34 candTag_ (iConfig.getParameter<
edm::InputTag > (
"CandTag") ),
36 previousCandTag_ (iConfig.getParameter<
edm::InputTag > (
"PreviousCandTag")),
37 previousCandToken_ (consumes<
trigger::TriggerFilterObjectWithRefs>(previousCandTag_)),
38 depTag_ (iConfig.getParameter<
std::vector<
edm::InputTag > >(
"DepTag" ) ),
40 min_N_ (iConfig.getParameter<
int> (
"MinN"))
46 decMapToken_ = consumes<edm::ValueMap<bool> >(depTag_.front());
48 LogDebug(
"HLTMuonIsoFilter").log( [
this](
auto& iLog) {
51 for(
auto const&
t: depTag_) {
52 iLog<<
" IsoTag["<<i++<<
"] : "<<
t.encode()<<
" \n";
54 iLog<<
" MinN : " <<
min_N_;
59 if (not isolatorPSet.
empty()) {
78 desc.
add<
int>(
"MinN",1);
79 std::vector<edm::InputTag> depTag(1,
edm::InputTag(
"hltL3MuonIsolations"));
80 desc.
add<std::vector<edm::InputTag> >(
"DepTag",depTag);
83 descriptions.
add(
"hltMuonIsoFilter", desc);
100 std::unique_ptr<edm::ValueMap<bool> >
109 vector<RecoChargedCandidateRef> vcands;
113 unsigned int nDep=
depTag_.size();
114 std::vector< Handle<edm::ValueMap<reco::IsoDeposit> > > depMap(nDep);
127 unsigned int nMu=mucands->size();
128 std::vector<bool> isos(nMu,
false);
130 for (; iMu<nMu; iMu++) {
143 for(
unsigned int iDep=0;iDep!=nDep;++iDep){
146 LogDebug(
"HLTMuonIsoFilter") <<
" Muon with q*pt= " << tk->charge()*tk->pt() <<
" (" << candref->charge()*candref->pt() <<
") " <<
", eta= " << tk->eta() <<
" (" << candref->eta() <<
") " <<
"; has deposit["<<iDep<<
"]: " << muonDeposit.
print();
157 isos[iMu]=(*decisionMap)[candref];
159 LogDebug(
"HLTMuonIsoFilter") <<
" Muon with q*pt= " << tk->charge()*tk->pt() <<
", eta= " << tk->eta() <<
"; "<<(isos[iMu]?
"Is an isolated muon.":
"Is NOT an isolated muon.");
161 if (!isos[iMu])
continue;
174 isoFiller.
insert(mucands, isos.begin(), isos.end());
180 LogDebug(
"HLTMuonIsoFilter") <<
" >>>>> Result of HLTMuonIsoFilter is " << accept <<
", number of muons passing isolation cuts= " << nIsolatedMu;
188 unsigned int i_max=vcands.size();
190 if (candref == vcands[i]) { ok=
true;
break;}
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool isNonnull() const
Checks for non-null.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< edm::ValueMap< bool > > decMapToken_
void insert(const H &h, I begin, I end)
std::vector< edm::EDGetTokenT< edm::ValueMap< reco::IsoDeposit > > > depToken_
std::unique_ptr< const muonisolation::MuIsoBaseIsolator > theDepositIsolator
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
HLTMuonIsoFilter(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
Container::value_type value_type
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
static bool triggerdByPreviousLevel(const reco::RecoChargedCandidateRef &, const std::vector< reco::RecoChargedCandidateRef > &)
T const * get() const
Returns C++ pointer to the item.
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< RecoChargedCandidate > RecoChargedCandidateCollection
collectin of RecoChargedCandidate objects
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
std::vector< DepositAndVetos > DepositContainer
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::string print() const
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > candToken_
~HLTMuonIsoFilter() override
std::vector< edm::InputTag > depTag_
T get(const Candidate &c)