CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Jet.h
Go to the documentation of this file.
1 //
2 // $Id: Jet.h,v 1.56 2011/08/10 13:50:38 eschliec Exp $
3 //
4 
5 #ifndef DataFormats_PatCandidates_Jet_h
6 #define DataFormats_PatCandidates_Jet_h
7 
36 
40 
43 
46 
47 
48 // Define typedefs for convenience
49 namespace pat {
50  class Jet;
51  typedef std::vector<Jet> JetCollection;
54 }
55 
56 namespace reco {
58  std::ostream& operator<<(std::ostream& out, const pat::Jet& obj);
59 }
60 
61 // Class definition
62 namespace pat {
63 
67  typedef std::vector<edm::FwdPtr<reco::BaseTagInfo> > TagInfoFwdPtrCollection;
68  typedef std::vector<edm::FwdPtr<reco::PFCandidate> > PFCandidateFwdPtrCollection;
69  typedef std::vector<edm::FwdPtr<CaloTower> > CaloTowerFwdPtrCollection;
70 
71 
72  class Jet : public PATObject<reco::Jet> {
76  friend class PATJetProducer;
77 
78  public:
79 
81  Jet();
83  Jet(const reco::Jet & aJet);
85  Jet(const edm::RefToBase<reco::Jet> & aJetRef);
87  Jet(const edm::Ptr<reco::Jet> & aJetRef);
89  virtual ~Jet();
91  virtual Jet * clone() const { return new Jet(*this); }
92 
94 
96  const reco::GenParticle * genParton() const { return genParticle(); }
98  const reco::GenJet * genJet() const;
100  int partonFlavour() const;
102  int hadronFlavour() const;
104  const reco::JetFlavourInfo & jetFlavourInfo() const;
105 
106  public:
108 
110  const std::vector<std::string> availableJECSets() const;
111  // returns the available JEC Levels for a given jecSet
112  const std::vector<std::string> availableJECLevels(const int& set=0) const;
113  // returns the available JEC Levels for a given jecSet
114  const std::vector<std::string> availableJECLevels(const std::string& set) const { return availableJECLevels(jecSet(set)); };
117  bool jecSetsAvailable() const { return !jec_.empty(); }
120  bool jecSetAvailable(const std::string& set) const {return (jecSet(set)>=0); };
123  bool jecSetAvailable(const unsigned int& set) const {return (set<jec_.size()); };
125  std::string currentJECSet() const { return currentJECSet_<jec_.size() ? jec_.at(currentJECSet_).jecSet() : std::string("ERROR"); }
127  std::string currentJECLevel() const { return currentJECSet_<jec_.size() ? jec_.at(currentJECSet_).jecLevel(currentJECLevel_) : std::string("ERROR"); };
132  float jecFactor(const std::string& level, const std::string& flavor="none", const std::string& set="") const;
135  float jecFactor(const unsigned int& level, const JetCorrFactors::Flavor& flavor=JetCorrFactors::NONE, const unsigned int& set=0) const;
138  Jet correctedJet(const std::string& level, const std::string& flavor="none", const std::string& set="") const;
141  Jet correctedJet(const unsigned int& level, const JetCorrFactors::Flavor& flavor=JetCorrFactors::NONE, const unsigned int& set=0) const;
144  const LorentzVector& correctedP4(const std::string& level, const std::string& flavor="none", const std::string& set="") const { return correctedJet(level, flavor, set).p4(); };
147  const LorentzVector& correctedP4(const unsigned int& level, const JetCorrFactors::Flavor& flavor=JetCorrFactors::NONE, const unsigned int& set=0) const { return correctedJet(level, flavor, set).p4(); };
148 
149  private:
152  int jecSet(const std::string& label) const;
154  void currentJECSet(const unsigned int& set) { currentJECSet_=set; };
156  void currentJECLevel(const unsigned int& level) { currentJECLevel_=level; };
160  void addJECFactors(const JetCorrFactors& jec) {jec_.push_back(jec); };
162  void initializeJEC(unsigned int level, const JetCorrFactors::Flavor& flavor=JetCorrFactors::NONE, unsigned int set=0);
163 
164  public:
166 
168  float bDiscriminator(const std::string &theLabel) const;
170  const std::vector<std::pair<std::string, float> > & getPairDiscri() const;
172  bool hasTagInfo( const std::string label) const { return tagInfo(label) != 0; }
175  const reco::BaseTagInfo * tagInfo(const std::string &label) const;
179  const reco::TrackIPTagInfo * tagInfoTrackIP(const std::string &label="") const;
183  const reco::SoftLeptonTagInfo * tagInfoSoftLepton(const std::string &label="") const;
187  const reco::SecondaryVertexTagInfo * tagInfoSecondaryVertex(const std::string &label="") const;
189  void addBDiscriminatorPair(const std::pair<std::string, float> & thePair);
192  void addTagInfo(const std::string &label,
194 
195 
196  // ---- track related methods ----
197 
199  float jetCharge() const;
201  const reco::TrackRefVector & associatedTracks() const;
203  void setJetCharge(float jetCharge);
206 
207  // ---- methods for content embedding ----
208 
214  void setGenParton(const reco::GenParticleRef & gp, bool embed=false) { setGenParticleRef(gp, embed); }
218  void setPartonFlavour(int partonFl);
220  void setHadronFlavour(int hadronFl);
223 
224 
226  void setJetID( reco::JetID const & id ) { jetID_ = id; }
227 
228  // ---- jet specific methods ----
229 
231  bool isCaloJet() const { return !specificCalo_.empty() && !isJPTJet(); }
233  bool isJPTJet() const { return !specificJPT_.empty(); }
235  bool isPFJet() const { return !specificPF_.empty(); }
237  bool isBasicJet() const { return !(isCaloJet() || isPFJet() || isJPTJet()); }
239  const CaloSpecific& caloSpecific() const {
240  if (specificCalo_.empty()) throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a CaloJet.\n";
241  return specificCalo_[0];
242  }
244  const JPTSpecific& jptSpecific() const {
245  if (specificJPT_.empty()) throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet.\n";
246  return specificJPT_[0];
247  }
249  const PFSpecific& pfSpecific() const {
250  if (specificPF_.empty()) throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a PFJet.\n";
251  return specificPF_[0];
252  }
254  void setCaloSpecific(CaloSpecific newCaloSpecific) {
255  if (specificCalo_.empty()) throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a CaloJet.\n";
256  specificCalo_[0] = newCaloSpecific;
257  }
259  void setJPTSpecific(JPTSpecific newJPTSpecific) {
260  if (specificJPT_.empty()) throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet.\n";
261  specificJPT_[0] = newJPTSpecific;
262  }
264  void setPFSpecific(PFSpecific newPFSpecific) {
265  if (specificPF_.empty()) throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a PFJet.\n";
266  specificPF_[0] = newPFSpecific;
267  }
268 
269  // ---- Calo Jet specific information ----
270 
272  float maxEInEmTowers() const {return caloSpecific().mMaxEInEmTowers;}
280  float hadEnergyInHB() const {return caloSpecific().mHadEnergyInHB;}
282  float hadEnergyInHO() const {return caloSpecific().mHadEnergyInHO;}
284  float hadEnergyInHE() const {return caloSpecific().mHadEnergyInHE;}
286  float hadEnergyInHF() const {return caloSpecific().mHadEnergyInHF;}
288  float emEnergyInEB() const {return caloSpecific().mEmEnergyInEB;}
290  float emEnergyInEE() const {return caloSpecific().mEmEnergyInEE;}
292  float emEnergyInHF() const {return caloSpecific().mEmEnergyInHF;}
294  float towersArea() const {return caloSpecific().mTowersArea;}
296  int n90() const {return nCarrying (0.9);}
298  int n60() const {return nCarrying (0.6);}
299 
301  // static CaloTowerPtr caloTower (const reco::Candidate* fConstituent);
304  CaloTowerPtr getCaloConstituent (unsigned fIndex) const;
307  std::vector<CaloTowerPtr> const & getCaloConstituents () const;
308 
309  // ---- JPT Jet specific information ----
310 
330  const float& zspCorrection() const {return jptSpecific().mZSPCor;}
333 
334  // ---- JPT or PF Jet specific information ----
335 
337  int muonMultiplicity() const;
339  int chargedMultiplicity() const;
341  float chargedEmEnergy() const;
343  float neutralEmEnergy() const;
345  float chargedHadronEnergy() const;
347  float neutralHadronEnergy() const;
348 
354  float chargedEmEnergyFraction() const {return chargedEmEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
356  float neutralEmEnergyFraction() const {return neutralEmEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
357 
358  // ---- PF Jet specific information ----
360  float photonEnergy () const {return pfSpecific().mPhotonEnergy;}
362  float photonEnergyFraction () const {return photonEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
364  float electronEnergy () const {return pfSpecific().mElectronEnergy;}
366  float electronEnergyFraction () const {return electronEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
368  float muonEnergy () const {return pfSpecific().mMuonEnergy;}
370  float muonEnergyFraction () const {return muonEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
372  float HFHadronEnergy () const {return pfSpecific().mHFHadronEnergy;}
374  float HFHadronEnergyFraction () const {return HFHadronEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
376  float HFEMEnergy () const {return pfSpecific().mHFEMEnergy;}
378  float HFEMEnergyFraction () const {return HFEMEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
379 
388 
393 
395  float chargedMuEnergy () const {return pfSpecific().mChargedMuEnergy;}
397  float chargedMuEnergyFraction () const {return chargedMuEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
398 
401 
403  // static CaloTowerPtr caloTower (const reco::Candidate* fConstituent);
406  reco::PFCandidatePtr getPFConstituent (unsigned fIndex) const;
409  std::vector<reco::PFCandidatePtr> const & getPFConstituents () const;
410 
415  virtual const reco::Candidate * daughter(size_t i) const {
416  if (isCaloJet() || isJPTJet() ) {
417  if ( embeddedCaloTowers_ ) {
418  if ( caloTowersFwdPtr_.size() > 0 ) return caloTowersFwdPtr_[i].get();
419  else if ( caloTowers_.size() > 0 ) return &caloTowers_[i];
420  else return reco::Jet::daughter(i);
421  }
422  }
423  if (isPFJet()) {
424  if ( embeddedPFCandidates_ ) {
425  if ( pfCandidatesFwdPtr_.size() > 0 ) return pfCandidatesFwdPtr_[i].get();
426  else if ( pfCandidates_.size() > 0 ) return &pfCandidates_[i];
427  else return reco::Jet::daughter(i);
428  }
429  }
430  return reco::Jet::daughter(i);
431  }
432 
433  using reco::LeafCandidate::daughter; // avoid hiding the base implementation
434 
439  virtual size_t numberOfDaughters() const {
440  if (isCaloJet() || isJPTJet()) {
441  if ( embeddedCaloTowers_ ) {
442  if ( caloTowersFwdPtr_.size() > 0 ) return caloTowersFwdPtr_.size();
443  else if ( caloTowers_.size() > 0 ) return caloTowers_.size();
444  else return reco::Jet::numberOfDaughters();
445  }
446  }
447  if (isPFJet()) {
448  if ( embeddedPFCandidates_ ) {
449  if ( pfCandidatesFwdPtr_.size() > 0 ) return pfCandidatesFwdPtr_.size();
450  else if ( pfCandidates_.size() > 0 ) return pfCandidates_.size();
451  else return reco::Jet::numberOfDaughters();
452  }
453  }
455  }
456 
458  reco::JetID const & jetID () const { return jetID_;}
459 
460 
466 
469  void updateFwdCaloTowerFwdPtr( unsigned int index, edm::Ptr<CaloTower> updateFwd ) {
470  if ( index < caloTowersFwdPtr_.size() ) {
472  } else {
473  throw cms::Exception("OutOfRange") << "Index " << index << " is out of range" << std::endl;
474  }
475  }
476 
478  if ( index < pfCandidatesFwdPtr_.size() ) {
480  } else {
481  throw cms::Exception("OutOfRange") << "Index " << index << " is out of range" << std::endl;
482  }
483  }
484 
485 
486  void updateFwdTagInfoFwdPtr( unsigned int index, edm::Ptr<reco::BaseTagInfo> updateFwd ) {
487  if ( index < tagInfosFwdPtr_.size() ) {
489  } else {
490  throw cms::Exception("OutOfRange") << "Index " << index << " is out of range" << std::endl;
491  }
492  }
493 
496  }
497 
499  friend std::ostream& reco::operator<<(std::ostream& out, const pat::Jet& obj);
500 
501  protected:
502 
503  // ---- for content embedding ----
504 
506  mutable std::vector<CaloTowerPtr> caloTowersTemp_; // to simplify user interface
507  CaloTowerCollection caloTowers_; // Compatibility embedding
508  CaloTowerFwdPtrVector caloTowersFwdPtr_; // Refactorized content embedding
509 
510 
512  mutable std::vector<reco::PFCandidatePtr> pfCandidatesTemp_; // to simplify user interface
513  reco::PFCandidateCollection pfCandidates_; // Compatibility embedding
514  reco::PFCandidateFwdPtrVector pfCandidatesFwdPtr_; // Refactorized content embedding
515 
516 
517  // ---- MC info ----
518 
519  std::vector<reco::GenJet> genJet_;
523 
524  // ---- energy scale correction factors ----
525 
526  // energy scale correction factors; the string carries a potential label if
527  // more then one set of correction factors is embedded. The label corresponds
528  // to the label of the jetCorrFactors module that has been embedded.
529  std::vector<pat::JetCorrFactors> jec_;
530  // currently applied set of jet energy correction factors (i.e. the index in
531  // jetEnergyCorrections_)
532  unsigned int currentJECSet_;
533  // currently applied jet energy correction level
534  unsigned int currentJECLevel_;
535  // currently applied jet energy correction flavor (can be NONE, GLUON, UDS,
536  // CHARM or BOTTOM)
538 
539  // ---- b-tag related members ----
540 
541  std::vector<std::pair<std::string, float> > pairDiscriVector_;
542  std::vector<std::string> tagInfoLabels_;
543  edm::OwnVector<reco::BaseTagInfo> tagInfos_; // Compatibility embedding
544  TagInfoFwdPtrCollection tagInfosFwdPtr_; // Refactorized embedding
545 
546 
547  // ---- track related members ----
548 
549  float jetCharge_;
551 
552  // ---- specific members ----
553 
554  std::vector<CaloSpecific> specificCalo_;
555  std::vector<JPTSpecific> specificJPT_;
556  std::vector<PFSpecific> specificPF_;
557 
558  // ---- id functions ----
560 
561 
562  private:
563 
564  // ---- helper functions ----
565 
566  void tryImportSpecific(const reco::Jet &source);
567  template<typename T> const T * tagInfoByType() const;
568 
570  const JetCorrFactors * corrFactors_(const std::string& set) const ;
572  const JetCorrFactors * corrFactors_() const;
573 
575  mutable bool isCaloTowerCached_;
576  void cacheCaloTowers() const;
577  mutable bool isPFCandidateCached_;
578  void cachePFCandidates() const;
579 
580  };
581 }
582 
583 inline float pat::Jet::chargedHadronEnergy() const
584 {
585  if(isPFJet()){ return pfSpecific().mChargedHadronEnergy; }
586  else if( isJPTJet() ){ return jptSpecific().mChargedHadronEnergy; }
587  else{ throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
588 }
589 
590 inline float pat::Jet::neutralHadronEnergy() const
591 {
592  if(isPFJet()){ return pfSpecific().mNeutralHadronEnergy; }
593  else if( isJPTJet() ){ return jptSpecific().mNeutralHadronEnergy; }
594  else{ throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
595 }
596 
597 inline float pat::Jet::chargedEmEnergy() const
598 {
599  if(isPFJet()){ return pfSpecific().mChargedEmEnergy; }
600  else if( isJPTJet() ){ return jptSpecific().mChargedEmEnergy;}
601  else{ throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
602 }
603 
604 inline float pat::Jet::neutralEmEnergy() const
605 {
606  if(isPFJet()){ return pfSpecific().mNeutralEmEnergy; }
607  else if( isJPTJet() ){ return jptSpecific().mNeutralEmEnergy;}
608  else{ throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
609 }
610 
611 inline int pat::Jet::muonMultiplicity() const
612 {
613  if(isPFJet()){ return pfSpecific().mMuonMultiplicity; }
614  else if( isJPTJet() ){ return jptSpecific().muonsInVertexInCalo.size()+jptSpecific().muonsInVertexOutCalo.size();}
615  else{ throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
616 }
617 
619 {
620  if(isPFJet()){ return pfSpecific().mChargedMultiplicity; }
621  else if( isJPTJet() ){ return jptSpecific().muonsInVertexInCalo.size()+jptSpecific().muonsInVertexOutCalo.size()+
622  jptSpecific().pionsInVertexInCalo.size()+jptSpecific().pionsInVertexOutCalo.size()+
623  jptSpecific().elecsInVertexInCalo.size()+jptSpecific().elecsInVertexOutCalo.size();}
624  else{ throw cms::Exception("Type Mismatch") << "This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
625 }
626 
627 #endif
float mMaxEInEmTowers
Maximum energy in EM towers.
Definition: CaloJet.h:49
reco::TrackRefVector muonsInVertexOutCalo
Definition: JPTJet.h:57
void setJetID(reco::JetID const &id)
methods for jet ID
Definition: Jet.h:226
float photonEnergy() const
photonEnergy
Definition: Jet.h:360
float towersArea() const
returns area of contributing towers
Definition: Jet.h:294
float elecMultiplicity() const
chargedMultiplicity
Definition: Jet.h:332
void setGenParton(const reco::GenParticleRef &gp, bool embed=false)
method to set the matched parton
Definition: Jet.h:214
void setGenJetRef(const edm::FwdRef< reco::GenJetCollection > &gj)
method to set the matched generated jet reference, embedding if requested
Definition: Jet.cc:427
float jecFactor(const std::string &level, const std::string &flavor="none", const std::string &set="") const
Definition: Jet.cc:245
int i
Definition: DBlmapReader.cc:9
const reco::SecondaryVertexTagInfo * tagInfoSecondaryVertex(const std::string &label="") const
Definition: Jet.cc:372
reco::GenJetRefVector genJetRef_
Definition: Jet.h:520
const reco::TrackRefVector & elecsOutVertexInCalo() const
electrons that curled in
Definition: Jet.h:328
float emEnergyInEE() const
returns the jet electromagnetic energy in EE
Definition: Jet.h:290
CaloTowerFwdPtrVector caloTowersFwdPtr_
Definition: Jet.h:508
int HFEMMultiplicity() const
HFEMMultiplicity.
Definition: Jet.h:392
std::vector< CaloTowerPtr > caloTowersTemp_
Definition: Jet.h:506
const std::vector< std::string > availableJECLevels(const int &set=0) const
Definition: Jet.cc:238
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction (relative to uncorrected jet energy)
Definition: Jet.h:352
void addJECFactors(const JetCorrFactors &jec)
add more sets of energy correction factors
Definition: Jet.h:160
float muonEnergy() const
muonEnergy
Definition: Jet.h:368
bool jecSetsAvailable() const
Definition: Jet.h:117
void currentJECFlavor(const JetCorrFactors::Flavor &flavor)
update the current JEC flavor; used by correctedJet
Definition: Jet.h:158
const JPTSpecific & jptSpecific() const
retrieve the jpt specific part of the jet
Definition: Jet.h:244
reco::TrackRefVector muonsInVertexInCalo
Definition: JPTJet.h:56
const reco::TrackRefVector & pionsInVertexOutCalo() const
pions that curled out
Definition: Jet.h:314
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: Jet.h:583
float photonEnergyFraction() const
photonEnergyFraction (relative to corrected jet energy)
Definition: Jet.h:362
int electronMultiplicity() const
electronMultiplicity
Definition: Jet.h:387
float neutralEmEnergy() const
neutralEmEnergy
Definition: Jet.h:604
float mEmEnergyInHF
Em energy in HF.
Definition: CaloJet.h:65
const reco::TrackRefVector & elecsInVertexInCalo() const
electrons fully contained in cone
Definition: Jet.h:324
reco::TrackRefVector associatedTracks_
Definition: Jet.h:550
std::vector< Jet > JetCollection
Definition: Jet.h:50
reco::PFCandidateCollection pfCandidates_
Definition: Jet.h:513
void updateFwdPFCandidateFwdPtr(unsigned int index, edm::Ptr< reco::PFCandidate > updateFwd)
Definition: Jet.h:477
int n90() const
returns the number of constituents carrying a 90% of the total Jet energy*/
Definition: Jet.h:296
std::vector< std::pair< std::string, float > > pairDiscriVector_
Definition: Jet.h:541
float mEnergyFractionHadronic
Hadronic energy fraction.
Definition: CaloJet.h:67
const reco::GenParticle * genParticle(size_t idx=0) const
Definition: PATObject.h:234
const reco::GenJet * genJet() const
return the matched generated jet
Definition: Jet.cc:189
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction (relative to uncorrected jet energy)
Definition: Jet.h:350
const JetCorrFactors * corrFactors_() const
return the correction factor for this jet. Throws if they&#39;re not available.
int photonMultiplicity() const
photonMultiplicity
Definition: Jet.h:385
const reco::TrackRefVector & muonsInVertexOutCalo() const
muons that curled out
Definition: Jet.h:320
const PFSpecific & pfSpecific() const
retrieve the pf specific part of the jet
Definition: Jet.h:249
const LorentzVector & correctedP4(const unsigned int &level, const JetCorrFactors::Flavor &flavor=JetCorrFactors::NONE, const unsigned int &set=0) const
Definition: Jet.h:147
const reco::TrackRefVector & muonsOutVertexInCalo() const
muons that curled in
Definition: Jet.h:322
Base class for all types of Jets.
Definition: Jet.h:21
Jet correctedJet(const std::string &level, const std::string &flavor="none", const std::string &set="") const
Definition: Jet.cc:277
float HFEMEnergyFraction() const
HFEMEnergyFraction (relative to corrected jet energy)
Definition: Jet.h:378
int nCarrying(float fFraction) const
return # of constituent carrying fraction of energy
Definition: Jet.cc:292
const float & zspCorrection() const
zero suppression correction
Definition: Jet.h:330
float mEmEnergyInEB
Em energy in EB.
Definition: CaloJet.h:61
std::vector< CaloTowerFwdPtr > CaloTowerFwdPtrVector
Definition: CaloTowerFwd.h:22
float mChargedHadronEnergy
Definition: JPTJet.h:62
TagInfoFwdPtrCollection tagInfosFwdPtr_
Definition: Jet.h:544
reco::TrackRefVector muonsOutVertexInCalo
Definition: JPTJet.h:58
edm::FwdRef< reco::GenJetCollection > genJetFwdRef_
Definition: Jet.h:521
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: Jet.h:590
float chargedEmEnergyFraction() const
chargedEmEnergyFraction (relative to uncorrected jet energy)
Definition: Jet.h:354
void setJetFlavourInfo(const reco::JetFlavourInfo &jetFlavourInfo)
method to set the JetFlavourInfo of the jet
Definition: Jet.cc:445
int muonMultiplicity() const
muonMultiplicity
Definition: Jet.h:611
void cacheCaloTowers() const
method to cache the constituents to allow &quot;user-friendly&quot; access
Definition: Jet.cc:462
void tryImportSpecific(const reco::Jet &source)
constructor helper that tries to import the specific info from the source jet
Definition: Jet.cc:77
edm::Ref< JetCollection > JetRef
Definition: Jet.h:52
int mPhotonMultiplicity
Definition: PFJet.h:59
const std::vector< std::string > availableJECLevels(const std::string &set) const
Definition: Jet.h:114
int neutralMultiplicity() const
neutralMultiplicity
Definition: Jet.h:400
virtual ~Jet()
destructor
Definition: Jet.cc:102
void setCaloSpecific(CaloSpecific newCaloSpecific)
set the calo specific part of the jet
Definition: Jet.h:254
void setCaloTowers(const CaloTowerFwdPtrCollection &caloTowers)
method to store the CaloJet constituents internally
Definition: Jet.cc:407
int chargedHadronMultiplicity() const
chargedHadronMultiplicity
Definition: Jet.h:381
float mChargedMuEnergy
Definition: PFJet.h:68
const reco::TrackIPTagInfo * tagInfoTrackIP(const std::string &label="") const
Definition: Jet.cc:360
const LorentzVector & correctedP4(const std::string &level, const std::string &flavor="none", const std::string &set="") const
Definition: Jet.h:144
float mHadEnergyInHB
Hadronic energy in HB.
Definition: CaloJet.h:55
reco::TrackRefVector elecsOutVertexInCalo
Definition: JPTJet.h:61
const reco::TrackRefVector & associatedTracks() const
method to return a vector of refs to the tracks associated to this jet
Definition: Jet.cc:397
Jet ID object.
Definition: JetID.h:16
reco::TrackRefVector pionsInVertexOutCalo
Definition: JPTJet.h:54
float maxEInHadTowers() const
returns the maximum energy deposited in HCAL towers
Definition: Jet.h:274
const T * tagInfoByType() const
Definition: Jet.cc:337
void setGenParticleRef(const reco::GenParticleRef &ref, bool embed=false)
Set the generator level particle reference.
const reco::GenParticle * genParton() const
-— methods for MC matching -—
Definition: Jet.h:96
void updateFwdTagInfoFwdPtr(unsigned int index, edm::Ptr< reco::BaseTagInfo > updateFwd)
Definition: Jet.h:486
float mChargedHadronEnergy
Definition: PFJet.h:49
const reco::TrackRefVector & muonsInVertexInCalo() const
muons fully contained in cone
Definition: Jet.h:318
std::vector< reco::PFCandidatePtr > const & getPFConstituents() const
Definition: Jet.cc:181
float chargedEmEnergy() const
chargedEmEnergy
Definition: Jet.h:597
#define embed
Definition: AMPTWrapper.h:178
void addTagInfo(const std::string &label, const TagInfoFwdPtrCollection::value_type &info)
Definition: Jet.cc:378
edm::RefVector< JetCollection > JetRefVector
Definition: Jet.h:53
std::vector< PFSpecific > specificPF_
Definition: Jet.h:556
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
bool isCaloJet() const
check to see if the jet is a reco::CaloJet
Definition: Jet.h:231
bool hasTagInfo(const std::string label) const
check to see if the given tag info is nonzero
Definition: Jet.h:172
void setJPTSpecific(JPTSpecific newJPTSpecific)
set the jpt specific part of the jet
Definition: Jet.h:259
edm::OwnVector< reco::BaseTagInfo > tagInfos_
Definition: Jet.h:543
int hadronFlavour() const
return the hadron-based flavour of the jet
Definition: Jet.cc:201
const reco::JetFlavourInfo & jetFlavourInfo() const
return the JetFlavourInfo of the jet
Definition: Jet.cc:206
void setAssociatedTracks(const reco::TrackRefVector &tracks)
method to set the vector of refs to the tracks associated to this jet
Definition: Jet.cc:402
float hadEnergyInHE() const
returns the jet hadronic energy in HE
Definition: Jet.h:284
virtual double energy() const
energy
reco::PFCandidateFwdPtrVector const & pfCandidatesFwdPtr() const
Definition: Jet.h:463
virtual size_t numberOfDaughters() const
number of daughters
reco::JetFlavourInfo jetFlavourInfo_
Definition: Jet.h:522
virtual const Candidate * daughter(size_type) const
return daughter at a given position (throws an exception)
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:72
std::vector< CaloSpecific > specificCalo_
Definition: Jet.h:554
float HFHadronEnergyFraction() const
HFHadronEnergyFraction (relative to corrected jet energy)
Definition: Jet.h:374
void initializeJEC(unsigned int level, const JetCorrFactors::Flavor &flavor=JetCorrFactors::NONE, unsigned int set=0)
initialize the jet to a given JEC level during creation starting from Uncorrected ...
Definition: Jet.cc:213
CaloTowerFwdPtrVector const & caloTowersFwdPtr() const
Access to bare FwdPtr collections.
Definition: Jet.h:462
float mElectronEnergy
Definition: PFJet.h:52
const reco::TrackRefVector & pionsInVertexInCalo() const
pions fully contained in cone
Definition: Jet.h:312
float HFHadronEnergy() const
HFHadronEnergy.
Definition: Jet.h:372
CaloTowerPtr getCaloConstituent(unsigned fIndex) const
convert generic constituent to specific type
Definition: Jet.cc:107
int mChargedHadronMultiplicity
Definition: PFJet.h:57
Class for the storage of jet correction factors.
unsigned int currentJECLevel_
Definition: Jet.h:534
float mPhotonEnergy
Definition: PFJet.h:51
void setPFSpecific(PFSpecific newPFSpecific)
set the pf specific part of the jet
Definition: Jet.h:264
float chargedMuEnergy() const
chargedMuEnergy
Definition: Jet.h:395
float bDiscriminator(const std::string &theLabel) const
-— methods for accessing b-tagging info -—
Definition: Jet.cc:314
Class storing the jet flavour information.
float electronEnergy() const
electronEnergy
Definition: Jet.h:364
float energyFractionHadronic() const
returns the jet hadronic energy fraction
Definition: Jet.h:276
reco::TrackRefVector pionsOutVertexInCalo
Definition: JPTJet.h:55
float HFEMEnergy() const
HFEMEnergy.
Definition: Jet.h:376
bool jecSetAvailable(const unsigned int &set) const
Definition: Jet.h:123
int jecSet(const std::string &label) const
return true if this jet carries the jet correction factors of a different set, for systematic studies...
Definition: Jet.cc:222
bool embeddedCaloTowers_
Definition: Jet.h:505
float emEnergyInEB() const
returns the jet electromagnetic energy in EB
Definition: Jet.h:288
Jets made from MC generator particles.
Definition: GenJet.h:25
float mEnergyFractionEm
Em energy fraction.
Definition: CaloJet.h:69
const reco::BaseTagInfo * tagInfo(const std::string &label) const
Definition: Jet.cc:325
Produces pat::Jet&#39;s.
float mHadEnergyInHF
Hadronic energy in HF.
Definition: CaloJet.h:57
reco::TrackRefVector elecsInVertexInCalo
Definition: JPTJet.h:59
float hadEnergyInHO() const
returns the jet hadronic energy in HO
Definition: Jet.h:282
std::vector< edm::FwdPtr< reco::BaseTagInfo > > TagInfoFwdPtrCollection
Definition: Jet.h:67
void setPartonFlavour(int partonFl)
method to set the parton-based flavour of the jet
Definition: Jet.cc:435
unsigned int index
Definition: LeafCandidate.h:33
virtual const reco::Candidate * daughter(size_t i) const
Definition: Jet.h:415
Container::value_type value_type
bool isPFCandidateCached_
Definition: Jet.h:577
float mMaxEInHadTowers
Maximum energy in HCAL towers.
Definition: CaloJet.h:51
int partonFlavour() const
return the parton-based flavour of the jet
Definition: Jet.cc:196
bool isPFJet() const
check to see if the jet is a reco::PFJet
Definition: Jet.h:235
JetCorrFactors::Flavor currentJECFlavor() const
return flavour of the current step of jet energy corrections
Definition: Jet.h:129
int mElectronMultiplicity
Definition: PFJet.h:60
float emEnergyFraction() const
returns the jet electromagnetic energy fraction
Definition: Jet.h:278
std::vector< CaloTowerPtr > const & getCaloConstituents() const
Definition: Jet.cc:141
std::vector< pat::JetCorrFactors > jec_
Definition: Jet.h:529
Jet()
default constructor
Definition: Jet.cc:13
std::vector< std::string > tagInfoLabels_
Definition: Jet.h:542
float jetCharge_
Definition: Jet.h:549
tuple out
Definition: dbtoconf.py:99
bool isJPTJet() const
check to see if the jet is a reco::JPTJet
Definition: Jet.h:233
const reco::TrackRefVector & elecsInVertexOutCalo() const
electrons that curled out
Definition: Jet.h:326
const reco::SoftLeptonTagInfo * tagInfoSoftLepton(const std::string &label="") const
Definition: Jet.cc:366
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
unsigned int index
index type
Definition: Candidate.h:52
reco::JetID const & jetID() const
accessing Jet ID information
Definition: Jet.h:458
reco::TrackRefVector pionsInVertexInCalo
Definition: JPTJet.h:53
int mNeutralHadronMultiplicity
Definition: PFJet.h:58
void setJetCharge(float jetCharge)
method to set the jet charge
Definition: Jet.cc:455
virtual size_t numberOfDaughters() const
Definition: Jet.h:439
int n60() const
returns the number of constituents carrying a 60% of the total Jet energy*/
Definition: Jet.h:298
float electronEnergyFraction() const
electronEnergyFraction (relative to corrected jet energy)
Definition: Jet.h:366
tuple tracks
Definition: testEve_cfg.py:39
std::vector< PFCandidateFwdPtr > PFCandidateFwdPtrVector
vector of &quot;forward&quot; reference
float chargedMuEnergyFraction() const
chargedMuEnergyFraction
Definition: Jet.h:397
std::vector< edm::FwdPtr< CaloTower > > CaloTowerFwdPtrCollection
Definition: Jet.h:69
std::vector< JPTSpecific > specificJPT_
Definition: Jet.h:555
std::vector< edm::FwdPtr< reco::PFCandidate > > PFCandidateFwdPtrCollection
Definition: Jet.h:68
int mNeutralMultiplicity
Definition: PFJet.h:71
void addBDiscriminatorPair(const std::pair< std::string, float > &thePair)
method to add a algolabel-discriminator pair
Definition: Jet.cc:450
float maxEInEmTowers() const
returns the maximum energy deposited in ECAL towers
Definition: Jet.h:272
std::string currentJECLevel() const
return the name of the current step of jet energy corrections
Definition: Jet.h:127
reco::PFJet::Specific PFSpecific
Definition: Jet.h:66
float emEnergyInHF() const
returns the jet electromagnetic energy extracted from HF
Definition: Jet.h:292
Analysis-level calorimeter jet class.
Definition: Jet.h:72
float hadEnergyInHF() const
returns the jet hadronic energy in HF
Definition: Jet.h:286
reco::JPTJet::Specific JPTSpecific
Definition: Jet.h:65
reco::TrackRefVector elecsInVertexOutCalo
Definition: JPTJet.h:60
CaloTowerCollection caloTowers_
Definition: Jet.h:507
const std::vector< std::string > availableJECSets() const
-— methods for jet corrections -—
Definition: Jet.cc:230
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:38
bool isCaloTowerCached_
cache calo towers
Definition: Jet.h:575
reco::CaloJet::Specific CaloSpecific
Definition: Jet.h:64
void updateFwdGenJetFwdRef(edm::Ref< reco::GenJetCollection > updateRef)
Definition: Jet.h:494
float mHadEnergyInHO
Hadronic nergy fraction in HO.
Definition: CaloJet.h:53
void cachePFCandidates() const
method to cache the constituents to allow &quot;user-friendly&quot; access
Definition: Jet.cc:504
Ref< C, T, F > const & backRef() const
Definition: FwdRef.h:178
edm::FwdRef< reco::GenJetCollection > const & genJetFwdRef() const
Definition: Jet.h:464
reco::PFCandidateFwdPtrVector pfCandidatesFwdPtr_
Definition: Jet.h:514
int neutralHadronMultiplicity() const
neutralHadronMultiplicity
Definition: Jet.h:383
size_type size() const
float mHFHadronEnergy
Definition: PFJet.h:54
void setPFCandidates(const PFCandidateFwdPtrCollection &pfCandidates)
method to store the PFCandidate constituents internally
Definition: Jet.cc:417
int HFHadronMultiplicity() const
HFHadronMultiplicity.
Definition: Jet.h:390
bool isBasicJet() const
check to see if the jet is no more than a reco::BasicJet
Definition: Jet.h:237
void currentJECLevel(const unsigned int &level)
update the current JEC level; used by correctedJet
Definition: Jet.h:156
size_type size() const
Size of the RefVector.
Definition: RefVector.h:89
Templated PAT object container.
Definition: PATObject.h:43
reco::PFCandidatePtr getPFConstituent(unsigned fIndex) const
convert generic constituent to specific type
Definition: Jet.cc:149
const reco::TrackRefVector & pionsOutVertexInCalo() const
pions that curled in
Definition: Jet.h:316
float mTowersArea
Area of contributing CaloTowers.
Definition: CaloJet.h:71
const CaloSpecific & caloSpecific() const
retrieve the calo specific part of the jet
Definition: Jet.h:239
std::vector< reco::PFCandidatePtr > pfCandidatesTemp_
Definition: Jet.h:512
tuple level
Definition: testEve_cfg.py:34
float muonEnergyFraction() const
muonEnergyFraction (relative to corrected jet energy)
Definition: Jet.h:370
float neutralEmEnergyFraction() const
neutralEmEnergyFraction (relative to uncorrected jet energy)
Definition: Jet.h:356
void updateFwdCaloTowerFwdPtr(unsigned int index, edm::Ptr< CaloTower > updateFwd)
Definition: Jet.h:469
TagInfoFwdPtrCollection const & tagInfosFwdPtr() const
Definition: Jet.h:465
virtual Jet * clone() const
required reimplementation of the Candidate&#39;s clone method
Definition: Jet.h:91
unsigned int currentJECSet_
Definition: Jet.h:532
std::vector< reco::GenJet > genJet_
Definition: Jet.h:519
float hadEnergyInHB() const
returns the jet hadronic energy in HB
Definition: Jet.h:280
void setHadronFlavour(int hadronFl)
method to set the hadron-based flavour of the jet
Definition: Jet.cc:440
reco::JetID jetID_
Definition: Jet.h:559
long double T
int mHFHadronMultiplicity
Definition: PFJet.h:62
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
JetCorrFactors::Flavor currentJECFlavor_
Definition: Jet.h:537
bool embeddedPFCandidates_
Definition: Jet.h:511
int chargedMultiplicity() const
chargedMultiplicity
Definition: Jet.h:618
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
std::string currentJECSet() const
returns the label of the current set of jet energy corrections
Definition: Jet.h:125
float mEmEnergyInEE
Em energy in EE.
Definition: CaloJet.h:63
float mHadEnergyInHE
Hadronic energy in HE.
Definition: CaloJet.h:59
void currentJECSet(const unsigned int &set)
update the current JEC set; used by correctedJet
Definition: Jet.h:154
const std::vector< std::pair< std::string, float > > & getPairDiscri() const
get vector of paire labelname-disciValue
Definition: Jet.cc:309
float jetCharge() const
method to return the JetCharge computed when creating the Jet
Definition: Jet.cc:392
bool jecSetAvailable(const std::string &set) const
Definition: Jet.h:120
void set(const std::string &name, int value)
set the flag, with a run-time name