1 #ifndef DataFormats_PatCandidates_Tau_h 2 #define DataFormats_PatCandidates_Tau_h 60 typedef std::pair<std::string, float>
IdPair;
121 bool isPFTau()
const {
return !pfSpecific_.empty(); }
145 const std::vector<reco::PFCandidatePtr>& signalPFCands()
const;
148 const std::vector<reco::PFCandidatePtr>& signalPFChargedHadrCands()
const;
151 const std::vector<reco::PFCandidatePtr>& signalPFNeutrHadrCands()
const;
154 const std::vector<reco::PFCandidatePtr>& signalPFGammaCands()
const;
157 const std::vector<reco::PFRecoTauChargedHadron>& signalTauChargedHadronCandidates()
const;
160 const std::vector<reco::RecoTauPiZero>& signalPiZeroCandidates()
const;
163 const std::vector<reco::PFCandidatePtr>& isolationPFCands()
const;
166 const std::vector<reco::PFCandidatePtr>& isolationPFChargedHadrCands()
const;
169 const std::vector<reco::PFCandidatePtr>& isolationPFNeutrHadrCands()
const;
172 const std::vector<reco::PFCandidatePtr>& isolationPFGammaCands()
const;
175 const std::vector<reco::PFRecoTauChargedHadron>& isolationTauChargedHadronCandidates()
const;
178 const std::vector<reco::RecoTauPiZero>& isolationPiZeroCandidates()
const;
234 bool ExistSignalCands()
const;
235 bool ExistIsolationCands()
const;
269 size_t numberOfSourceCandidatePtrs()
const override;
277 float dxy()
const {
return pfEssential().
dxy_; }
279 float dxy_Sig()
const;
292 float ip3d_Sig()
const;
323 float etaetaMoment()
const;
324 float phiphiMoment()
const;
325 float etaphiMoment()
const;
330 void setDecayMode(
int);
341 bool isTauIDAvailable(
const std::string& name)
const;
344 const std::vector<IdPair>&
tauIDs()
const {
return tauIDs_; }
354 const std::vector<std::string> availableJECSets()
const;
356 const std::vector<std::string> availableJECLevels(
const int&
set = 0)
const;
359 return availableJECLevels(jecSet(
set));
372 return currentJECSet_ < jec_.size() ? jec_.at(currentJECSet_).jecSet() :
std::string(
"ERROR");
376 return currentJECSet_ < jec_.size() ? jec_.at(currentJECSet_).jecLevel(currentJECLevel_) :
std::string(
"ERROR");
383 float jecFactor(
const unsigned int& level,
const unsigned int&
set = 0)
const;
389 Tau correctedTauJet(
const unsigned int& level,
const unsigned int&
set = 0)
const;
393 return correctedTauJet(level,
set).
p4();
398 return correctedTauJet(level,
set).
p4();
414 void initializeJEC(
unsigned int level,
const unsigned int set = 0);
475 std::vector<pat::TauJetCorrFactors>
jec_;
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_
edm::RefProd< TauCollection > TauRefProd
float bremsRecoveryEOverPLead_
float electronPreIDOutput_
embedIsolationPFChargedHadrCands
embed in AOD externally stored isolation PFCandidates
bool embeddedSignalPFChargedHadrCands_
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 hcal3x3OverPLead() const
bool jecSetAvailable(const unsigned int &set) 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_
std::vector< Tau > TauCollection
std::vector< reco::GenJet > genJet_
const reco::TrackRef & electronPreIDTrack() 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_
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)
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
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
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
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
void setSignalGammaCands(const reco::CandidatePtrVector &ptrs)
float ecalStripSumEOverPLead() 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_
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_
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