1 #ifndef DataFormats_PatCandidates_Tau_h 2 #define DataFormats_PatCandidates_Tau_h 63 typedef std::pair<std::string, float>
IdPair;
124 bool isCaloTau()
const {
return !caloSpecific_.empty(); }
157 bool isPFTau()
const {
return !pfSpecific_.empty(); }
181 const std::vector<reco::PFCandidatePtr>& signalPFCands()
const;
184 const std::vector<reco::PFCandidatePtr>& signalPFChargedHadrCands()
const;
187 const std::vector<reco::PFCandidatePtr>& signalPFNeutrHadrCands()
const;
190 const std::vector<reco::PFCandidatePtr>& signalPFGammaCands()
const;
193 const std::vector<reco::PFRecoTauChargedHadron> & signalTauChargedHadronCandidates()
const;
196 const std::vector<reco::RecoTauPiZero> & signalPiZeroCandidates()
const;
199 const std::vector<reco::PFCandidatePtr>& isolationPFCands()
const;
202 const std::vector<reco::PFCandidatePtr>& isolationPFChargedHadrCands()
const;
205 const std::vector<reco::PFCandidatePtr>& isolationPFNeutrHadrCands()
const;
208 const std::vector<reco::PFCandidatePtr>& isolationPFGammaCands()
const;
211 const std::vector<reco::PFRecoTauChargedHadron> & isolationTauChargedHadronCandidates()
const;
214 const std::vector<reco::RecoTauPiZero> & isolationPiZeroCandidates()
const;
270 bool ExistSignalCands()
const;
271 bool ExistIsolationCands()
const;
305 size_t numberOfSourceCandidatePtrs()
const ;
314 float dxy()
const {
return pfEssential().
dxy_; }
316 float dxy_Sig()
const;
329 float ip3d_Sig()
const;
360 float etaetaMoment()
const;
361 float phiphiMoment()
const;
362 float etaphiMoment()
const;
367 void setDecayMode(
int);
378 bool isTauIDAvailable(
const std::string & name)
const;
381 const std::vector<IdPair> &
tauIDs()
const {
return tauIDs_; }
384 void setTauIDs(
const std::vector<IdPair> & ids) { tauIDs_ = ids; }
391 const std::vector<std::string> availableJECSets()
const;
393 const std::vector<std::string> availableJECLevels(
const int&
set = 0)
const;
407 return currentJECSet_<jec_.size() ? jec_.at(currentJECSet_).jecSet() :
std::string(
"ERROR");
411 return currentJECSet_<jec_.size() ? jec_.at(currentJECSet_).jecLevel(currentJECLevel_) :
std::string(
"ERROR");
418 float jecFactor(
const unsigned int& level,
const unsigned int&
set = 0)
const;
424 Tau correctedTauJet(
const unsigned int& level,
const unsigned int&
set = 0)
const;
428 return correctedTauJet(level,
set).
p4();
433 return correctedTauJet(level,
set).
p4();
451 void initializeJEC(
unsigned int level,
const unsigned int set = 0);
515 std::vector<pat::TauJetCorrFactors>
jec_;
float leadTracksignedSipt_
bool electronPreIDDecision_
bool embeddedLeadPFNeutralCand_
virtual Tau * clone() const
required reimplementation of the Candidate's clone method
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
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)
embedLeadPFNeutralCand
embed in AOD externally stored leading PFChargedHadron candidate
float maximumHCALPFClusterEt_
bool hasSecondaryVertex() const
float TracksInvariantMass_
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_
InputIterator leadPFCand(InputIterator begin, InputIterator end)
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)
const reco::PFJetRef & pfJetRef() const
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_
virtual const LorentzVector & p4() const final
four-momentum Lorentz vector
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