1 #ifndef DataFormats_PatCandidates_Tau_h 2 #define DataFormats_PatCandidates_Tau_h 64 typedef std::pair<std::string, float>
IdPair;
125 bool isCaloTau()
const {
return !caloSpecific_.empty(); }
158 bool isPFTau()
const {
return !pfSpecific_.empty(); }
182 const std::vector<reco::PFCandidatePtr>& signalPFCands()
const;
185 const std::vector<reco::PFCandidatePtr>& signalPFChargedHadrCands()
const;
188 const std::vector<reco::PFCandidatePtr>& signalPFNeutrHadrCands()
const;
191 const std::vector<reco::PFCandidatePtr>& signalPFGammaCands()
const;
194 const std::vector<reco::PFRecoTauChargedHadron> & signalTauChargedHadronCandidates()
const;
197 const std::vector<reco::RecoTauPiZero> & signalPiZeroCandidates()
const;
200 const std::vector<reco::PFCandidatePtr>& isolationPFCands()
const;
203 const std::vector<reco::PFCandidatePtr>& isolationPFChargedHadrCands()
const;
206 const std::vector<reco::PFCandidatePtr>& isolationPFNeutrHadrCands()
const;
209 const std::vector<reco::PFCandidatePtr>& isolationPFGammaCands()
const;
212 const std::vector<reco::PFRecoTauChargedHadron> & isolationTauChargedHadronCandidates()
const;
215 const std::vector<reco::RecoTauPiZero> & isolationPiZeroCandidates()
const;
271 bool ExistSignalCands()
const;
272 bool ExistIsolationCands()
const;
306 size_t numberOfSourceCandidatePtrs()
const override ;
315 float dxy()
const {
return pfEssential().
dxy_; }
317 float dxy_Sig()
const;
330 float ip3d_Sig()
const;
361 float etaetaMoment()
const;
362 float phiphiMoment()
const;
363 float etaphiMoment()
const;
368 void setDecayMode(
int);
379 bool isTauIDAvailable(
const std::string & name)
const;
382 const std::vector<IdPair> &
tauIDs()
const {
return tauIDs_; }
392 const std::vector<std::string> availableJECSets()
const;
394 const std::vector<std::string> availableJECLevels(
const int&
set = 0)
const;
408 return currentJECSet_<jec_.size() ? jec_.at(currentJECSet_).jecSet() :
std::string(
"ERROR");
412 return currentJECSet_<jec_.size() ? jec_.at(currentJECSet_).jecLevel(currentJECLevel_) :
std::string(
"ERROR");
419 float jecFactor(
const unsigned int& level,
const unsigned int&
set = 0)
const;
425 Tau correctedTauJet(
const unsigned int& level,
const unsigned int&
set = 0)
const;
429 return correctedTauJet(level,
set).
p4();
434 return correctedTauJet(level,
set).
p4();
452 void initializeJEC(
unsigned int level,
const unsigned int set = 0);
518 std::vector<pat::TauJetCorrFactors>
jec_;
float leadTracksignedSipt_
bool electronPreIDDecision_
bool embeddedLeadPFNeutralCand_
const reco::JetBaseRef & pfJetRef() const
const std::vector< IdPair > & tauIDs() const
const LorentzVector & correctedP4(const std::string &level, const std::string &set="") const
edm::AtomicPtrCache< reco::TrackRefVector > signalTracksTransientRefVector_
embedIsolationPFNeutralHadrCands
embed in AOD externally stored isolation PFChargedHadronCandidates
float etaAtEcalEntranceLeadChargedCand_
float hcalTotOverPLead() const
void currentJECLevel(const unsigned int &level)
update the current JEC level; used by correctedJet
const LorentzVector & correctedP4(const unsigned int &level, const unsigned int &set=0) const
reco::CandidatePtrVector isolationGammaCandPtrs_
reco::CaloTauTagInfoRef CaloTauTagInfoRef_
edm::RefProd< TauCollection > TauRefProd
float bremsRecoveryEOverPLead_
float electronPreIDOutput_
embedIsolationPFChargedHadrCands
embed in AOD externally stored isolation PFCandidates
bool embeddedSignalPFChargedHadrCands_
float isolationTracksPtSum() const
std::vector< reco::PFCandidate > leadPFNeutralCand_
float hcalEnergyLeadChargedHadrCand() const
return hcal energy from LeadChargedHadrCand
reco::TrackRef electronPreIDTrack_
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFChargedHadrCandsTransientPtrs_
std::vector< reco::PFCandidate > signalPFNeutralHadrCands_
std::vector< reco::PFCandidate > signalPFCands_
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFNeutralHadrCandsTransientPtrs_
bool embeddedIsolationPFChargedHadrCands_
bool jecSetAvailable(const std::string &set) const
bool embeddedIsolationPFCands_
float isolationTracksPtSum_
float hcal3x3OverPLead() const
bool jecSetAvailable(const unsigned int &set) const
reco::CaloTauTagInfoRef caloTauTagInfoRef() const
embedSignalPFGammaCands
embed in AOD externally stored signal PFNeutralHadronCandidates
const pat::tau::TauPFEssential::Point & secondaryVertexPos() const
std::vector< reco::PFCandidate > isolationPFGammaCands_
embedSignalPFCands
embed in AOD externally stored leading PFNeutral Candidate
std::vector< reco::PFCandidate > isolationPFNeutralHadrCands_
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFGammaCandsTransientPtrs_
float TracksInvariantMass() const
std::vector< Tau > TauCollection
std::vector< reco::GenJet > genJet_
const reco::TrackRef & electronPreIDTrack() const
float leadTrackHCAL3x3hottesthitDEta() const
edm::Ref< TauCollection > TauRef
const std::vector< std::string > availableJECLevels(const std::string &set) const
void setTauIDs(const std::vector< IdPair > &ids)
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFCandsTransientPtrs_
bool embeddedIsolationPFNeutralHadrCands_
float leadPFChargedHadrCandsignedSipt_
float isolationPFGammaCandsEtSum() const
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFGammaCandsTransientPtrs_
float hcalEnergy() const
return sum of hcal energies from signal candidates
edm::RefVector< TauCollection > TauRefVector
float maximumHCALPFClusterEt() const
std::pair< std::string, float > IdPair
std::vector< reco::PFCandidate > leadPFCand_
const pat::tau::TauPFEssential::CovMatrix & primaryVertexCov() const
InputIterator leadCand(InputIterator begin, InputIterator end)
embedSignalPFNeutralHadrCands
embed in AOD externally stored signal PFChargedHadronCandidates
bool embeddedSignalPFGammaCands_
float leadTrackHCAL3x3hottesthitDEta_
float maximumHCALhitEt() const
unsigned int currentJECLevel_
edm::AtomicPtrCache< reco::TrackRefVector > isolationTracksTransientRefVector_
float hcalMaxOverPLead() const
embedSignalTracks
embed in AOD externally stored leading track
void setIsolationGammaCands(const reco::CandidatePtrVector &ptrs)
float isolationECALhitsEtSum_
void currentJECSet(const unsigned int &set)
update the current JEC set; used by correctedJet
float isolationPFChargedHadrCandsPtSum() const
reco::CandidatePtrVector isolationChargedHadrCandPtrs_
float ecalStripSumEOverPLead_
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< reco::Track > signalTracks_
embedIsolationPFGammaCands
embed in AOD externally stored isolation PFNeutralHadronCandidates
std::vector< IdPair > tauIDs_
embedIsolationTracks
embed in AOD externally stored signal tracks
float signalTracksInvariantMass() const
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFChargedHadrCandsTransientPtrs_
bool embeddedIsolationPFGammaCands_
const reco::VertexRef & primaryVertex() const
std::vector< reco::PFCandidate > signalPFChargedHadrCands_
void setIsolationNeutralHadrCands(const reco::CandidatePtrVector &ptrs)
const pat::tau::TauPFEssential::Vector & flightLength() const
void setIsolationChargedHadrCands(const reco::CandidatePtrVector &ptrs)
std::ostream & operator<<(std::ostream &out, const strbitset::index_type &r)
float ecalEnergyLeadChargedHadrCand() const
float isolationECALhitsEtSum() const
float signalTracksInvariantMass_
reco::CandidatePtrVector isolationNeutralHadrCandPtrs_
Jets made from MC generator particles.
bool embeddedSignalTracks_
float isolationPFGammaCandsEtSum_
const reco::VertexRef & secondaryVertex() const
void setSignalChargedHadrCands(const reco::CandidatePtrVector &ptrs)
setters for the PtrVectors (for miniAOD)
const LorentzVector & p4() const final
four-momentum Lorentz vector
embedLeadPFNeutralCand
embed in AOD externally stored leading PFChargedHadron candidate
float maximumHCALPFClusterEt_
bool hasSecondaryVertex() const
float TracksInvariantMass_
reco::JetBaseRef pfJetRef_
float phiAtEcalEntrance() const
return phiAtEcalEntrance
std::vector< pat::tau::TauPFEssential > pfEssential_
std::string currentJECLevel() const
return the name of the current step of jet energy corrections
Analysis-level tau class.
const pat::tau::TauPFEssential::CovMatrix & secondaryVertexCov() const
bool embeddedLeadPFChargedHadrCand_
bool embeddedSignalPFNeutralHadrCands_
std::vector< reco::PFCandidate > isolationPFCands_
std::vector< reco::Track > isolationTracks_
float ptLeadChargedCand() const
return pt from LeadChargedCand
embedSignalPFChargedHadrCands
embed in AOD externally stored signal PFCandidates
float isolationPFChargedHadrCandsPtSum_
const pat::tau::TauPFEssential::Point & dxy_PCA() const
std::vector< pat::tau::TauCaloSpecific > caloSpecific_
holder for CaloTau info, or empty vector if PFTau
void setSignalGammaCands(const reco::CandidatePtrVector &ptrs)
float ecalStripSumEOverPLead() const
bool isCaloTau() const
Returns true if this pat::Tau was made from a reco::CaloTau.
float leadTrackHCAL3x3hitsEtSum() const
reco::CandidatePtrVector signalGammaCandPtrs_
int decayMode() const
reconstructed tau decay mode (specific to PFTau)
Tau * clone() const override
required reimplementation of the Candidate's clone method
float bremsRecoveryEOverPLead() const
std::vector< pat::TauJetCorrFactors > jec_
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFNeutralHadrCandsTransientPtrs_
std::vector< reco::PFCandidate > signalPFGammaCands_
float leadPFChargedHadrCandsignedSipt() const
std::vector< reco::Track > leadTrack_
std::vector< reco::PFCandidate > isolationPFChargedHadrCands_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
bool jecSetsAvailable() const
float emFraction_MVA() const
return emFraction_MVA
reco::CandidatePtrVector signalNeutralHadrCandPtrs_
float flightLengthSig() const
void addJECFactors(const TauJetCorrFactors &jec)
add more sets of energy correction factors
bool embeddedSignalPFCands_
float tauID(const char *name) const
float leadingTrackNormChi2() const
return normalized chi2 of leading track
float leadingTrackNormChi2_
float leadTrackHCAL3x3hitsEtSum_
embedIsolationPFCands
embed in AOD externally stored signal PFGammaCandidates
bool isPFTau() const
Returns true if this pat::Tau was made from a reco::PFTau.
bool embeddedIsolationTracks_
float leadTracksignedSipt() const
embedLeadPFCand
embed in AOD externally stored isolation tracks embedding objects (for PFTaus only) ...
embedLeadPFChargedHadrCand
embed in AOD externally stored leading PFCandidate
float etaAtEcalEntrance() const
return etaAtEcalEntrance
float etaAtEcalEntranceLeadChargedCand() const
return etaAtEcalEntrance from LeadChargedCand
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFCandsTransientPtrs_
float ecalEnergyLeadChargedHadrCand_
std::vector< reco::PFCandidate > leadPFChargedHadrCand_
std::string currentJECSet() const
returns the label of the current set of jet energy corrections
float hcalEnergyLeadChargedHadrCand_
std::vector< pat::tau::TauPFSpecific > pfSpecific_
holder for PFTau info, or empty vector if CaloTau
float electronPreIDOutput() const
reco::CandidatePtrVector signalChargedHadrCandPtrs_
unsigned int currentJECSet_
bool electronPreIDDecision() const
void setSignalNeutralHadrCands(const reco::CandidatePtrVector &ptrs)
bool muonDecision() const
const pat::tau::TauPFEssential::Point & primaryVertexPos() const
math::ErrorF< 3 >::type CovMatrix