15 jetsInput_ = iConfig.template getParameter<edm::InputTag>(
"jetsInput");
16 L1TauJets_ = iConfig.template getParameter<edm::InputTag>(
"L1TauJets");
17 L1CenJets_ = iConfig.template getParameter<edm::InputTag>(
"L1CenJets");
18 L1ForJets_ = iConfig.template getParameter<edm::InputTag>(
"L1ForJets");
19 DeltaR_ = iConfig.template getParameter<double>(
"DeltaR");
21 typedef std::vector<T> TCollection;
22 m_theJetToken = consumes<TCollection>(jetsInput_);
23 m_theL1TauJetToken = consumes<l1extra::L1JetParticleCollection>(L1TauJets_);
24 m_theL1CenJetToken = consumes<l1extra::L1JetParticleCollection>(L1CenJets_);
25 m_theL1ForJetToken = consumes<l1extra::L1JetParticleCollection>(L1ForJets_);
26 produces<TCollection> ();
46 desc.
add<
double>(
"DeltaR",0.5);
54 typedef std::vector<T> TCollection;
59 std::unique_ptr<TCollection>
result (
new TCollection);
63 iEvent.
getByToken(m_theL1TauJetToken,l1TauJets);
66 iEvent.
getByToken(m_theL1CenJetToken,l1CenJets);
69 iEvent.
getByToken(m_theL1ForJetToken,l1ForJets);
71 typename TCollection::const_iterator jet_iter;
72 for (jet_iter = jets->begin(); jet_iter != jets->end(); ++jet_iter) {
77 for (
unsigned int jetc=0;jetc<l1TauJets->size();++jetc)
79 const double deltaeta=jet_iter->eta()-(*l1TauJets)[jetc].eta();
80 const double deltaphi=
deltaPhi(jet_iter->phi(),(*l1TauJets)[jetc].phi());
82 if (
sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=
true;
85 for (
unsigned int jetc=0;jetc<l1CenJets->size();++jetc)
87 const double deltaeta=jet_iter->eta()-(*l1CenJets)[jetc].eta();
88 const double deltaphi=
deltaPhi(jet_iter->phi(),(*l1CenJets)[jetc].phi());
89 if (
sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=
true;
92 for (
unsigned int jetc=0;jetc<l1ForJets->size();++jetc)
94 const double deltaeta=jet_iter->eta()-(*l1ForJets)[jetc].eta();
95 const double deltaphi=
deltaPhi(jet_iter->phi(),(*l1ForJets)[jetc].phi());
96 if (
sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=
true;
100 if (isMatched==
true) result->push_back(*jet_iter);
std::string defaultModuleLabel()
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
~HLTJetL1MatchProducer() override
HLTJetL1MatchProducer(const edm::ParameterSet &)
void produce(edm::Event &, const edm::EventSetup &) override
bool isMatched(TrackingRecHit const &hit)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)