18 m_jetSrc_token( consumes<
edm::
View<
reco::
Jet> >(conf.getParameter<
edm::InputTag>(
"JetSrc") ) ),
21 m_beamSpotSrc_token( consumes<
reco::
BeamSpot>(conf.getParameter<
edm::InputTag>(
"BeamSpotSrc") ) ),
22 m_maxNumberPV( conf.getParameter<
int>(
"MaxNumberPV") ),
23 m_trackMinPt( conf.getParameter<double>(
"TrackMinPt") ),
24 m_trackMaxDxy( conf.getParameter<double>(
"TrackMaxDxy") ),
25 m_trackMaxNChi2( conf.getParameter<double>(
"TrackMaxNChi2") ),
26 m_trackMinNHits( conf.getParameter<
int>(
"TrackMinNHits") ),
27 m_trackPVMaxDZ( conf.getParameter<double>(
"TrackPVMaxDZ") ),
28 m_isoCone2Min(
std::
pow(conf.getParameter<double>(
"IsoConeMin"), 2) ),
29 m_isoCone2Max(
std::
pow(conf.getParameter<double>(
"IsoConeMax"), 2) )
31 produces<reco::JetTagCollection>();
49 vector<RefToBase<Jet> >
jets;
50 jets.reserve (jets_h->size());
51 for (
size_t i = 0;
i < jets_h->size(); ++
i) jets.push_back( jets_h->refAt(
i) );
55 unique_ptr<JetTagCollection> jetTagCollection;
65 for (
const auto &
jet : jets) (*jetTagCollection)[
jet] = 0.f;
74 for(
const auto &
v : *(vertices.
product()) )
76 if(!
v.isValid() ||
v.isFake())
continue;
82 if(pv && !jets.empty())
84 for (
const auto &
jet : jets)
87 float jet_eta = Jet::physicsEta(pv->
z(),
jet->eta());
88 float jet_phi =
jet->phi();
99 float dr2 =
deltaR2 (jet_eta, jet_phi, (*tr)->eta(), (*tr)->phi());
105 (*jetTagCollection)[
jet] = iso;
117 desc.
add<
edm::InputTag>(
"VertexSrc",
edm::InputTag(
"hltPixelVertices"))->setComment(
"Collection of vertices where isolation tracks come from");
118 desc.
add<
int>(
"MaxNumberPV",1)->setComment(
"No. of considered vertices (not used yet)");
119 desc.
add<
double>(
"IsoConeMax",0.4)->
setComment(
"Outer radius of isolation annulus");
120 desc.
add<
double>(
"IsoConeMin",0.2)->
setComment(
"Inner radius of isolation annulus");
121 desc.
add<
double>(
"TrackMinPt",1.6)->
setComment(
"Isolation track quality: min. pT");
122 desc.
add<
int>(
"TrackMinNHits",3)->setComment(
"Isolation track quality: min. no. of hits");
123 desc.
add<
double>(
"TrackMaxNChi2",100.0)->
setComment(
"Isolation track quality: max. chi2/ndof");
124 desc.
add<
double>(
"TrackPVMaxDZ",0.1)->
setComment(
"Isolation track quality: max. dz");;
125 desc.
add<
double>(
"TrackMaxDxy",0.2)->
setComment(
"Isolation track quality: max. dxy");;
127 descriptions.
setComment(
"Produces isolation tag for caloJets/L2Taus");
128 descriptions.
add(
"L2TauPixelIsoTagProducer",desc);
void setComment(std::string const &value)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
trackRef_iterator tracks_end() const
last iterator over tracks
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const edm::EDGetTokenT< edm::View< reco::Jet > > m_jetSrc_token
const edm::EDGetTokenT< reco::VertexCollection > m_vertexSrc_token
std::vector< Track > TrackCollection
collection of Tracks
std::vector< Vertex > VertexCollection
collection of Vertex objects
const float m_isoCone2Min
const float m_isoCone2Max
const edm::EDGetTokenT< reco::BeamSpot > m_beamSpotSrc_token
JetFloatAssociation::Container JetTagCollection
Abs< T >::type abs(const T &t)
double z() const
z coordinate
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void setComment(std::string const &value)
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
T const * product() const
const float m_trackMaxNChi2
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
const int m_trackMinNHits
trackRef_iterator tracks_begin() const
first iterator over tracks
Power< A, B >::type pow(const A &a, const B &b)
const float m_trackMaxDxy
L2TauPixelIsoTagProducer(const edm::ParameterSet &)