132 std::vector <reco::TrackRef> fTracks;
133 fTracks.reserve (tracks_h->size());
134 for (
unsigned i = 0;
i < tracks_h->size(); ++
i) {
149 for (
unsigned i = 0;
i < jets_h->size(); ++
i) {
157 double factorZSP = 1.;
167 double scaleJPT = 1.;
175 corrected.
py()*scaleJPT,
176 corrected.
pz()*scaleJPT,
177 corrected.
energy()*scaleJPT );
227 double deEta2Tr = 0.;
228 double dePhi2Tr = 0.;
232 double denominator_tracks = 0.;
236 double deR =
deltaR((*it)->eta(), (*it)->phi(), p4.eta(), p4.phi());
237 double deEta = (*it)->eta() - p4.eta();
238 double dePhi =
deltaPhi((*it)->phi(), p4.phi());
239 if((**it).ptError()/(**it).pt() < 0.1) {
240 deR2Tr = deR2Tr + deR*deR*(*it)->pt();
241 deEta2Tr = deEta2Tr + deEta*deEta*(*it)->pt();
242 dePhi2Tr = dePhi2Tr + dePhi*dePhi*(*it)->pt();
243 denominator_tracks = denominator_tracks + (*it)->pt();
245 ((*it)->px()*p4.Px()+(*it)->py()*p4.Py()+(*it)->pz()*p4.Pz())/(p4.P()*p4.P());
246 Pout2 = Pout2 + (**it).p()*(**it).p() - (Zch*p4.P())*(Zch*p4.P());
251 double deR =
deltaR((*it)->eta(), (*it)->phi(), p4.eta(), p4.phi());
252 double deEta = (*it)->eta() - p4.eta();
253 double dePhi =
deltaPhi((*it)->phi(), p4.phi());
254 if((**it).ptError()/(**it).pt() < 0.1) {
255 deR2Tr = deR2Tr + deR*deR*(*it)->pt();
256 deEta2Tr = deEta2Tr + deEta*deEta*(*it)->pt();
257 dePhi2Tr = dePhi2Tr + dePhi*dePhi*(*it)->pt();
258 denominator_tracks = denominator_tracks + (*it)->pt();
260 ((*it)->px()*p4.Px()+(*it)->py()*p4.Py()+(*it)->pz()*p4.Pz())/(p4.P()*p4.P());
261 Pout2 = Pout2 + (**it).p()*(**it).p() - (Zch*p4.P())*(Zch*p4.P());
266 double deR =
deltaR((*it)->eta(), (*it)->phi(), p4.eta(), p4.phi());
267 double deEta = (*it)->eta() - p4.eta();
268 double dePhi =
deltaPhi((*it)->phi(), p4.phi());
269 if((**it).ptError()/(**it).pt() < 0.1) {
270 deR2Tr = deR2Tr + deR*deR*(*it)->pt();
271 deEta2Tr = deEta2Tr + deEta*deEta*(*it)->pt();
272 dePhi2Tr = dePhi2Tr + dePhi*dePhi*(*it)->pt();
273 denominator_tracks = denominator_tracks + (*it)->pt();
275 ((*it)->px()*p4.Px()+(*it)->py()*p4.Py()+(*it)->pz()*p4.Pz())/(p4.P()*p4.P());
276 Pout2 = Pout2 + (**it).p()*(**it).p() - (Zch*p4.P())*(Zch*p4.P());
282 Pout =
sqrt(fabs(Pout2))/ntracks;
287 if (denominator_tracks!=0){
288 deR2Tr = deR2Tr/denominator_tracks;
289 deEta2Tr= deEta2Tr/denominator_tracks;
290 dePhi2Tr= dePhi2Tr/denominator_tracks;
296 specific.
Pout = Pout;
306 if ( pvCollection.
isValid() && pvCollection->size()>0 ) vertex_=pvCollection->begin()->position();
313 tmpColl.push_back(fJet);
324 std::map<reco::JPTJetCollection::iterator, double> AreaNonJet;
326 for(reco::JPTJetCollection::iterator ij1=tmpColl.begin(); ij1!=tmpColl.end(); ij1++)
329 for(reco::JPTJetCollection::iterator ij2=tmpColl.begin(); ij2!=tmpColl.end(); ij2++)
331 if(ij2 == ij1)
continue;
332 if(fabs((*ij1).eta() - (*ij2).eta()) > 0.5 )
continue;
349 for(reco::JPTJetCollection::iterator ij=tmpColl.begin(); ij!=tmpColl.end(); ij++)
356 double ja = (AreaNonJet.find(ij))->
second;
362 (*ij).scaleEnergy (factorPU);
367 pOut->push_back(*ij);
reco::TrackRefVector muonsInVertexOutCalo
float mSumEnergyOfChargedWithoutEff
double correction(const reco::Jet &, const reco::Jet &, const edm::Event &, const edm::EventSetup &, P4 &) const
Vectorial correction method (corrected 4-momentum passed by reference)
Jets made from CaloTowers.
reco::TrackRefVector muonsInVertexInCalo
reco::TrackRefVector calculateBGtracksJet(reco::JPTJetCollection &, std::vector< reco::TrackRef > &, edm::Handle< std::vector< reco::TrackExtrapolation > > &, reco::TrackRefVector &)
ZSPJPTJetCorrector * mZSPalgo
std::vector< JPTJet > JPTJetCollection
collection of CaloJet objects
double deltaPhi(float phi1, float phi2)
float mChargedHadronEnergy
float mSumPtOfChargedWithEff
reco::TrackRefVector inVertexInCalo_
reco::TrackRefVector muonsOutVertexInCalo
virtual void scaleEnergy(double fScale)
scale energy of the jet
reco::TrackRefVector inVertexOutOfCalo_
virtual double correction(const reco::Jet &, const edm::Event &, const edm::EventSetup &) const
apply correction using Event information
double getResponseOfChargedWithoutEff()
float mResponseOfChargedWithEff
reco::TrackRefVector elecsOutVertexInCalo
reco::TrackRefVector pionsInVertexOutCalo
const_iterator end() const
Termination of iteration.
const_iterator begin() const
Initialize an iterator over the RefVector.
U second(std::pair< T, U > const &p)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
virtual double energy() const
energy
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Jets made from CaloJets corrected for ZSP and tracks.
JetPlusTrackCorrector * mJPTalgo
double getResponseOfChargedWithEff()
Get responses/sumPT/SumEnergy with and without Efficiency correction.
reco::TrackRefVector pionsOutVertexInCalo
float mSumEnergyOfChargedWithEff
math::XYZPoint Point
point in the space
reco::TrackRefVector outOfVertexInCalo_
reco::TrackRefVector elecsInVertexInCalo
edm::InputTag mExtrapolations
double correctAA(const reco::Jet &, const reco::TrackRefVector &, double &, const reco::TrackRefVector &, const reco::TrackRefVector &, double, const reco::TrackRefVector &) const
For AA - correct in tracker.
double getSumPtWithoutEff()
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::RefToBase< reco::Jet > theCaloJetRef
double deltaR(double eta1, double eta2, double phi1, double phi2)
float mResponseOfChargedWithoutEff
reco::TrackRefVector pionsInVertexInCalo
virtual double px() const
x coordinate of momentum vector
float mSumPtOfChargedWithoutEff
reco::TrackRefVector elecsInVertexOutCalo
virtual double pz() const
z coordinate of momentum vector
Particles matched to tracks that are in/in, in/out, out/in at Vertex and CaloFace.
bool matchTracks(const reco::Jet &, const edm::Event &, const edm::EventSetup &, jpt::MatchedTracks &pions, jpt::MatchedTracks &muons, jpt::MatchedTracks &elecs) const
Matches tracks to different particle types.
double getSumEnergyWithoutEff()
virtual double py() const
y coordinate of momentum vector
double getSumEnergyWithEff()
math::XYZPoint Point
point in the space
virtual Constituents getJetConstituents() const
list of constituents