7 #include <boost/bind.hpp>
15 ,embeddedIsolationTracks_(
false)
16 ,embeddedLeadTrack_(
false)
17 ,embeddedSignalTracks_(
false)
18 ,embeddedLeadPFCand_(
false)
19 ,embeddedLeadPFChargedHadrCand_(
false)
20 ,embeddedLeadPFNeutralCand_(
false)
21 ,embeddedSignalPFCands_(
false)
22 ,embeddedSignalPFChargedHadrCands_(
false)
23 ,embeddedSignalPFNeutralHadrCands_(
false)
24 ,embeddedSignalPFGammaCands_(
false)
25 ,embeddedIsolationPFCands_(
false)
26 ,embeddedIsolationPFChargedHadrCands_(
false)
27 ,embeddedIsolationPFNeutralHadrCands_(
false)
28 ,embeddedIsolationPFGammaCands_(
false)
35 ,embeddedIsolationTracks_(
false)
36 ,embeddedLeadTrack_(
false)
37 ,embeddedSignalTracks_(
false)
38 ,embeddedLeadPFCand_(
false)
39 ,embeddedLeadPFChargedHadrCand_(
false)
40 ,embeddedLeadPFNeutralCand_(
false)
41 ,embeddedSignalPFCands_(
false)
42 ,embeddedSignalPFChargedHadrCands_(
false)
43 ,embeddedSignalPFNeutralHadrCands_(
false)
44 ,embeddedSignalPFGammaCands_(
false)
45 ,embeddedIsolationPFCands_(
false)
46 ,embeddedIsolationPFChargedHadrCands_(
false)
47 ,embeddedIsolationPFNeutralHadrCands_(
false)
48 ,embeddedIsolationPFGammaCands_(
false)
62 ,embeddedIsolationTracks_(
false)
63 ,embeddedLeadTrack_(
false)
64 ,embeddedSignalTracks_(
false)
65 ,embeddedLeadPFCand_(
false)
66 ,embeddedLeadPFChargedHadrCand_(
false)
67 ,embeddedLeadPFNeutralCand_(
false)
68 ,embeddedSignalPFCands_(
false)
69 ,embeddedSignalPFChargedHadrCands_(
false)
70 ,embeddedSignalPFNeutralHadrCands_(
false)
71 ,embeddedSignalPFGammaCands_(
false)
72 ,embeddedIsolationPFCands_(
false)
73 ,embeddedIsolationPFChargedHadrCands_(
false)
74 ,embeddedIsolationPFNeutralHadrCands_(
false)
75 ,embeddedIsolationPFGammaCands_(
false)
89 ,embeddedIsolationTracks_(
false)
90 ,embeddedLeadTrack_(
false)
91 ,embeddedSignalTracks_(
false)
92 ,embeddedLeadPFCand_(
false)
93 ,embeddedLeadPFChargedHadrCand_(
false)
94 ,embeddedLeadPFNeutralCand_(
false)
95 ,embeddedSignalPFCands_(
false)
96 ,embeddedSignalPFChargedHadrCands_(
false)
97 ,embeddedSignalPFNeutralHadrCands_(
false)
98 ,embeddedSignalPFGammaCands_(
false)
99 ,embeddedIsolationPFCands_(
false)
100 ,embeddedIsolationPFChargedHadrCands_(
false)
101 ,embeddedIsolationPFNeutralHadrCands_(
false)
102 ,embeddedIsolationPFGammaCands_(
false)
122 out <<
"\tpat::Tau: ";
123 out << std::setiosflags(std::ios::right);
124 out << std::setiosflags(std::ios::fixed);
125 out << std::setprecision(3);
126 out <<
" E/pT/eta/phi "
184 for (
unsigned int i = 0;
i < trackRefVec.
size();
i++) {
205 for (
unsigned int i = 0;
i < trackRefVec.
size();
i++) {
226 for (std::vector<IdPair>::const_iterator it =
tauIDs_.begin(), ed =
tauIDs_.end(); it != ed; ++it) {
227 if (it->first == name)
return it->second;
230 ex <<
"pat::Tau: the ID " << name <<
" can't be found in this pat::Tau.\n";
231 ex <<
"The available IDs are: ";
232 for (std::vector<IdPair>::const_iterator it =
tauIDs_.begin(), ed =
tauIDs_.end(); it != ed; ++it) {
233 ex <<
"'" << it->first <<
"' ";
240 for (std::vector<IdPair>::const_iterator it =
tauIDs_.begin(), ed =
tauIDs_.end(); it != ed; ++it) {
241 if (it->first == name)
return true;
248 if (!
isPFTau())
throw cms::Exception(
"Type Error") <<
"Requesting a PFTau-specific information from a pat::Tau which wasn't made from a PFTau.\n";
253 if (
pfEssential_.empty())
throw cms::Exception(
"Type Error") <<
"Requesting a PFTau-specific information from a pat::Tau which wasn't made from a PFTau.\n";
259 if (!
isCaloTau())
throw cms::Exception(
"Type Error") <<
"Requesting a CaloTau-specific information from a pat::Tau which wasn't made from a CaloTau.\n";
267 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";
360 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedSignalPFCands_;
361 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
370 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedSignalPFChargedHadrCands_;
371 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
380 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedSignalPFNeutrHadrCands_;
381 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
390 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedSignalPFGammaCands_;
391 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
401 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedIsolationPFCands_;
402 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
412 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedIsolationPFChargedHadrCands_;
413 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
422 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedIsolationPFNeutrHadrCands_;
423 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
432 std::vector<reco::PFCandidatePtr> candPtrs =
pfSpecific_[0].selectedIsolationPFGammaCands_;
433 for (
unsigned int i = 0;
i < candPtrs.size();
i++) {
440 if(!
isPFTau() )
throw cms::Exception(
"Type Error") <<
"Requesting content that is not stored in miniAOD.\n";
441 if (
pfSpecific().signalTauChargedHadronCandidates_.size() > 0 ) {
475 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
487 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
497 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
509 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
519 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
531 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
541 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
553 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
573 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
585 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
595 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
607 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
617 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
629 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
639 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
651 std::unique_ptr<std::vector<reco::PFCandidatePtr> > aPtrs{
new std::vector<reco::PFCandidatePtr>{}};
682 for ( std::vector<pat::TauJetCorrFactors>::const_iterator corrFactor =
jec_.begin();
683 corrFactor !=
jec_.end(); ++corrFactor ) {
684 if ( corrFactor->jecSet() == set )
return corrFactor-
jec_.begin();
692 std::vector<std::string> sets;
693 for ( std::vector<pat::TauJetCorrFactors>::const_iterator corrFactor =
jec_.begin();
694 corrFactor !=
jec_.end(); ++corrFactor ) {
695 sets.push_back(corrFactor->jecSet());
702 return set>=0 ?
jec_.at(set).correctionLabels() : std::vector<std::string>();
710 if ( set.empty() ||
jec_.at(
idx).jecSet() == set ){
711 if (
jec_[
idx].jecLevel(level) >= 0 )
715 <<
"This JEC level " << level <<
" does not exist. \n";
719 <<
"This jet does not carry any jet energy correction factor information \n"
720 <<
"for a jet energy correction set with label " << set <<
"\n";
725 float Tau::jecFactor(
const unsigned int& level,
const unsigned int& set)
const
729 <<
"This jet does not carry any jet energy correction factor information \n";
732 <<
"This jet does not carry any jet energy correction factor information \n"
733 <<
"for a jet energy correction set with index " << set <<
"\n";
744 if ( set.empty() ||
jec_.at(
idx).jecSet() == set ) {
745 if (
jec_[
idx].jecLevel(level) >= 0 )
749 <<
"This JEC level " << level <<
" does not exist. \n";
753 <<
"This JEC set " << set <<
" does not exist. \n";
779 if (ret.
isNull() || (
p->pt() > ret->pt())) ret =
p;
791 if (ret.
isNull() || (
p->pt() > ret->pt())) ret =
p;
826 std::vector<std::pair<float,size_t> > pt_index;
828 for (
const auto &
p : signalChargedHadrCandPtrs_){ ret2.
push_back(
p); pt_index.push_back(std::make_pair(
p->pt(),
index)); index++;}
829 for (
const auto &
p : signalNeutralHadrCandPtrs_){ ret2.
push_back(
p); pt_index.push_back(std::make_pair(
p->pt(),
index)); index++;}
831 std::sort(pt_index.begin(),pt_index.end(),
834 for(
const auto &
p : pt_index){
845 if(signalChargedHadrCandPtrs_.isNull() || (!r0.empty() && r0.front().isAvailable())) {
859 if(signalNeutralHadrCandPtrs_.isNull() || (!r0.empty() && r0.front().isAvailable())) {
872 if(signalGammaCandPtrs_.isNull() || (!r0.empty() && r0.front().isAvailable())) {
892 std::vector<std::pair<float,size_t> > pt_index;
897 std::sort(pt_index.begin(),pt_index.end(),
900 for(
const auto &
p : pt_index){
911 if(isolationChargedHadrCandPtrs_.isNull() || (!r0.empty() && r0.front().isAvailable())) {
925 if(isolationNeutralHadrCandPtrs_.isNull() || (!r0.empty() && r0.front().isAvailable())) {
938 if(isolationGammaCandPtrs_.isNull() || (!r0.empty() && r0.front().isAvailable())) {
bool embeddedLeadPFNeutralCand_
value_type const * get() const
virtual reco::TrackRef leadTrack() const
tuple ret
prodAgent to be discontinued
edm::AtomicPtrCache< reco::TrackRefVector > signalTracksTransientRefVector_
const std::vector< reco::PFCandidatePtr > & isolationPFCands() const
const std::vector< std::string > availableJECSets() const
const pat::tau::TauCaloSpecific & caloSpecific() const
return CaloTau info or throw exception 'not CaloTau'
reco::CandidatePtrVector isolationGammaCandPtrs_
pat::tau::TauPFEssential::CovMatrix flightLengthCov() const
size_type size() const
Size of the RefVector.
const reco::CandidatePtr leadCand() const
return the PFCandidate if available (reference or embedded), or the PackedPFCandidate on miniAOD ...
const reco::TrackRefVector & isolationTracks() const
override the reco::BaseTau::isolationTracks method, to access the internal storage of the isolation t...
reco::CandidatePtrVector isolationChargedHadrCands() const
void embedIsolationPFCands()
method to store the isolation candidates internally
bool embeddedSignalPFChargedHadrCands_
std::vector< reco::PFCandidatePtr > selectedIsolationPFChargedHadrCands_
virtual double energy() const final
energy
std::vector< reco::PFCandidate > leadPFNeutralCand_
void embedIsolationPFGammaCands()
method to store the isolation gamma candidates internally
bool isNull() const
Checks for null.
reco::PFCandidatePtr leadPFCand_
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFChargedHadrCandsTransientPtrs_
virtual const reco::TrackRefVector & isolationTracks() const
std::vector< reco::PFCandidate > signalPFNeutralHadrCands_
std::vector< reco::PFCandidate > signalPFCands_
void push_back(Ptr< T > const &iPtr)
size_t numberOfSourceCandidatePtrs() const
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFNeutralHadrCandsTransientPtrs_
bool embeddedIsolationPFChargedHadrCands_
T const * get() const
Returns C++ pointer to the item.
bool jecSetAvailable(const std::string &set) const
bool embeddedIsolationPFCands_
const std::vector< reco::PFCandidatePtr > & isolationPFChargedHadrCands() const
const pat::tau::TauPFEssential & pfEssential() const
const reco::PFCandidatePtr leadPFChargedHadrCand() const
void embedLeadTrack()
method to store the leading track internally
reco::PFCandidatePtr leadPFChargedHadrCand_
void embedSignalPFChargedHadrCands()
method to store the signal charged hadrons candidates internally
std::vector< reco::PFCandidate > isolationPFGammaCands_
std::vector< reco::PFCandidate > isolationPFNeutralHadrCands_
virtual double phi() const final
momentum azimuthal angle
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFGammaCandsTransientPtrs_
const reco::CandidatePtr leadNeutralCand() const
return the PFCandidate if available (reference or embedded), or the PackedPFCandidate on miniAOD ...
const std::vector< reco::PFRecoTauChargedHadron > & signalTauChargedHadronCandidates() const
std::vector< reco::GenJet > genJet_
void setDecayMode(int)
set decay mode
reco::CandidatePtr sourceCandidatePtr(size_type i) const
get the source candidate pointer with index i
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFCandsTransientPtrs_
float tauID(const std::string &name) const
bool embeddedIsolationPFNeutralHadrCands_
reco::CandidatePtrVector signalCands() const
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFGammaCandsTransientPtrs_
int jecSet(const std::string &label) const
float phiphiMoment() const
std::vector< reco::PFCandidate > leadPFCand_
reco::CandidatePtrVector signalGammaCands() const
const pat::tau::TauPFEssential::CovMatrix & primaryVertexCov() const
std::vector< reco::PFCandidatePtr > selectedIsolationPFNeutrHadrCands_
const std::vector< reco::PFRecoTauChargedHadron > & isolationTauChargedHadronCandidates() const
bool embeddedSignalPFGammaCands_
std::vector< reco::PFRecoTauChargedHadron > isolationTauChargedHadronCandidates_
reco::CandidatePtrVector isolationNeutrHadrCands() const
unsigned int currentJECLevel_
edm::AtomicPtrCache< reco::TrackRefVector > isolationTracksTransientRefVector_
const std::vector< reco::PFCandidatePtr > & signalPFCands() const
reco::PFRecoTauChargedHadronRef leadTauChargedHadronCandidate() const
std::vector< reco::PFRecoTauChargedHadron > signalTauChargedHadronCandidates_
void embedSignalPFCands()
method to store the signal candidates internally
reco::CandidatePtrVector isolationChargedHadrCandPtrs_
std::vector< reco::RecoTauPiZero > isolationPiZeroCandidates_
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< reco::Track > signalTracks_
std::vector< IdPair > tauIDs_
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > signalPFChargedHadrCandsTransientPtrs_
std::vector< reco::RecoTauPiZero > signalPiZeroCandidates_
bool embeddedIsolationPFGammaCands_
float etaetaMoment() const
std::vector< reco::PFCandidate > signalPFChargedHadrCands_
Analysis-level lepton class.
bool isNull() const
Checks for null.
Tau correctedTauJet(const std::string &level, const std::string &set="") const
float jecFactor(const std::string &level, const std::string &set="") const
reco::CandidatePtrVector isolationNeutralHadrCandPtrs_
Jets made from MC generator particles.
bool embeddedSignalTracks_
reco::CandidatePtrVector signalNeutrHadrCands() const
std::vector< reco::PFCandidatePtr > selectedSignalPFChargedHadrCands_
virtual const reco::TrackRefVector & signalTracks() const
const reco::CandidatePtr leadChargedHadrCand() const
std::vector< pat::tau::TauPFEssential > pfEssential_
std::vector< reco::PFCandidatePtr > selectedSignalPFCands_
void embedIsolationPFNeutralHadrCands()
method to store the isolation neutral hadrons candidates internally
const std::vector< reco::RecoTauPiZero > & signalPiZeroCandidates() const
void reserve(size_type n)
Reserve space for RefVector.
void embedLeadPFChargedHadrCand()
method to store the leading charged hadron candidate internally
std::string currentJECLevel() const
return the name of the current step of jet energy corrections
const reco::PFCandidatePtr leadPFCand() const
Analysis-level tau class.
const pat::tau::TauPFEssential::CovMatrix & secondaryVertexCov() const
bool embeddedLeadPFChargedHadrCand_
void embedIsolationPFChargedHadrCands()
method to store the isolation charged hadrons candidates internally
bool embeddedSignalPFNeutralHadrCands_
std::vector< reco::PFCandidate > isolationPFCands_
std::vector< reco::Track > isolationTracks_
void setGenJet(const reco::GenJetRef &ref)
set the matched GenJet
bool isTauIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Tau.
const std::vector< reco::PFCandidatePtr > & signalPFChargedHadrCands() const
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
std::vector< reco::PFCandidatePtr > selectedIsolationPFGammaCands_
bool isCaloTau() const
Returns true if this pat::Tau was made from a reco::CaloTau.
const std::vector< reco::PFCandidatePtr > & signalPFNeutrHadrCands() const
std::vector< reco::PFCandidatePtr > selectedIsolationPFCands_
reco::PFCandidatePtr leadPFNeutralCand_
const std::vector< reco::PFCandidatePtr > & isolationPFGammaCands() const
reco::CandidatePtrVector signalGammaCandPtrs_
int decayMode() const
reconstructed tau decay mode (specific to PFTau)
bool set(std::unique_ptr< T > iNewValue) const
std::vector< reco::PFCandidatePtr > selectedSignalPFGammaCands_
std::vector< pat::TauJetCorrFactors > jec_
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
float etaphiMoment() const
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFNeutralHadrCandsTransientPtrs_
virtual void setP4(const LorentzVector &p4) final
set 4-momentum
std::vector< reco::PFCandidate > signalPFGammaCands_
std::vector< reco::Track > leadTrack_
edm::Ref< PFRecoTauChargedHadronCollection > PFRecoTauChargedHadronRef
presistent reference to a PFRecoTauChargedHadron
std::vector< reco::PFCandidate > isolationPFChargedHadrCands_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
virtual double p() const final
magnitude of momentum vector
bool jecSetsAvailable() const
void initializeJEC(unsigned int level, const unsigned int set=0)
initialize the jet to a given JEC level during creation starting from Uncorrected ...
std::vector< reco::PFCandidatePtr > selectedSignalPFNeutrHadrCands_
const pat::tau::TauPFSpecific & pfSpecific() const
return PFTau info or throw exception 'not PFTau'
void embedSignalPFNeutralHadrCands()
method to store the signal neutral hadrons candidates internally
reco::CandidatePtrVector signalNeutralHadrCandPtrs_
const reco::GenJet * genJet() const
return matched GenJet, built from the visible particles of a generated tau
value_type const at(size_type idx) const
Retrieve an element of the RefVector.
bool embeddedSignalPFCands_
const reco::TrackRefVector & signalTracks() const
override the reco::BaseTau::signalTracks method, to access the internal storage of the signal tracks ...
reco::TrackRef leadTrack() const
override the reco::BaseTau::leadTrack method, to access the internal storage of the leading track ...
void embedSignalTracks()
method to store the signal tracks internally
size_type size() const
Size of the RefVector.
reco::CandidatePtrVector isolationGammaCands() const
bool isPFTau() const
Returns true if this pat::Tau was made from a reco::PFTau.
const std::vector< std::string > availableJECLevels(const int &set=0) const
bool embeddedIsolationTracks_
reco::CandidatePtrVector signalChargedHadrCands() const
virtual double eta() const final
momentum pseudorapidity
void embedSignalPFGammaCands()
method to store the signal gamma candidates internally
volatile std::atomic< bool > shutdown_flag false
const std::vector< reco::RecoTauPiZero > & isolationPiZeroCandidates() const
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > isolationPFCandsTransientPtrs_
bool ExistIsolationCands() const
std::vector< reco::PFCandidate > leadPFChargedHadrCand_
std::string currentJECSet() const
returns the label of the current set of jet energy corrections
bool ExistSignalCands() const
const std::vector< reco::PFCandidatePtr > & signalPFGammaCands() const
edm::Ptr< PFCandidate > PFCandidatePtr
persistent Ptr to a PFCandidate
reco::CandidatePtrVector isolationCands() const
void embedIsolationTracks()
method to store the isolation tracks internally
virtual const LorentzVector & p4() const final
four-momentum Lorentz vector
reco::Candidate::LorentzVector p4Jet() const
std::vector< pat::tau::TauPFSpecific > pfSpecific_
holder for PFTau info, or empty vector if CaloTau
const std::vector< reco::PFCandidatePtr > & isolationPFNeutrHadrCands() const
reco::Candidate::LorentzVector p4Jet_
reco::CandidatePtrVector signalChargedHadrCandPtrs_
unsigned int currentJECSet_
virtual double pt() const final
transverse momentum
math::ErrorF< 3 >::type CovMatrix
const reco::PFCandidatePtr leadPFNeutralCand() const