112 produces<std::vector<reco::CaloJet> >();
113 produces<std::vector<reco::CaloJet> >(
"PUjets");
114 produces<reco::JetTagCollection>();
124 desc.
add<
double>(
"MinGoodJetTrackPtRatio", 0.045);
125 desc.
add<
double>(
"MinGoodJetTrackPt", 1.8);
126 desc.
add<
double>(
"MaxTrackDistanceToJet", 0.04);
127 desc.
add<
double>(
"MinTrackPt", 0.6);
128 desc.
add<
double>(
"MaxTrackChi2", 20.);
129 desc.
add<
bool>(
"UseForwardJetsAsNoPU",
true);
130 desc.
add<
double>(
"MinEtaForwardJets", 2.4);
131 desc.
add<
double>(
"MinEtForwardJets", 40.);
132 descriptions.
add(
"pixelJetPuId", desc);
142 std::unique_ptr<std::vector<reco::CaloJet> > pOut(
new std::vector<reco::CaloJet>);
143 std::unique_ptr<std::vector<reco::CaloJet> > pOut_PUjets(
new std::vector<reco::CaloJet>);
149 unsigned int tsize = tracks->size();
150 float teta[tsize], tphi[tsize];
152 for (
auto const& tr : *tracks) {
174 if (!generaljets.
product()->empty()) {
180 if (!primaryVertex->empty()) {
185 GlobalVector direction(jetMomentum.x(), jetMomentum.y(), jetMomentum.z());
191 pOut->push_back(*itJet);
194 auto itTrack = tracks->begin();
195 for (
unsigned int i = 0; i < tsize; ++
i) {
197 if (deltaR2 < 0.25) {
204 trMomentum += itTrack->momentum();
211 pOut->push_back(*itJet);
214 pOut_PUjets->push_back(*itJet);
218 (*pOut_jetTagCollection)[jRef] = trMomentum.rho();
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
double m_MinGoodJetTrackPt
bool getByToken(EDGetToken token, Handle< PROD > &result) const
reco::TransientTrack build(const reco::Track *p) const
edm::EDGetTokenT< edm::View< reco::Jet > > generaljetsToken
edm::EDGetTokenT< edm::View< reco::CaloJet > > jetsToken
U second(std::pair< T, U > const &p)
edm::InputTag m_primaryVertex
#define DEFINE_FWK_MODULE(type)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::EDGetTokenT< reco::VertexCollection > primaryVertexToken
ParameterDescriptionBase * add(U const &iLabel, T const &value)
double m_MaxTrackDistanceToJet
PixelJetPuId(const edm::ParameterSet &)
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
edm::EDGetTokenT< std::vector< reco::Track > > tracksToken
T const * product() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void add(std::string const &label, ParameterSetDescription const &psetDescription)
RefToBaseProd< T > makeRefToBaseProdFrom(RefToBase< T > const &iRef, Event const &iEvent)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
double m_MinGoodJetTrackPtRatio
primaryVertex
hltOfflineBeamSpot for HLTMON
void produce(edm::StreamID sid, edm::Event &, const edm::EventSetup &) const override