5 #ifndef DataFormats_PatCandidates_Jet_h
6 #define DataFormats_PatCandidates_Jet_h
132 float jecFactor(
const std::string&
level,
const std::string& flavor=
"none",
const std::string&
set=
"")
const;
170 const std::vector<std::pair<std::string, float> > &
getPairDiscri()
const;
473 throw cms::Exception(
"OutOfRange") <<
"Index " << index <<
" is out of range" << std::endl;
481 throw cms::Exception(
"OutOfRange") <<
"Index " << index <<
" is out of range" << std::endl;
490 throw cms::Exception(
"OutOfRange") <<
"Index " << index <<
" is out of range" << std::endl;
529 std::vector<pat::JetCorrFactors>
jec_;
587 else{
throw cms::Exception(
"Type Mismatch") <<
"This PAT jet was not made from a JPTJet nor from PFJet.\n"; }
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"; }
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"; }
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"; }
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"; }
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"; }
float mMaxEInEmTowers
Maximum energy in EM towers.
reco::TrackRefVector muonsInVertexOutCalo
void setJetID(reco::JetID const &id)
methods for jet ID
float photonEnergy() const
photonEnergy
float towersArea() const
returns area of contributing towers
float elecMultiplicity() const
chargedMultiplicity
void setGenParton(const reco::GenParticleRef &gp, bool embed=false)
method to set the matched parton
void setGenJetRef(const edm::FwdRef< reco::GenJetCollection > &gj)
method to set the matched generated jet reference, embedding if requested
float jecFactor(const std::string &level, const std::string &flavor="none", const std::string &set="") const
const reco::SecondaryVertexTagInfo * tagInfoSecondaryVertex(const std::string &label="") const
reco::GenJetRefVector genJetRef_
const reco::TrackRefVector & elecsOutVertexInCalo() const
electrons that curled in
float emEnergyInEE() const
returns the jet electromagnetic energy in EE
CaloTowerFwdPtrVector caloTowersFwdPtr_
int HFEMMultiplicity() const
HFEMMultiplicity.
std::vector< CaloTowerPtr > caloTowersTemp_
const std::vector< std::string > availableJECLevels(const int &set=0) const
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction (relative to uncorrected jet energy)
void addJECFactors(const JetCorrFactors &jec)
add more sets of energy correction factors
float muonEnergy() const
muonEnergy
bool jecSetsAvailable() const
void currentJECFlavor(const JetCorrFactors::Flavor &flavor)
update the current JEC flavor; used by correctedJet
const JPTSpecific & jptSpecific() const
retrieve the jpt specific part of the jet
reco::TrackRefVector muonsInVertexInCalo
const reco::TrackRefVector & pionsInVertexOutCalo() const
pions that curled out
float chargedHadronEnergy() const
chargedHadronEnergy
float photonEnergyFraction() const
photonEnergyFraction (relative to corrected jet energy)
int electronMultiplicity() const
electronMultiplicity
float neutralEmEnergy() const
neutralEmEnergy
float mEmEnergyInHF
Em energy in HF.
const reco::TrackRefVector & elecsInVertexInCalo() const
electrons fully contained in cone
reco::TrackRefVector associatedTracks_
std::vector< Jet > JetCollection
reco::PFCandidateCollection pfCandidates_
void updateFwdPFCandidateFwdPtr(unsigned int index, edm::Ptr< reco::PFCandidate > updateFwd)
int n90() const
returns the number of constituents carrying a 90% of the total Jet energy*/
std::vector< std::pair< std::string, float > > pairDiscriVector_
float mEnergyFractionHadronic
Hadronic energy fraction.
const reco::GenParticle * genParticle(size_t idx=0) const
const reco::GenJet * genJet() const
return the matched generated jet
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction (relative to uncorrected jet energy)
const JetCorrFactors * corrFactors_() const
return the correction factor for this jet. Throws if they're not available.
int photonMultiplicity() const
photonMultiplicity
const reco::TrackRefVector & muonsInVertexOutCalo() const
muons that curled out
const PFSpecific & pfSpecific() const
retrieve the pf specific part of the jet
const LorentzVector & correctedP4(const unsigned int &level, const JetCorrFactors::Flavor &flavor=JetCorrFactors::NONE, const unsigned int &set=0) const
const reco::TrackRefVector & muonsOutVertexInCalo() const
muons that curled in
Base class for all types of Jets.
Jet correctedJet(const std::string &level, const std::string &flavor="none", const std::string &set="") const
float HFEMEnergyFraction() const
HFEMEnergyFraction (relative to corrected jet energy)
int nCarrying(float fFraction) const
return # of constituent carrying fraction of energy
const float & zspCorrection() const
zero suppression correction
float mEmEnergyInEB
Em energy in EB.
std::vector< CaloTowerFwdPtr > CaloTowerFwdPtrVector
float mChargedHadronEnergy
TagInfoFwdPtrCollection tagInfosFwdPtr_
reco::TrackRefVector muonsOutVertexInCalo
edm::FwdRef< reco::GenJetCollection > genJetFwdRef_
float neutralHadronEnergy() const
neutralHadronEnergy
float chargedEmEnergyFraction() const
chargedEmEnergyFraction (relative to uncorrected jet energy)
void setJetFlavourInfo(const reco::JetFlavourInfo &jetFlavourInfo)
method to set the JetFlavourInfo of the jet
int muonMultiplicity() const
muonMultiplicity
void cacheCaloTowers() const
method to cache the constituents to allow "user-friendly" access
void tryImportSpecific(const reco::Jet &source)
constructor helper that tries to import the specific info from the source jet
edm::Ref< JetCollection > JetRef
const std::vector< std::string > availableJECLevels(const std::string &set) const
int neutralMultiplicity() const
neutralMultiplicity
void setCaloSpecific(CaloSpecific newCaloSpecific)
set the calo specific part of the jet
void setCaloTowers(const CaloTowerFwdPtrCollection &caloTowers)
method to store the CaloJet constituents internally
int chargedHadronMultiplicity() const
chargedHadronMultiplicity
const reco::TrackIPTagInfo * tagInfoTrackIP(const std::string &label="") const
const LorentzVector & correctedP4(const std::string &level, const std::string &flavor="none", const std::string &set="") const
float mHadEnergyInHB
Hadronic energy in HB.
reco::TrackRefVector elecsOutVertexInCalo
const reco::TrackRefVector & associatedTracks() const
method to return a vector of refs to the tracks associated to this jet
reco::TrackRefVector pionsInVertexOutCalo
float maxEInHadTowers() const
returns the maximum energy deposited in HCAL towers
const T * tagInfoByType() const
void setGenParticleRef(const reco::GenParticleRef &ref, bool embed=false)
Set the generator level particle reference.
const reco::GenParticle * genParton() const
-— methods for MC matching -—
void updateFwdTagInfoFwdPtr(unsigned int index, edm::Ptr< reco::BaseTagInfo > updateFwd)
float mChargedHadronEnergy
const reco::TrackRefVector & muonsInVertexInCalo() const
muons fully contained in cone
std::vector< reco::PFCandidatePtr > const & getPFConstituents() const
float chargedEmEnergy() const
chargedEmEnergy
void addTagInfo(const std::string &label, const TagInfoFwdPtrCollection::value_type &info)
edm::RefVector< JetCollection > JetRefVector
std::vector< PFSpecific > specificPF_
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
bool hasTagInfo(const std::string label) const
check to see if the given tag info is nonzero
void setJPTSpecific(JPTSpecific newJPTSpecific)
set the jpt specific part of the jet
edm::OwnVector< reco::BaseTagInfo > tagInfos_
int hadronFlavour() const
return the hadron-based flavour of the jet
const reco::JetFlavourInfo & jetFlavourInfo() const
return the JetFlavourInfo of the jet
void setAssociatedTracks(const reco::TrackRefVector &tracks)
method to set the vector of refs to the tracks associated to this jet
float hadEnergyInHE() const
returns the jet hadronic energy in HE
virtual double energy() const
energy
reco::PFCandidateFwdPtrVector const & pfCandidatesFwdPtr() const
virtual size_t numberOfDaughters() const
number of daughters
reco::JetFlavourInfo jetFlavourInfo_
virtual const Candidate * daughter(size_type) const
return daughter at a given position (throws an exception)
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< CaloSpecific > specificCalo_
float HFHadronEnergyFraction() const
HFHadronEnergyFraction (relative to corrected jet energy)
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 ...
CaloTowerFwdPtrVector const & caloTowersFwdPtr() const
Access to bare FwdPtr collections.
const reco::TrackRefVector & pionsInVertexInCalo() const
pions fully contained in cone
float HFHadronEnergy() const
HFHadronEnergy.
CaloTowerPtr getCaloConstituent(unsigned fIndex) const
convert generic constituent to specific type
int mChargedHadronMultiplicity
Class for the storage of jet correction factors.
unsigned int currentJECLevel_
void setPFSpecific(PFSpecific newPFSpecific)
set the pf specific part of the jet
float chargedMuEnergy() const
chargedMuEnergy
float bDiscriminator(const std::string &theLabel) const
-— methods for accessing b-tagging info -—
Class storing the jet flavour information.
float electronEnergy() const
electronEnergy
float energyFractionHadronic() const
returns the jet hadronic energy fraction
reco::TrackRefVector pionsOutVertexInCalo
float HFEMEnergy() const
HFEMEnergy.
bool jecSetAvailable(const unsigned int &set) const
int jecSet(const std::string &label) const
return true if this jet carries the jet correction factors of a different set, for systematic studies...
float emEnergyInEB() const
returns the jet electromagnetic energy in EB
Jets made from MC generator particles.
float mEnergyFractionEm
Em energy fraction.
const reco::BaseTagInfo * tagInfo(const std::string &label) const
float mHadEnergyInHF
Hadronic energy in HF.
reco::TrackRefVector elecsInVertexInCalo
float hadEnergyInHO() const
returns the jet hadronic energy in HO
std::vector< edm::FwdPtr< reco::BaseTagInfo > > TagInfoFwdPtrCollection
void setPartonFlavour(int partonFl)
method to set the parton-based flavour of the jet
virtual const reco::Candidate * daughter(size_t i) const
Container::value_type value_type
bool isPFCandidateCached_
float mMaxEInHadTowers
Maximum energy in HCAL towers.
int partonFlavour() const
return the parton-based flavour of the jet
bool isPFJet() const
check to see if the jet is a reco::PFJet
JetCorrFactors::Flavor currentJECFlavor() const
return flavour of the current step of jet energy corrections
int mElectronMultiplicity
float emEnergyFraction() const
returns the jet electromagnetic energy fraction
std::vector< CaloTowerPtr > const & getCaloConstituents() const
std::vector< pat::JetCorrFactors > jec_
std::vector< std::string > tagInfoLabels_
bool isJPTJet() const
check to see if the jet is a reco::JPTJet
const reco::TrackRefVector & elecsInVertexOutCalo() const
electrons that curled out
const reco::SoftLeptonTagInfo * tagInfoSoftLepton(const std::string &label="") const
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
unsigned int index
index type
reco::JetID const & jetID() const
accessing Jet ID information
reco::TrackRefVector pionsInVertexInCalo
int mNeutralHadronMultiplicity
void setJetCharge(float jetCharge)
method to set the jet charge
virtual size_t numberOfDaughters() const
int n60() const
returns the number of constituents carrying a 60% of the total Jet energy*/
float electronEnergyFraction() const
electronEnergyFraction (relative to corrected jet energy)
std::vector< PFCandidateFwdPtr > PFCandidateFwdPtrVector
vector of "forward" reference
float chargedMuEnergyFraction() const
chargedMuEnergyFraction
std::vector< edm::FwdPtr< CaloTower > > CaloTowerFwdPtrCollection
std::vector< JPTSpecific > specificJPT_
std::vector< edm::FwdPtr< reco::PFCandidate > > PFCandidateFwdPtrCollection
void addBDiscriminatorPair(const std::pair< std::string, float > &thePair)
method to add a algolabel-discriminator pair
float maxEInEmTowers() const
returns the maximum energy deposited in ECAL towers
std::string currentJECLevel() const
return the name of the current step of jet energy corrections
reco::PFJet::Specific PFSpecific
float emEnergyInHF() const
returns the jet electromagnetic energy extracted from HF
Analysis-level calorimeter jet class.
float hadEnergyInHF() const
returns the jet hadronic energy in HF
reco::JPTJet::Specific JPTSpecific
reco::TrackRefVector elecsInVertexOutCalo
CaloTowerCollection caloTowers_
const std::vector< std::string > availableJECSets() const
-— methods for jet corrections -—
math::XYZTLorentzVector LorentzVector
Lorentz vector.
bool isCaloTowerCached_
cache calo towers
reco::CaloJet::Specific CaloSpecific
void updateFwdGenJetFwdRef(edm::Ref< reco::GenJetCollection > updateRef)
float mHadEnergyInHO
Hadronic nergy fraction in HO.
void cachePFCandidates() const
method to cache the constituents to allow "user-friendly" access
Ref< C, T, F > const & backRef() const
edm::FwdRef< reco::GenJetCollection > const & genJetFwdRef() const
reco::PFCandidateFwdPtrVector pfCandidatesFwdPtr_
int neutralHadronMultiplicity() const
neutralHadronMultiplicity
void setPFCandidates(const PFCandidateFwdPtrCollection &pfCandidates)
method to store the PFCandidate constituents internally
int HFHadronMultiplicity() const
HFHadronMultiplicity.
bool isBasicJet() const
check to see if the jet is no more than a reco::BasicJet
void currentJECLevel(const unsigned int &level)
update the current JEC level; used by correctedJet
size_type size() const
Size of the RefVector.
Templated PAT object container.
reco::PFCandidatePtr getPFConstituent(unsigned fIndex) const
convert generic constituent to specific type
const reco::TrackRefVector & pionsOutVertexInCalo() const
pions that curled in
float mTowersArea
Area of contributing CaloTowers.
const CaloSpecific & caloSpecific() const
retrieve the calo specific part of the jet
std::vector< reco::PFCandidatePtr > pfCandidatesTemp_
float muonEnergyFraction() const
muonEnergyFraction (relative to corrected jet energy)
float neutralEmEnergyFraction() const
neutralEmEnergyFraction (relative to uncorrected jet energy)
void updateFwdCaloTowerFwdPtr(unsigned int index, edm::Ptr< CaloTower > updateFwd)
TagInfoFwdPtrCollection const & tagInfosFwdPtr() const
virtual Jet * clone() const
required reimplementation of the Candidate's clone method
unsigned int currentJECSet_
std::vector< reco::GenJet > genJet_
float hadEnergyInHB() const
returns the jet hadronic energy in HB
void setHadronFlavour(int hadronFl)
method to set the hadron-based flavour of the jet
int mHFHadronMultiplicity
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
JetCorrFactors::Flavor currentJECFlavor_
bool embeddedPFCandidates_
int chargedMultiplicity() const
chargedMultiplicity
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
float mEmEnergyInEE
Em energy in EE.
float mHadEnergyInHE
Hadronic energy in HE.
void currentJECSet(const unsigned int &set)
update the current JEC set; used by correctedJet
const std::vector< std::pair< std::string, float > > & getPairDiscri() const
get vector of paire labelname-disciValue
float jetCharge() const
method to return the JetCharge computed when creating the Jet
bool jecSetAvailable(const std::string &set) const
void set(const std::string &name, int value)
set the flag, with a run-time name