98 template<
typename T,
typename U>
100 if ( not oCache.
isSet()) {
102 auto temp = std::make_unique<U>();
103 temp->reserve(iFrom.size());
104 for (
auto const& ref: iFrom ) {
105 temp->push_back(*ref);
113 if(not oCache.
isSet()) {
252 if( muonRef.
isNull() )
return false;
253 else if( muonRef.
isNonnull() )
return true;
281 out <<
"Its TauTagInfo constituents :"<<std::endl;
283 out<<
"# PF charged hadr. cand's "<<
pfTauTagInfoRef()->PFChargedHadrCands().size()<<std::endl;
284 out<<
"# PF neutral hadr. cand's "<<
pfTauTagInfoRef()->PFNeutrHadrCands().size()<<std::endl;
285 out<<
"# PF gamma cand's "<<
pfTauTagInfoRef()->PFGammaCands().size()<<std::endl;
287 if (
jetRef().isNonnull()) {
288 out <<
"Its constituents :"<< std::endl;
289 out<<
"# PF charged hadr. cand's "<<
jetRef()->chargedHadronMultiplicity()<<std::endl;
290 out<<
"# PF neutral hadr. cand's "<<
jetRef()->neutralHadronMultiplicity()<<std::endl;
291 out<<
"# PF gamma cand's "<<
jetRef()->photonMultiplicity()<<std::endl;
292 out<<
"# Electron cand's "<<
jetRef()->electronMultiplicity()<<std::endl;
294 out<<
"in detail :"<<std::endl;
296 out<<
"Pt of the PFTau "<<
pt()<<std::endl;
299 out<<
"No Lead PFCand "<<std::endl;
301 out<<
"Lead PFCand Particle Id " << (*theLeadPFCand).particleId() << std::endl;
302 out<<
"Lead PFCand Pt "<<(*theLeadPFCand).pt()<<std::endl;
303 out<<
"Lead PFCand Charge "<<(*theLeadPFCand).charge()<<std::endl;
304 out<<
"Lead PFCand TrkRef "<<(*theLeadPFCand).trackRef().isNonnull()<<std::endl;
305 out<<
"Inner point position (x,y,z) of the PFTau ("<<
vx()<<
","<<
vy()<<
","<<
vz()<<
")"<<std::endl;
306 out<<
"Charge of the PFTau "<<
charge()<<std::endl;
323 out << std::setprecision(3)
325 <<
" charge: " << tau.
charge() <<
" " 326 <<
" pt:" <<tau.
pt()<<
" " 327 <<
" eta:" <<tau.
eta()<<
" " 328 <<
" phi:" <<tau.
phi()<<
" " 329 <<
" mass:" << tau.
mass() <<
" " float ecalStripSumEOverPLead_
bool hasMuonReference() const
float maximumHCALPFClusterEt() const
Et of the highest Et HCAL PFCluster.
void setisolationPiZeroCandidates(std::vector< RecoTauPiZero >)
int Charge
electric charge type
void setSignalTauChargedHadronCandidatesRefs(PFRecoTauChargedHadronRefVector)
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
std::vector< reco::PFCandidatePtr > selectedIsolationPFNeutrHadrCands_
RecoTauPiZeroRefVector signalPiZeroCandidatesRefs_
void setMuonDecision(const bool &)
void setelectronPreIDOutput(const float &)
float isolationPFGammaCandsEtSum() const
std::vector< reco::PFCandidatePtr > selectedSignalPFCands_
bool isNonnull() const
Checks for non-null.
const PFJetRef & jetRef() const
double eta() const final
momentum pseudorapidity
const std::vector< reco::PFCandidatePtr > & isolationPFCands() const
PFCandidates in isolation region.
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
float isolationPFChargedHadrCandsPtSum() const
void setleadPFChargedHadrCand(const PFCandidatePtr &)
void setleadPFNeutralCand(const PFCandidatePtr &)
const PFCandidatePtr & leadPFChargedHadrCand() const
void setelectronPreIDDecision(const bool &)
edm::AtomicPtrCache< std::vector< reco::RecoTauPiZero > > signalPiZeroCandidates_
double vy() const override
y coordinate of vertex position
float hcalTotOverPLead() const
bool electronPreIDDecision_
float maximumHCALPFClusterEt_
void setisolationPFCands(const std::vector< reco::PFCandidatePtr > &)
void setIsolationTauChargedHadronCandidates(std::vector< PFRecoTauChargedHadron >)
bool electronPreIDDecision() const
const std::vector< reco::PFCandidatePtr > & signalPFGammaCands() const
Gamma candidates in signal region.
float isolationPFChargedHadrCandsPtSum_
float hcal3x3OverPLead() const
CandidatePtr sourceCandidatePtr(size_type i) const override
double pt() const final
transverse momentum
reco::PFCandidatePtr leadPFNeutralCand_
int charge() const final
electric charge
std::vector< reco::PFCandidatePtr > selectedSignalPFGammaCands_
void setsignalPiZeroCandidates(std::vector< RecoTauPiZero >)
void sethcal3x3OverPLead(const float &)
void setisolationPFGammaCandsEtSum(const float &)
void reset()
unsets the value and deletes the memory
bool empty() const
Is the RefVector empty.
edm::AtomicPtrCache< std::vector< reco::RecoTauPiZero > > isolationPiZeroCandidates_
void setemFraction(const float &)
PFRecoTauChargedHadronRefVector isolationTauChargedHadronCandidatesRefs_
const std::vector< reco::PFCandidatePtr > & signalPFCands() const
PFCandidates in signal region.
const std::vector< reco::PFCandidatePtr > & isolationPFGammaCands() const
Gamma candidates in isolation region.
virtual reco::TrackRef track() const
reference to a Track
void setisolationPFNeutrHadrCands(const std::vector< reco::PFCandidatePtr > &)
std::vector< RecoTauPiZero > & signalPiZeroCandidatesRestricted()
bool muonDecision() const
hadronicDecayMode decayMode() const
void setsignalPFChargedHadrCands(const std::vector< reco::PFCandidatePtr > &)
void dump(std::ostream &out=std::cout) const
prints information on this PFTau
void setjetRef(const PFJetRef &)
std::ostream & operator<<(std::ostream &, BeamSpot beam)
float leadPFChargedHadrCandsignedSipt_
PFRecoTauChargedHadronRef leadTauChargedHadronCandidate() const
const std::vector< RecoTauPiZero > & signalPiZeroCandidates() const
Retrieve the association of signal region gamma candidates into candidate PiZeros.
RecoTauPiZeroRefVector isolationPiZeroCandidatesRefs_
void setDecayMode(const hadronicDecayMode &)
void setleadPFCand(const PFCandidatePtr &)
void setCaloComp(const float &)
bool isNull() const
Checks for null.
void setisolationPFChargedHadrCandsPtSum(const float &)
void setleadPFChargedHadrCandsignedSipt(const float &)
void setsignalPFCands(const std::vector< reco::PFCandidatePtr > &)
const LorentzVector & p4() const final
four-momentum Lorentz vector
PFTau * clone() const override
returns a clone of the Candidate object
hadronicDecayMode decayMode_
const std::vector< reco::PFCandidatePtr > & isolationPFNeutrHadrCands() const
const std::vector< reco::PFCandidatePtr > & isolationPFChargedHadrCands() const
Charged candidates in isolation region.
float leadPFChargedHadrCandsignedSipt() const
bool isNull() const
Checks for null.
void setbremsRecoveryEOverPLead(const float &)
bool isNonnull() const
Checks for non-null.
double vz() const override
z coordinate of vertex position
const std::vector< RecoTauPiZero > & isolationPiZeroCandidates() const
Retrieve the association of isolation region gamma candidates into candidate PiZeros.
const PFTauTagInfoRef & pfTauTagInfoRef() const
const PFCandidatePtr & leadPFNeutralCand() const
std::vector< PFRecoTauChargedHadron > & isolationTauChargedHadronCandidatesRestricted()
std::vector< RecoTauPiZero > & isolationPiZeroCandidatesRestricted()
void sethcalMaxOverPLead(const float &)
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
bool set(std::unique_ptr< T > iNewValue) const
edm::AtomicPtrCache< std::vector< reco::PFRecoTauChargedHadron > > signalTauChargedHadronCandidates_
void setisolationPFGammaCands(const std::vector< reco::PFCandidatePtr > &)
void setSegComp(const float &)
void setsignalPFGammaCands(const std::vector< reco::PFCandidatePtr > &)
reco::PFCandidatePtr leadPFChargedHadrCand_
const PFCandidatePtr & leadPFCand() const
void setisolationPFChargedHadrCands(const std::vector< reco::PFCandidatePtr > &)
float bremsRecoveryEOverPLead() const
float bremsRecoveryEOverPLead_
edm::Ref< PFRecoTauChargedHadronCollection > PFRecoTauChargedHadronRef
presistent reference to a PFRecoTauChargedHadron
math::XYZTLorentzVector LorentzVector
Lorentz vector.
PFTauTagInfoRef PFTauTagInfoRef_
float electronPreIDOutput_
const std::vector< reco::PFCandidatePtr > & signalPFNeutrHadrCands() const
Neutral hadrons in signal region.
std::vector< reco::PFCandidatePtr > selectedSignalPFChargedHadrCands_
void setmaximumHCALPFClusterEt(const float &)
void setSignalTauChargedHadronCandidates(std::vector< PFRecoTauChargedHadron >)
std::vector< reco::PFCandidatePtr > selectedIsolationPFChargedHadrCands_
std::vector< reco::PFCandidatePtr > selectedIsolationPFCands_
void setecalStripSumEOverPLead(const float &)
edm::AtomicPtrCache< std::vector< reco::PFRecoTauChargedHadron > > isolationTauChargedHadronCandidates_
PFRecoTauChargedHadronRefVector signalTauChargedHadronCandidatesRefs_
const std::vector< PFRecoTauChargedHadron > & signalTauChargedHadronCandidates() const
Retrieve the association of signal region PF candidates into candidate PFRecoTauChargedHadrons.
math::XYZPoint Point
point in the space
void setIsolationPiZeroCandidatesRefs(RecoTauPiZeroRefVector)
void sethcalTotOverPLead(const float &)
reco::PFCandidatePtr leadPFCand_
std::vector< PFRecoTauChargedHadron > & signalTauChargedHadronCandidatesRestricted()
std::vector< reco::PFCandidatePtr > selectedIsolationPFGammaCands_
const std::vector< PFRecoTauChargedHadron > & isolationTauChargedHadronCandidates() const
Retrieve the association of isolation region PF candidates into candidate PFRecoTauChargedHadron.
void setelectronPreIDTrack(const reco::TrackRef &)
float hcalMaxOverPLead() const
void setIsolationTauChargedHadronCandidatesRefs(PFRecoTauChargedHadronRefVector)
float electronPreIDOutput() const
reco::TrackRef electronPreIDTrack() const
double phi() const final
momentum azimuthal angle
void setsignalPFNeutrHadrCands(const std::vector< reco::PFCandidatePtr > &)
reco::TrackRef electronPreIDTrack_
bool overlap(const Candidate &) const override
check overlap with another candidate
float isolationPFGammaCandsEtSum_
const std::vector< reco::PFCandidatePtr > & signalPFChargedHadrCands() const
Charged hadrons in signal region.
double vx() const override
x coordinate of vertex position
float ecalStripSumEOverPLead() const
std::vector< reco::PFCandidatePtr > selectedSignalPFNeutrHadrCands_
double mass() const final
mass
void setpfTauTagInfoRef(const PFTauTagInfoRef)
void setSignalPiZeroCandidatesRefs(RecoTauPiZeroRefVector)