CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
JetPlusTrackProducerAA Class Reference

#include <RecoJets/JetPlusTracks/src/JetPlusTrackProducerAA.cc>

Inheritance diagram for JetPlusTrackProducerAA:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginJob ()
 
reco::TrackRefVector calculateBGtracksJet (reco::JPTJetCollection &, std::vector< reco::TrackRef > &, edm::Handle< std::vector< reco::TrackExtrapolation > > &, reco::TrackRefVector &)
 
virtual void endJob ()
 
 JetPlusTrackProducerAA (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
 ~JetPlusTrackProducerAA ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

std::string alias
 
double mConeSize
 
edm::InputTag mExtrapolations
 
JetPlusTrackCorrectormJPTalgo
 
edm::InputTag mTracks
 
ZSPJPTJetCorrectormZSPalgo
 
edm::InputTag src
 
edm::InputTag srcPVs_
 
reco::TrackBase::TrackQuality trackQuality_
 
bool useZSP
 
bool vectorial_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 54 of file JetPlusTrackProducerAA.h.

Constructor & Destructor Documentation

JetPlusTrackProducerAA::JetPlusTrackProducerAA ( const edm::ParameterSet iConfig)
explicit

Definition at line 80 of file JetPlusTrackProducerAA.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), reco::TrackBase::qualityByName(), and align_tpl::src.

81 {
82  //register your products
83  src = iConfig.getParameter<edm::InputTag>("src");
84  alias = iConfig.getUntrackedParameter<string>("alias");
85  mTracks = iConfig.getParameter<edm::InputTag> ("tracks");
86  srcPVs_ = iConfig.getParameter<edm::InputTag>("srcPVs");
87  vectorial_ = iConfig.getParameter<bool>("VectorialCorrection");
88  useZSP = iConfig.getParameter<bool>("UseZSP");
89  std::string tq = iConfig.getParameter<std::string>("TrackQuality");
91  mConeSize = iConfig.getParameter<double> ("coneSize");
92 //=>
93  mExtrapolations = iConfig.getParameter<edm::InputTag> ("extrapolations");
94 //=>
95  mJPTalgo = new JetPlusTrackCorrector(iConfig);
96  mZSPalgo = new ZSPJPTJetCorrector(iConfig);
97 
98  produces<reco::JPTJetCollection>().setBranchAlias(alias);
99 
100 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
reco::TrackBase::TrackQuality trackQuality_
ZSPJPTJetCorrector * mZSPalgo
JetPlusTrackCorrector * mJPTalgo
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:46
Jet energy correction algorithm using tracks.
JetPlusTrackProducerAA::~JetPlusTrackProducerAA ( )

Definition at line 103 of file JetPlusTrackProducerAA.cc.

104 {
105 
106  // do anything here that needs to be done at desctruction time
107  // (e.g. close files, deallocate resources etc.)
108 
109 }

Member Function Documentation

void JetPlusTrackProducerAA::beginJob ( void  )
virtual

Reimplemented from edm::EDProducer.

Definition at line 471 of file JetPlusTrackProducerAA.cc.

472 {
473 }
reco::TrackRefVector JetPlusTrackProducerAA::calculateBGtracksJet ( reco::JPTJetCollection fJets,
std::vector< reco::TrackRef > &  fTracks,
edm::Handle< std::vector< reco::TrackExtrapolation > > &  extrapolations_h,
reco::TrackRefVector trBgOutOfCalo 
)

Definition at line 380 of file JetPlusTrackProducerAA.cc.

References edm::RefVector< C, T, F >::begin(), edm::RefVector< C, T, F >::end(), reco::TrackBase::eta(), reco::LeafCandidate::eta(), spr::find(), j, metsig::jet, reco::btau::jetEta, reco::btau::jetPhi, M_PI, reco::TrackBase::phi(), reco::LeafCandidate::phi(), edm::RefVector< C, T, F >::push_back(), matplotRender::t, reco::btau::trackEta, and reco::btau::trackPhi.

382  {
383 
384 
385  reco::TrackRefVector trBgOutOfVertex;
386 
387  for (unsigned t = 0; t < fTracks.size(); ++t) {
388 
389  int track_bg = 0;
390 
391  // if(!(*fTracks[t]).quality(trackQuality_))
392  // {
393  // cout<<"BG, BAD trackQuality, ptBgV="<<fTracks[t]->pt()<<" etaBgV = "<<fTracks[t]->eta()<<" phiBgV = "<<fTracks[t]->phi()<<endl;
394  // continue;
395  // }
396 
397  const reco::Track* track = &*(fTracks[t]);
398  double trackEta = track->eta();
399  double trackPhi = track->phi();
400 
401  // std::cout<<"++++++++++++++++> track="<<t<<" trackEta="<<trackEta<<" trackPhi="<<trackPhi
402  // <<" coneSize="<<mConeSize<<std::endl;
403 
404  //loop on jets
405  for (unsigned j = 0; j < fJets.size(); ++j) {
406 
407  const reco::Jet* jet = &(fJets[j]);
408  double jetEta = jet->eta();
409  double jetPhi = jet->phi();
410 
411  // std::cout<<"-jet="<<j<<" jetEt ="<<jet->pt()
412  // <<" jetE="<<jet->energy()<<" jetEta="<<jetEta<<" jetPhi="<<jetPhi<<std::endl;
413 
414  if(fabs(jetEta - trackEta) < mConeSize) {
415  double dphiTrackJet = fabs(trackPhi - jetPhi);
416  if(dphiTrackJet > M_PI) dphiTrackJet = 2*M_PI - dphiTrackJet;
417 
418  if(dphiTrackJet < mConeSize)
419  {
420  track_bg = 1;
421  // std::cout<<"===>>>> Track inside jet at vertex, track_bg="<< track_bg <<" track="<<t<<" jet="<<j
422  // <<" trackEta="<<trackEta<<" trackPhi="<<trackPhi
423  // <<" jetEta="<<jetEta<<" jetPhi="<<jetPhi<<std::endl;
424  }
425  }
426  } //jets
427 
428  if( track_bg == 0 )
429  {
430  trBgOutOfVertex.push_back (fTracks[t]);
431 
432 // std::cout<<"------Track outside jet at vertex, track_bg="<< track_bg<<" track="<<t
433 // <<" trackEta="<<trackEta<<" trackPhi="<<trackPhi <<std::endl;
434  }
435 
436  } //tracks
437 
438 //=====> Propagate BG tracks to calo
439  int nValid = 0;
440  for ( std::vector<reco::TrackExtrapolation>::const_iterator xtrpBegin = extrapolations_h->begin(),
441  xtrpEnd = extrapolations_h->end(), ixtrp = xtrpBegin;
442  ixtrp != xtrpEnd; ++ixtrp ) {
443 
444 // std::cout<<"JetPlusTrackProducerAA::calculateBGtracksJet: initial track pt= "<<ixtrp->track()->pt()
445 // <<" eta= "<<ixtrp->track()->eta()<<" phi="<<ixtrp->track()->phi()
446 // <<" Valid? "<<ixtrp->isValid().at(0)<<std::endl;
447 
448  //if( ixtrp->isValid().at(0) == 0 ) continue;
449  //in DF change in 4.2, all entries are valid.
450  nValid++;
451 
452  reco::TrackRefVector::iterator it = find(trBgOutOfVertex.begin(),trBgOutOfVertex.end(),(*ixtrp).track() );
453 
454  if ( it != trBgOutOfVertex.end() ){
455  trBgOutOfCalo.push_back (*it);
456 
457 // std::cout<<"+++trBgOutOfCalo, pt= "<<ixtrp->track()->pt()<<" eta= "<<ixtrp->track()->eta()<<" phi="<<ixtrp->track()->phi()
458 // <<" Valid? "<<ixtrp->isValid().at(0)<<std::endl;
459  }
460 
461  }
462 
463 // std::cout<<"calculateBGtracksJet, trBgOutOfCalo="<<trBgOutOfCalo.size()
464 // <<" trBgOutOfVertex="<<trBgOutOfVertex.size()<<" nValid="<<nValid<<endl;
465 //=====>
466 
467  return trBgOutOfVertex;
468 }
Base class for all types of Jets.
Definition: Jet.h:21
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:139
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:243
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
virtual double eta() const
momentum pseudorapidity
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:238
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:141
int j
Definition: DBlmapReader.cc:9
#define M_PI
Definition: BFit3D.cc:3
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:60
virtual double phi() const
momentum azimuthal angle
void JetPlusTrackProducerAA::endJob ( void  )
virtual

Reimplemented from edm::EDProducer.

Definition at line 477 of file JetPlusTrackProducerAA.cc.

477  {
478 }
void JetPlusTrackProducerAA::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDProducer.

Definition at line 118 of file JetPlusTrackProducerAA.cc.

References edm::RefVector< C, T, F >::begin(), Geom::deltaPhi(), deltaR(), reco::JPTJet::Specific::elecsInVertexInCalo, reco::JPTJet::Specific::elecsInVertexOutCalo, reco::JPTJet::Specific::elecsOutVertexInCalo, edm::RefVector< C, T, F >::end(), reco::LeafCandidate::energy(), reco::JPTJet::Specific::Eta2momtr, edm::Event::getByLabel(), reco::Jet::getJetConstituents(), i, jpt::MatchedTracks::inVertexInCalo_, jpt::MatchedTracks::inVertexOutOfCalo_, edm::HandleBase::isValid(), M_PI, reco::JPTJet::Specific::mChargedHadronEnergy, reco::JPTJet::Specific::mResponseOfChargedWithEff, reco::JPTJet::Specific::mResponseOfChargedWithoutEff, reco::JPTJet::Specific::mSumEnergyOfChargedWithEff, reco::JPTJet::Specific::mSumEnergyOfChargedWithoutEff, reco::JPTJet::Specific::mSumPtOfChargedWithEff, reco::JPTJet::Specific::mSumPtOfChargedWithoutEff, patZpeak::muons, reco::JPTJet::Specific::muonsInVertexInCalo, reco::JPTJet::Specific::muonsInVertexOutCalo, reco::JPTJet::Specific::muonsOutVertexInCalo, reco::JPTJet::Specific::mZSPCor, convertSQLiteXML::ok, jpt::MatchedTracks::outOfVertexInCalo_, p4, reco::JPTJet::Specific::Phi2momtr, reco::JPTJet::Specific::pionsInVertexInCalo, reco::JPTJet::Specific::pionsInVertexOutCalo, reco::JPTJet::Specific::pionsOutVertexInCalo, reco::JPTJet::Specific::Pout, edm::Event::put(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), reco::LeafCandidate::pz(), reco::JPTJet::Specific::R2momtr, reco::Jet::scaleEnergy(), edm::second(), mathSSE::sqrt(), align_tpl::src, reco::JPTJet::Specific::theCaloJetRef, and reco::JPTJet::Specific::Zch.

119 {
120  using namespace edm;
121 
122 
123 // std::cout<<" RecoJets::JetPlusTrackProducerAA::produce "<<std::endl;
124 
125 // get stuff from Event
127  iEvent.getByLabel (src, jets_h);
128 
130  iEvent.getByLabel (mTracks, tracks_h);
131 
132  std::vector <reco::TrackRef> fTracks;
133  fTracks.reserve (tracks_h->size());
134  for (unsigned i = 0; i < tracks_h->size(); ++i) {
135  fTracks.push_back (reco::TrackRef (tracks_h, i));
136  }
137 
138 //=>
140  iEvent.getByLabel (mExtrapolations, extrapolations_h);
141 
142 // std::cout<<"JetPlusTrackProducerAA::produce, extrapolations_h="<<extrapolations_h->size()<<std::endl;
143 //=>
144 
145  std::auto_ptr<reco::JPTJetCollection> pOut(new reco::JPTJetCollection());
146 
147  reco::JPTJetCollection tmpColl;
148 
149  for (unsigned i = 0; i < jets_h->size(); ++i) {
150 
151  const reco::CaloJet* oldjet = &(*(jets_h->refAt(i)));
152 
153  reco::CaloJet corrected = *oldjet;
154 
155 // ZSP corrections
156 
157  double factorZSP = 1.;
158  if(useZSP) factorZSP = mZSPalgo->correction(corrected, iEvent, iSetup);
159 
160 // std::cout << " UseZSP = "<<useZSP<<std::endl;
161 
162 
163  corrected.scaleEnergy (factorZSP);
164 
165 // JPT corrections
166 
167  double scaleJPT = 1.;
168 
170 
171  if ( !vectorial_ ) {
172 
173  scaleJPT = mJPTalgo->correction ( corrected, *oldjet, iEvent, iSetup );
174  p4 = math::XYZTLorentzVector( corrected.px()*scaleJPT,
175  corrected.py()*scaleJPT,
176  corrected.pz()*scaleJPT,
177  corrected.energy()*scaleJPT );
178  } else {
179  scaleJPT = mJPTalgo->correction( corrected, *oldjet, iEvent, iSetup, p4 );
180  }
181 
182 // Construct JPTJet constituent
183  jpt::MatchedTracks pions;
185  jpt::MatchedTracks elecs;
186 
187  bool ok = mJPTalgo->matchTracks( *oldjet,
188  iEvent,
189  iSetup,
190  pions,
191  muons,
192  elecs );
193 
194 
195  reco::JPTJet::Specific specific;
196 
197  if(ok) {
198 // std::cout<<" Size of Pion in-in "<<pions.inVertexInCalo_.size()<<" in-out "<<pions.inVertexOutOfCalo_.size()
199 // <<" out-in "<<pions.outOfVertexInCalo_.size()<<" Oldjet "<<oldjet->et()<<" factorZSP "<<factorZSP
200 // <<" "<<corrected.et()<<" scaleJPT "<<scaleJPT<<" after JPT "<<p4.pt()<<std::endl;
201 
202 
203  specific.pionsInVertexInCalo = pions.inVertexInCalo_;
204  specific.pionsInVertexOutCalo = pions.inVertexOutOfCalo_;
205  specific.pionsOutVertexInCalo = pions.outOfVertexInCalo_;
206  specific.muonsInVertexInCalo = muons.inVertexInCalo_;
207  specific.muonsInVertexOutCalo = muons.inVertexOutOfCalo_;
208  specific.muonsOutVertexInCalo = muons.outOfVertexInCalo_;
209  specific.elecsInVertexInCalo = elecs.inVertexInCalo_;
210  specific.elecsInVertexOutCalo = elecs.inVertexOutOfCalo_;
211  specific.elecsOutVertexInCalo = elecs.outOfVertexInCalo_;
212  }
213 
214 // Fill JPT Specific
215  edm::RefToBase<reco::Jet> myjet = (edm::RefToBase<reco::Jet>)jets_h->refAt(i);
216  specific.theCaloJetRef = myjet;
217  specific.mZSPCor = factorZSP;
220  specific.mSumPtOfChargedWithEff = (float)mJPTalgo->getSumPtWithEff();
225 // Fill Charged Jet shape parameters
226  double deR2Tr = 0.;
227  double deEta2Tr = 0.;
228  double dePhi2Tr = 0.;
229  double Zch = 0.;
230  double Pout2 = 0.;
231  double Pout = 0.;
232  double denominator_tracks = 0.;
233  int ntracks = 0;
234 
235  for( reco::TrackRefVector::const_iterator it = pions.inVertexInCalo_.begin(); it != pions.inVertexInCalo_.end(); it++) {
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();
244  Zch = Zch +
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());
247  ntracks++;
248  }
249  }
250  for( reco::TrackRefVector::const_iterator it = muons.inVertexInCalo_.begin(); it != muons.inVertexInCalo_.end(); it++) {
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();
259  Zch = Zch +
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());
262  ntracks++;
263  }
264  }
265  for( reco::TrackRefVector::const_iterator it = elecs.inVertexInCalo_.begin(); it != elecs.inVertexInCalo_.end(); it++) {
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();
274  Zch = Zch +
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());
277  ntracks++;
278  }
279  }
280 
281  if(ntracks > 0) {
282  Pout = sqrt(fabs(Pout2))/ntracks;
283  Zch = Zch/ntracks;
284  }
285 
286 
287  if (denominator_tracks!=0){
288  deR2Tr = deR2Tr/denominator_tracks;
289  deEta2Tr= deEta2Tr/denominator_tracks;
290  dePhi2Tr= dePhi2Tr/denominator_tracks;
291  }
292 
293  specific.R2momtr = deR2Tr;
294  specific.Eta2momtr = deEta2Tr;
295  specific.Phi2momtr = dePhi2Tr;
296  specific.Pout = Pout;
297  specific.Zch = Zch;
298 
299 // Create JPT jet
300 
302 
303 // If we add primary vertex
305  iEvent.getByLabel(srcPVs_,pvCollection);
306  if ( pvCollection.isValid() && pvCollection->size()>0 ) vertex_=pvCollection->begin()->position();
307 
308  reco::JPTJet fJet(p4, vertex_, specific, corrected.getJetConstituents());
309  // fJet.printJet();
310 
311 // Temporarily collection before correction for background
312 
313  tmpColl.push_back(fJet);
314 
315  }
316 
317 //=======================================================================================================>
318 // Correction for background
319 
320  reco::TrackRefVector trBgOutOfCalo;
321  reco::TrackRefVector trBgOutOfVertex = calculateBGtracksJet(tmpColl,fTracks,extrapolations_h,trBgOutOfCalo);
322 
323 //===> Area without Jets
324  std::map<reco::JPTJetCollection::iterator, double> AreaNonJet;
325 
326  for(reco::JPTJetCollection::iterator ij1=tmpColl.begin(); ij1!=tmpColl.end(); ij1++)
327  {
328  int nj1 = 1;
329  for(reco::JPTJetCollection::iterator ij2=tmpColl.begin(); ij2!=tmpColl.end(); ij2++)
330  {
331  if(ij2 == ij1) continue;
332  if(fabs((*ij1).eta() - (*ij2).eta()) > 0.5 ) continue;
333  nj1++;
334 
335  }
336 
337  AreaNonJet[ij1] = 4*M_PI*mConeSize - nj1*4*mConeSize*mConeSize;
338 
339 // std::cout<<"+++AreaNonJet[ij1]="<<AreaNonJet[ij1]<<" nj1="<<nj1<<std::endl;
340  }
341 
342 //===>
343 
344 // std::cout<<" The size of BG tracks: trBgOutOfVertex= "<<trBgOutOfVertex.size()
345 // <<" trBgOutOfCalo= "<<trBgOutOfCalo.size()<<std::endl;
346 //
347 // std::cout<<" The size of JPT jet collection "<<tmpColl.size()<<std::endl;
348 
349  for(reco::JPTJetCollection::iterator ij=tmpColl.begin(); ij!=tmpColl.end(); ij++)
350  {
351 // Correct JPTjet for background tracks
352 
353  const reco::TrackRefVector pioninin = (*ij).getPionsInVertexInCalo();
354  const reco::TrackRefVector pioninout = (*ij).getPionsInVertexOutCalo();
355 
356  double ja = (AreaNonJet.find(ij))->second;
357 
358 // std::cout<<"+++ ja="<<ja<<" pioninout="<<pioninout.size()<<std::endl;
359 
360  double factorPU = mJPTalgo->correctAA(*ij,trBgOutOfVertex,mConeSize,pioninin,pioninout,ja,trBgOutOfCalo);
361 
362  (*ij).scaleEnergy (factorPU);
363 
364 // std::cout<<" FactorPU "<<factorPU<<std::endl;
365 
366 // Output module
367  pOut->push_back(*ij);
368 
369 // std::cout<<" New JPT energy "<<(*ij).et()<<" "<<(*ij).pt()<<" "<<(*ij).eta()<<" "<<(*ij).phi()<<std::endl;
370 
371  }
372 
373  iEvent.put(pOut);
374 
375 }
reco::TrackRefVector muonsInVertexOutCalo
Definition: JPTJet.h:57
int i
Definition: DBlmapReader.cc:9
float mSumEnergyOfChargedWithoutEff
Definition: JPTJet.h:71
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.
Definition: CaloJet.h:30
reco::TrackRefVector muonsInVertexInCalo
Definition: JPTJet.h:56
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)
Definition: VectorUtil.h:30
float mChargedHadronEnergy
Definition: JPTJet.h:62
float mSumPtOfChargedWithEff
Definition: JPTJet.h:68
reco::TrackRefVector inVertexInCalo_
reco::TrackRefVector muonsOutVertexInCalo
Definition: JPTJet.h:58
virtual void scaleEnergy(double fScale)
scale energy of the jet
Definition: Jet.cc:386
reco::TrackRefVector inVertexOutOfCalo_
virtual double correction(const reco::Jet &, const edm::Event &, const edm::EventSetup &) const
apply correction using Event information
float mResponseOfChargedWithEff
Definition: JPTJet.h:66
reco::TrackRefVector elecsOutVertexInCalo
Definition: JPTJet.h:61
reco::TrackRefVector pionsInVertexOutCalo
Definition: JPTJet.h:54
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:243
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:238
U second(std::pair< T, U > const &p)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
virtual double energy() const
energy
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
T sqrt(T t)
Definition: SSEVec.h:28
double p4[4]
Definition: TauolaWrapper.h:92
Jets made from CaloJets corrected for ZSP and tracks.
Definition: JPTJet.h:29
JetPlusTrackCorrector * mJPTalgo
double getResponseOfChargedWithEff()
Get responses/sumPT/SumEnergy with and without Efficiency correction.
reco::TrackRefVector pionsOutVertexInCalo
Definition: JPTJet.h:55
float mSumEnergyOfChargedWithEff
Definition: JPTJet.h:70
math::XYZPoint Point
point in the space
Definition: Particle.h:30
reco::TrackRefVector outOfVertexInCalo_
reco::TrackRefVector elecsInVertexInCalo
Definition: JPTJet.h:59
bool isValid() const
Definition: HandleBase.h:76
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.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
edm::RefToBase< reco::Jet > theCaloJetRef
Definition: JPTJet.h:52
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
float mResponseOfChargedWithoutEff
Definition: JPTJet.h:67
reco::TrackRefVector pionsInVertexInCalo
Definition: JPTJet.h:53
#define M_PI
Definition: BFit3D.cc:3
virtual double px() const
x coordinate of momentum vector
float mSumPtOfChargedWithoutEff
Definition: JPTJet.h:69
reco::TrackRefVector elecsInVertexOutCalo
Definition: JPTJet.h:60
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.
tuple muons
Definition: patZpeak.py:38
virtual double py() const
y coordinate of momentum vector
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:29
virtual Constituents getJetConstituents() const
list of constituents
Definition: Jet.cc:349

Member Data Documentation

std::string JetPlusTrackProducerAA::alias
private

Definition at line 74 of file JetPlusTrackProducerAA.h.

double JetPlusTrackProducerAA::mConeSize
private

Definition at line 78 of file JetPlusTrackProducerAA.h.

edm::InputTag JetPlusTrackProducerAA::mExtrapolations
private

Definition at line 82 of file JetPlusTrackProducerAA.h.

JetPlusTrackCorrector* JetPlusTrackProducerAA::mJPTalgo
private

Definition at line 70 of file JetPlusTrackProducerAA.h.

edm::InputTag JetPlusTrackProducerAA::mTracks
private

Definition at line 77 of file JetPlusTrackProducerAA.h.

ZSPJPTJetCorrector* JetPlusTrackProducerAA::mZSPalgo
private

Definition at line 71 of file JetPlusTrackProducerAA.h.

edm::InputTag JetPlusTrackProducerAA::src
private

Definition at line 72 of file JetPlusTrackProducerAA.h.

edm::InputTag JetPlusTrackProducerAA::srcPVs_
private

Definition at line 73 of file JetPlusTrackProducerAA.h.

reco::TrackBase::TrackQuality JetPlusTrackProducerAA::trackQuality_
private

Definition at line 79 of file JetPlusTrackProducerAA.h.

bool JetPlusTrackProducerAA::useZSP
private

Definition at line 76 of file JetPlusTrackProducerAA.h.

bool JetPlusTrackProducerAA::vectorial_
private

Definition at line 75 of file JetPlusTrackProducerAA.h.