111 std::vector<float> v_sigmaEtaEta, v_sigmaPhiPhi;
112 v_sigmaEtaEta.reserve(theJets->size());
113 v_sigmaPhiPhi.reserve(theJets->size());
114 std::vector<int> v_size_CentralEtaStrip, v_size_AdjacentEtaStrips;
115 v_size_CentralEtaStrip.reserve(theJets->size());
116 v_size_AdjacentEtaStrips.reserve(theJets->size());
122 for (
auto const&
jet : *theJets) {
123 double pt_jet =
jet.pt();
124 double eta_jet =
jet.eta();
128 v_sigmaEtaEta.push_back(-1.);
129 v_sigmaPhiPhi.push_back(-1.);
130 v_size_CentralEtaStrip.push_back(0);
131 v_size_AdjacentEtaStrips.push_back(0);
134 double sumptPFcands = 0.;
136 for (
unsigned i = 0;
i <
jet.numberOfSourceCandidatePtrs(); ++
i) {
141 double pt_PUsub = icand->
pt() - puoffset;
144 sumptPFcands += pt_PUsub;
148 int size_CentralEtaStrip(0.), size_AdjacentEtaStrips(0.);
149 double sigmaEtaEtaSq(0.), sigmaPhiPhiSq(0.);
150 double sumweightsPFcands = 0;
151 for (
unsigned i = 0;
i <
jet.numberOfSourceCandidatePtrs(); ++
i) {
159 double pt_PUsub = icand->
pt() - puoffset;
164 size_CentralEtaStrip++;
166 size_AdjacentEtaStrips++;
171 double weight = pt_PUsub / sumptPFcands;
172 sigmaEtaEtaSq += deta * deta *
weight;
173 sigmaPhiPhiSq += dphi * dphi *
weight;
174 sumweightsPFcands +=
weight;
178 v_size_CentralEtaStrip.push_back(size_CentralEtaStrip);
179 v_size_AdjacentEtaStrips.push_back(size_AdjacentEtaStrips);
181 if (sumweightsPFcands > 0 && sigmaEtaEtaSq > 0 && sigmaPhiPhiSq > 0) {
182 v_sigmaEtaEta.push_back(
sqrt(sigmaEtaEtaSq / sumweightsPFcands));
183 v_sigmaPhiPhi.push_back(
sqrt(sigmaPhiPhiSq / sumweightsPFcands));
185 v_sigmaEtaEta.push_back(-1.);
186 v_sigmaPhiPhi.push_back(-1.);
195 putInEvent(
"adjacentEtaStripsSize", theJets, v_size_AdjacentEtaStrips,
iEvent);
const double jetReferenceRadius_
const double vertexRecoEffcy_
virtual double pt() const =0
transverse momentum
const double widthPtThreshold_
void putInEvent(const std::string &, const edm::Handle< edm::View< reco::Jet >> &, std::vector< T >, edm::Event &) const
Function to put product into event.
const double hfTowerPhiWidth_
Abs< T >::type abs(const T &t)
const double jetPtThreshold_
const edm::EDGetTokenT< std::vector< reco::Vertex > > vertices_token_
const edm::EDGetTokenT< edm::View< reco::Jet > > jets_token_
const double offsetPerPU_
virtual int pdgId() const =0
PDG identifier.
const double stripPtThreshold_
const double jetEtaThreshold_
const double hfTowerEtaWidth_
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity