15 ,embeddedIsolationTracks_(
false)
16 ,isolationTracksTransientRefVectorFixed_(
false)
17 ,embeddedLeadTrack_(
false)
18 ,embeddedSignalTracks_(
false)
19 ,signalTracksTransientRefVectorFixed_(
false)
20 ,embeddedLeadPFCand_(
false)
21 ,embeddedLeadPFChargedHadrCand_(
false)
22 ,embeddedLeadPFNeutralCand_(
false)
23 ,embeddedSignalPFCands_(
false)
24 ,signalPFCandsRefVectorFixed_(
false)
25 ,embeddedSignalPFChargedHadrCands_(
false)
26 ,signalPFChargedHadrCandsRefVectorFixed_(
false)
27 ,embeddedSignalPFNeutralHadrCands_(
false)
28 ,signalPFNeutralHadrCandsRefVectorFixed_(
false)
29 ,embeddedSignalPFGammaCands_(
false)
30 ,signalPFGammaCandsRefVectorFixed_(
false)
31 ,embeddedIsolationPFCands_(
false)
32 ,isolationPFCandsRefVectorFixed_(
false)
33 ,embeddedIsolationPFChargedHadrCands_(
false)
34 ,isolationPFChargedHadrCandsRefVectorFixed_(
false)
35 ,embeddedIsolationPFNeutralHadrCands_(
false)
36 ,isolationPFNeutralHadrCandsRefVectorFixed_(
false)
37 ,embeddedIsolationPFGammaCands_(
false)
38 ,isolationPFGammaCandsRefVectorFixed_(
false)
45 ,embeddedIsolationTracks_(
false)
46 ,isolationTracksTransientRefVectorFixed_(
false)
47 ,embeddedLeadTrack_(
false)
48 ,embeddedSignalTracks_(
false)
49 ,signalTracksTransientRefVectorFixed_(
false)
50 ,embeddedLeadPFCand_(
false)
51 ,embeddedLeadPFChargedHadrCand_(
false)
52 ,embeddedLeadPFNeutralCand_(
false)
53 ,embeddedSignalPFCands_(
false)
54 ,signalPFCandsRefVectorFixed_(
false)
55 ,embeddedSignalPFChargedHadrCands_(
false)
56 ,signalPFChargedHadrCandsRefVectorFixed_(
false)
57 ,embeddedSignalPFNeutralHadrCands_(
false)
58 ,signalPFNeutralHadrCandsRefVectorFixed_(
false)
59 ,embeddedSignalPFGammaCands_(
false)
60 ,signalPFGammaCandsRefVectorFixed_(
false)
61 ,embeddedIsolationPFCands_(
false)
62 ,isolationPFCandsRefVectorFixed_(
false)
63 ,embeddedIsolationPFChargedHadrCands_(
false)
64 ,isolationPFChargedHadrCandsRefVectorFixed_(
false)
65 ,embeddedIsolationPFNeutralHadrCands_(
false)
66 ,isolationPFNeutralHadrCandsRefVectorFixed_(
false)
67 ,embeddedIsolationPFGammaCands_(
false)
68 ,isolationPFGammaCandsRefVectorFixed_(
false)
79 ,embeddedIsolationTracks_(
false)
80 ,isolationTracksTransientRefVectorFixed_(
false)
81 ,embeddedLeadTrack_(
false)
82 ,embeddedSignalTracks_(
false)
83 ,signalTracksTransientRefVectorFixed_(
false)
84 ,embeddedLeadPFCand_(
false)
85 ,embeddedLeadPFChargedHadrCand_(
false)
86 ,embeddedLeadPFNeutralCand_(
false)
87 ,embeddedSignalPFCands_(
false)
88 ,signalPFCandsRefVectorFixed_(
false)
89 ,embeddedSignalPFChargedHadrCands_(
false)
90 ,signalPFChargedHadrCandsRefVectorFixed_(
false)
91 ,embeddedSignalPFNeutralHadrCands_(
false)
92 ,signalPFNeutralHadrCandsRefVectorFixed_(
false)
93 ,embeddedSignalPFGammaCands_(
false)
94 ,signalPFGammaCandsRefVectorFixed_(
false)
95 ,embeddedIsolationPFCands_(
false)
96 ,isolationPFCandsRefVectorFixed_(
false)
97 ,embeddedIsolationPFChargedHadrCands_(
false)
98 ,isolationPFChargedHadrCandsRefVectorFixed_(
false)
99 ,embeddedIsolationPFNeutralHadrCands_(
false)
100 ,isolationPFNeutralHadrCandsRefVectorFixed_(
false)
101 ,embeddedIsolationPFGammaCands_(
false)
102 ,isolationPFGammaCandsRefVectorFixed_(
false)
113 ,embeddedIsolationTracks_(
false)
114 ,isolationTracksTransientRefVectorFixed_(
false)
115 ,embeddedLeadTrack_(
false)
116 ,embeddedSignalTracks_(
false)
117 ,signalTracksTransientRefVectorFixed_(
false)
118 ,embeddedLeadPFCand_(
false)
119 ,embeddedLeadPFChargedHadrCand_(
false)
120 ,embeddedLeadPFNeutralCand_(
false)
121 ,embeddedSignalPFCands_(
false)
122 ,signalPFCandsRefVectorFixed_(
false)
123 ,embeddedSignalPFChargedHadrCands_(
false)
124 ,signalPFChargedHadrCandsRefVectorFixed_(
false)
125 ,embeddedSignalPFNeutralHadrCands_(
false)
126 ,signalPFNeutralHadrCandsRefVectorFixed_(
false)
127 ,embeddedSignalPFGammaCands_(
false)
128 ,signalPFGammaCandsRefVectorFixed_(
false)
129 ,embeddedIsolationPFCands_(
false)
130 ,isolationPFCandsRefVectorFixed_(
false)
131 ,embeddedIsolationPFChargedHadrCands_(
false)
132 ,isolationPFChargedHadrCandsRefVectorFixed_(
false)
133 ,embeddedIsolationPFNeutralHadrCands_(
false)
134 ,isolationPFNeutralHadrCandsRefVectorFixed_(
false)
135 ,embeddedIsolationPFGammaCands_(
false)
136 ,isolationPFGammaCandsRefVectorFixed_(
false)
153 out <<
"\tpat::Tau: ";
154 out << std::setiosflags(std::ios::right);
155 out << std::setiosflags(std::ios::fixed);
156 out << std::setprecision(3);
157 out <<
" E/pT/eta/phi "
215 for (
unsigned int i = 0;
i < trackRefVec.
size();
i++) {
236 for (
unsigned int i = 0;
i < trackRefVec.
size();
i++) {
257 for (std::vector<IdPair>::const_iterator it =
tauIDs_.begin(), ed =
tauIDs_.end(); it != ed; ++it) {
258 if (it->first == name)
return it->second;
261 ex <<
"pat::Tau: the ID " << name <<
" can't be found in this pat::Tau.\n";
262 ex <<
"The available IDs are: ";
263 for (std::vector<IdPair>::const_iterator it =
tauIDs_.begin(), ed =
tauIDs_.end(); it != ed; ++it) {
264 ex <<
"'" << it->first <<
"' ";
271 for (std::vector<IdPair>::const_iterator it =
tauIDs_.begin(), ed =
tauIDs_.end(); it != ed; ++it) {
272 if (it->first == name)
return true;
279 if (!
isPFTau())
throw cms::Exception(
"Type Error") <<
"Requesting a PFTau-specific information from a pat::Tau which wasn't made from a PFTau.\n";
284 if (!
isCaloTau())
throw cms::Exception(
"Type Error") <<
"Requesting a CaloTau-specific information from a pat::Tau which wasn't made from a CaloTau.\n";
292 throw cms::Exception(
"Type Error") <<
"Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
299 throw cms::Exception(
"Type Error") <<
"Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
306 throw cms::Exception(
"Type Error") <<
"Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
313 throw cms::Exception(
"Type Error") <<
"Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
318 if (!
isPFTau())
throw cms::Exception(
"Type Error") <<
"Requesting a PFTau-specific information from a pat::Tau which wasn't made from a PFTau.\n";
361 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
371 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
381 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
391 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
402 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
413 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
423 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
433 for (
unsigned int i = 0;
i < candRefVec.
size();
i++) {
602 for ( std::vector<pat::TauJetCorrFactors>::const_iterator corrFactor =
jec_.begin();
603 corrFactor !=
jec_.end(); ++corrFactor ) {
604 if ( corrFactor->jecSet() ==
set )
return corrFactor-
jec_.begin();
612 std::vector<std::string> sets;
613 for ( std::vector<pat::TauJetCorrFactors>::const_iterator corrFactor =
jec_.begin();
614 corrFactor !=
jec_.end(); ++corrFactor ) {
615 sets.push_back(corrFactor->jecSet());
622 return set>=0 ?
jec_.at(set).correctionLabels() : std::vector<std::string>();
629 for (
unsigned int idx = 0; idx <
jec_.size(); ++idx ) {
630 if ( set.empty() ||
jec_.at(idx).jecSet() ==
set ){
631 if (
jec_[idx].jecLevel(level) >= 0 )
635 <<
"This JEC level " << level <<
" does not exist. \n";
639 <<
"This jet does not carry any jet energy correction factor information \n"
640 <<
"for a jet energy correction set with label " << set <<
"\n";
649 <<
"This jet does not carry any jet energy correction factor information \n";
652 <<
"This jet does not carry any jet energy correction factor information \n"
653 <<
"for a jet energy correction set with index " << set <<
"\n";
663 for (
unsigned int idx = 0; idx <
jec_.size(); ++idx ) {
664 if ( set.empty() ||
jec_.at(idx).jecSet() ==
set ) {
665 if (
jec_[idx].jecLevel(level) >= 0 )
669 <<
"This JEC level " << level <<
" does not exist. \n";
673 <<
"This JEC set " << set <<
" does not exist. \n";
const std::vector< reco::RecoTauPiZero > & signalPiZeroCandidates() const
bool embeddedLeadPFNeutralCand_
virtual reco::TrackRef leadTrack() const
const reco::PFCandidateRef leadPFChargedHadrCand() const
reco::Candidate::LorentzVector p4Jet_
reco::PFCandidateRefVector signalPFCandsTransientRefVector_
reco::PFCandidateRefVector selectedIsolationPFChargedHadrCands_
bool embeddedSignalPFChargedHadrCands_
std::vector< reco::PFCandidate > leadPFNeutralCand_
reco::PFCandidateRefVector selectedIsolationPFGammaCands_
const reco::PFCandidateRefVector & isolationPFCands() const
reco::PFCandidateRefVector signalPFGammaCandsTransientRefVector_
virtual const reco::TrackRefVector & isolationTracks() const
std::vector< reco::PFCandidate > signalPFNeutralHadrCands_
const pat::tau::TauCaloSpecific & caloSpecific() const
return CaloTau info or throw exception 'not CaloTau'
std::vector< reco::PFCandidate > signalPFCands_
bool embeddedIsolationPFChargedHadrCands_
bool jecSetAvailable(const std::string &set) const
reco::TrackRefVector signalTracksTransientRefVector_
bool embeddedIsolationPFCands_
reco::PFCandidateRefVector selectedSignalPFCands_
reco::PFCandidateRefVector signalPFChargedHadrCandsTransientRefVector_
reco::PFCandidateRefVector isolationPFCandsTransientRefVector_
const reco::PFCandidateRefVector & signalPFChargedHadrCands() const
void embedLeadPFChargedHadrCand()
method to store the leading charged hadron candidate internally
bool signalPFCandsRefVectorFixed_
const reco::PFCandidateRefVector & signalPFNeutrHadrCands() const
bool signalPFNeutralHadrCandsRefVectorFixed_
std::vector< reco::PFCandidate > isolationPFGammaCands_
reco::PFCandidateRef leadPFChargedHadrCand_
std::vector< reco::PFCandidate > isolationPFNeutralHadrCands_
virtual void setP4(const LorentzVector &p4)
set 4-momentum
void embedSignalPFGammaCands()
method to store the signal gamma candidates internally
std::vector< reco::GenJet > genJet_
void embedIsolationPFCands()
method to store the isolation candidates internally
void embedIsolationPFGammaCands()
method to store the isolation gamma candidates internally
const reco::GenJet * genJet() const
return matched GenJet, built from the visible particles of a generated tau
const reco::Candidate::LorentzVector & p4Jet() const
const std::vector< std::string > availableJECSets() const
all available label-names of all sets of jet energy corrections
reco::TrackRef leadTrack() const
override the reco::BaseTau::leadTrack method, to access the internal storage of the leading track ...
bool embeddedIsolationPFNeutralHadrCands_
void embedSignalTracks()
method to store the signal tracks internally
const pat::tau::TauPFSpecific & pfSpecific() const
return PFTau info or throw exception 'not PFTau'
float phiphiMoment() const
std::vector< reco::PFCandidate > leadPFCand_
virtual double eta() const
momentum pseudorapidity
bool embeddedSignalPFGammaCands_
float etaetaMoment() 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...
void initializeJEC(unsigned int level, const unsigned int set=0)
initialize the jet to a given JEC level during creation starting from Uncorrected ...
const reco::PFCandidateRefVector & signalPFCands() const
Tau correctedTauJet(const std::string &level, const std::string &set="") const
reco::PFCandidateRefVector isolationPFNeutralHadrCandsTransientRefVector_
unsigned int currentJECLevel_
void embedSignalPFChargedHadrCands()
method to store the signal charged hadrons candidates internally
reco::PFCandidateRefVector selectedSignalPFNeutrHadrCands_
virtual double energy() const
energy
void embedSignalPFCands()
method to store the signal candidates internally
std::vector< reco::RecoTauPiZero > isolationPiZeroCandidates_
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< reco::Track > signalTracks_
std::vector< IdPair > tauIDs_
void swap(RefVector< C, T, F > &other) noexcept
Swap two vectors.
reco::PFCandidateRefVector selectedIsolationPFNeutrHadrCands_
T const * get() const
Returns C++ pointer to the item.
std::vector< reco::RecoTauPiZero > signalPiZeroCandidates_
reco::PFCandidateRefVector isolationPFGammaCandsTransientRefVector_
bool embeddedIsolationPFGammaCands_
std::vector< reco::PFCandidate > signalPFChargedHadrCands_
const reco::PFCandidateRefVector & isolationPFNeutrHadrCands() const
bool signalPFChargedHadrCandsRefVectorFixed_
void embedLeadTrack()
method to store the leading track internally
Analysis-level lepton class.
const std::vector< reco::RecoTauPiZero > & isolationPiZeroCandidates() const
bool isolationTracksTransientRefVectorFixed_
Jets made from MC generator particles.
bool embeddedSignalTracks_
reco::PFCandidateRefVector isolationPFChargedHadrCandsTransientRefVector_
const reco::PFCandidateRefVector & isolationPFChargedHadrCands() const
bool isolationPFGammaCandsRefVectorFixed_
virtual const reco::TrackRefVector & signalTracks() const
edm::Ref< PFCandidateCollection > PFCandidateRef
persistent reference to a PFCandidate
std::string currentJECLevel() const
return the name of the current step of jet energy corrections
Analysis-level tau class.
bool embeddedLeadPFChargedHadrCand_
void embedIsolationPFNeutralHadrCands()
method to store the isolation neutral hadrons candidates internally
bool embeddedSignalPFNeutralHadrCands_
std::vector< reco::PFCandidate > isolationPFCands_
std::vector< reco::Track > isolationTracks_
bool isTauIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Tau.
void embedLeadPFNeutralCand()
method to store the leading neutral candidate internally
std::vector< pat::tau::TauCaloSpecific > caloSpecific_
holder for CaloTau info, or empty vector if PFTau
reco::PFCandidateRefVector signalPFNeutralHadrCandsTransientRefVector_
bool isCaloTau() const
Returns true if this pat::Tau was made from a reco::CaloTau.
int decayMode() const
reconstructed tau decay mode (specific to PFTau)
virtual double pt() const
transverse momentum
std::vector< pat::TauJetCorrFactors > jec_
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
std::vector< reco::PFCandidate > signalPFGammaCands_
const reco::PFCandidateRefVector & signalPFGammaCands() const
void embedSignalPFNeutralHadrCands()
method to store the signal neutral hadrons candidates internally
std::vector< reco::Track > leadTrack_
std::vector< reco::PFCandidate > isolationPFChargedHadrCands_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
const reco::PFCandidateRef leadPFNeutralCand() const
float jecFactor(const std::string &level, const std::string &set="") const
bool isolationPFChargedHadrCandsRefVectorFixed_
bool jecSetsAvailable() const
void setDecayMode(int)
set decay mode
float etaphiMoment() const
bool isolationPFCandsRefVectorFixed_
const reco::PFCandidateRef leadPFCand() const
reco::PFCandidateRefVector selectedSignalPFChargedHadrCands_
void embedIsolationPFChargedHadrCands()
method to store the isolation charged hadrons candidates internally
value_type const at(size_type idx) const
Retrieve an element of the RefVector.
bool embeddedSignalPFCands_
bool isolationPFNeutralHadrCandsRefVectorFixed_
const std::vector< std::string > availableJECLevels(const int &set=0) const
const reco::PFCandidateRefVector & isolationPFGammaCands() const
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
size_type size() const
Size of the RefVector.
bool isPFTau() const
Returns true if this pat::Tau was made from a reco::PFTau.
float tauID(const std::string &name) const
void setGenJet(const reco::GenJetRef &ref)
set the matched GenJet
bool embeddedIsolationTracks_
void embedIsolationTracks()
method to store the isolation tracks internally
reco::PFCandidateRef leadPFNeutralCand_
reco::TrackRefVector isolationTracksTransientRefVector_
const reco::TrackRefVector & signalTracks() const
override the reco::BaseTau::signalTracks method, to access the internal storage of the signal tracks ...
std::vector< reco::PFCandidate > leadPFChargedHadrCand_
std::string currentJECSet() const
returns the label of the current set of jet energy corrections
reco::PFCandidateRefVector selectedSignalPFGammaCands_
bool signalPFGammaCandsRefVectorFixed_
virtual double phi() const
momentum azimuthal angle
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
void embedLeadPFCand()
method to store the leading candidate internally
value_type const * get() const
reco::PFCandidateRefVector selectedIsolationPFCands_
std::vector< pat::tau::TauPFSpecific > pfSpecific_
holder for PFTau info, or empty vector if CaloTau
bool signalTracksTransientRefVectorFixed_
const reco::TrackRefVector & isolationTracks() const
override the reco::BaseTau::isolationTracks method, to access the internal storage of the isolation t...
reco::Candidate::LorentzVector p4Jet_
reco::PFCandidateRef leadPFCand_
unsigned int currentJECSet_
void set(const std::string &name, int value)
set the flag, with a run-time name