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> ();
49 desc.
add<
double>(
"DeltaR",0.5);
57 typedef std::vector<T> TCollection;
62 std::auto_ptr<TCollection>
result (
new TCollection);
66 iEvent.
getByToken(m_theL1TauJetToken,l1TauJets);
69 iEvent.
getByToken(m_theL1CenJetToken,l1CenJets);
72 iEvent.
getByToken(m_theL1ForJetToken,l1ForJets);
74 typename TCollection::const_iterator jet_iter;
75 for (jet_iter = jets->begin(); jet_iter != jets->end(); ++jet_iter) {
80 for (
unsigned int jetc=0;jetc<l1TauJets->size();++jetc)
82 const double deltaeta=jet_iter->eta()-(*l1TauJets)[jetc].eta();
83 const double deltaphi=
deltaPhi(jet_iter->phi(),(*l1TauJets)[jetc].phi());
85 if (
sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=
true;
88 for (
unsigned int jetc=0;jetc<l1CenJets->size();++jetc)
90 const double deltaeta=jet_iter->eta()-(*l1CenJets)[jetc].eta();
91 const double deltaphi=
deltaPhi(jet_iter->phi(),(*l1CenJets)[jetc].phi());
92 if (
sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=
true;
95 for (
unsigned int jetc=0;jetc<l1ForJets->size();++jetc)
97 const double deltaeta=jet_iter->eta()-(*l1ForJets)[jetc].eta();
98 const double deltaphi=
deltaPhi(jet_iter->phi(),(*l1ForJets)[jetc].phi());
99 if (
sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=
true;
103 if (isMatched==
true) result->push_back(*jet_iter);
virtual void produce(edm::Event &, const edm::EventSetup &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
HLTJetL1MatchProducer(const edm::ParameterSet &)
bool isMatched(TrackingRecHit const &hit)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)