CMS 3D CMS Logo

PFTau.cc
Go to the documentation of this file.
4 
5 //using namespace std;
6 namespace reco {
7 
9 {
14  emFraction_ = NAN;
15  hcalTotOverPLead_ = NAN;
16  hcalMaxOverPLead_ = NAN;
17  hcal3x3OverPLead_ = NAN;
22  caloComp_ = NAN;
23  segComp_ = NAN;
24  muonDecision_ = NAN;
25  decayMode_ = kNull;
26  bendCorrMass_ = 0.;
27  signalConeSize_ = 0.;
28 }
29 
31  : BaseTau(q, p4, vtx)
32 {
37 
38  emFraction_ = NAN;
39  hcalTotOverPLead_ = NAN;
40  hcalMaxOverPLead_ = NAN;
41  hcal3x3OverPLead_ = NAN;
46 
47  caloComp_ = NAN;
48  segComp_ = NAN;
49  muonDecision_ = NAN;
50  decayMode_ = kNull;
51  bendCorrMass_ = 0.;
52  signalConeSize_ = 0.;
53 }
54 
55 PFTau* PFTau::clone() const { return new PFTau(*this); }
56 
57 // Constituent getters and setters
58 const JetBaseRef& PFTau::jetRef() const { return jetRef_; }
59 void PFTau::setjetRef(const JetBaseRef& x) { jetRef_ = x; }
60 
62  return PFTauTagInfoRef_;
63 }
64 
66 
69 const CandidatePtr& PFTau::leadCand() const { return leadCand_; }
70 
73 void PFTau::setleadCand(const CandidatePtr& myLead) { leadCand_ = myLead;}
74 
77 
78 const std::vector<CandidatePtr>& PFTau::signalCands() const { return selectedSignalCands_; }
79 void PFTau::setsignalCands(const std::vector<CandidatePtr>& myParts) { selectedSignalCands_ = myParts; }
80 const std::vector<CandidatePtr>& PFTau::signalChargedHadrCands() const { return selectedSignalChargedHadrCands_; }
81 void PFTau::setsignalChargedHadrCands(const std::vector<CandidatePtr>& myParts) { selectedSignalChargedHadrCands_ = myParts; }
82 const std::vector<CandidatePtr>& PFTau::signalNeutrHadrCands() const {return selectedSignalNeutrHadrCands_; }
83 void PFTau::setsignalNeutrHadrCands(const std::vector<CandidatePtr>& myParts) { selectedSignalNeutrHadrCands_ = myParts; }
84 const std::vector<CandidatePtr>& PFTau::signalGammaCands() const { return selectedSignalGammaCands_; }
85 void PFTau::setsignalGammaCands(const std::vector<CandidatePtr>& myParts) { selectedSignalGammaCands_ = myParts; }
86 
87 const std::vector<CandidatePtr>& PFTau::isolationCands() const { return selectedIsolationCands_; }
88 void PFTau::setisolationCands(const std::vector<CandidatePtr>& myParts) { selectedIsolationCands_ = myParts;}
89 const std::vector<CandidatePtr>& PFTau::isolationChargedHadrCands() const { return selectedIsolationChargedHadrCands_; }
90 void PFTau::setisolationChargedHadrCands(const std::vector<CandidatePtr>& myParts) { selectedIsolationChargedHadrCands_ = myParts; }
91 const std::vector<CandidatePtr>& PFTau::isolationNeutrHadrCands() const { return selectedIsolationNeutrHadrCands_; }
92 void PFTau::setisolationNeutrHadrCands(const std::vector<CandidatePtr>& myParts) { selectedIsolationNeutrHadrCands_ = myParts; }
93 const std::vector<CandidatePtr>& PFTau::isolationGammaCands() const { return selectedIsolationGammaCands_; }
94 void PFTau::setisolationGammaCands(const std::vector<CandidatePtr>& myParts) { selectedIsolationGammaCands_ = myParts; }
95 
96 
97 namespace {
98  template<typename T, typename U>
99  void setCache( const T& iFrom, const edm::AtomicPtrCache<U>& oCache) {
100  if ( not oCache.isSet()) {
101  // Fill them from the refs
102  auto temp = std::make_unique<U>();
103  temp->reserve(iFrom.size());
104  for ( auto const& ref: iFrom ) {
105  temp->push_back(*ref);
106  }
107  oCache.set(std::move(temp));
108  }
109  }
110 
111  template<typename T>
112  T& makeCacheIfNeeded(edm::AtomicPtrCache<T>& oCache) {
113  if(not oCache.isSet()) {
114  oCache.set(std::move(std::make_unique<T>()));
115  }
116  return *oCache;
117  }
118 
119  template<typename T>
120  void copyToCache(T&& iFrom, edm::AtomicPtrCache<T>& oCache) {
121  oCache.reset();
122  oCache.set( std::make_unique<T>(std::move(iFrom)));
123  }
124 
125  std::unique_ptr<reco::PFCandidatePtr> convertToPFPtr(const reco::CandidatePtr& ptr) {
126  if (ptr.isNonnull()) {
127  const reco::PFCandidate* pf_cand = dynamic_cast<const reco::PFCandidate*>(&*ptr);
128  if (pf_cand != nullptr) {
129  return std::unique_ptr<reco::PFCandidatePtr>(new reco::PFCandidatePtr(ptr));
130  } else throw cms::Exception("Type Mismatch") << "This PFTau was not made from PFCandidates, but it is being tried to access a PFCandidate.\n";
131  }
132  return std::unique_ptr<reco::PFCandidatePtr>(new reco::PFCandidatePtr());
133  }
134 
135  std::unique_ptr<std::vector<reco::PFCandidatePtr> > convertToPFPtrs(const std::vector<reco::CandidatePtr>& cands) {
136  std::unique_ptr<std::vector<reco::PFCandidatePtr> > newSignalPFCands{new std::vector<reco::PFCandidatePtr>{}};
137  bool isPF = false;
138  for (auto& cand : cands) {
139  // Check for first Candidate if it is a PFCandidate; if yes, skip for the rest
140  if (!isPF) {
141  const reco::PFCandidate* pf_cand = dynamic_cast<const reco::PFCandidate*>(&*cand);
142  if (pf_cand != nullptr) {
143  isPF = true;
144  newSignalPFCands->reserve(cands.size());
145  } else throw cms::Exception("Type Mismatch") << "This PFTau was not made from PFCandidates, but it is being tried to access PFCandidates.\n";
146  }
147  const auto& newPtr = edm::Ptr<reco::PFCandidate>(cand);
148  newSignalPFCands->push_back(newPtr);
149  }
150  return newSignalPFCands;
151  }
152 }
153 
155  if (!leadPFChargedHadrCand_.isSet())
156  leadPFChargedHadrCand_.set(convertToPFPtr(leadChargedHadrCand_));
157  return *leadPFChargedHadrCand_;
158 }
159 
161  if (!leadPFNeutralCand_.isSet())
162  leadPFNeutralCand_.set(convertToPFPtr(leadNeutralCand_));
163  return *leadPFNeutralCand_;
164 }
165 
167  if (!leadPFCand_.isSet())
168  leadPFCand_.set(convertToPFPtr(leadCand_));
169  return *leadPFCand_;
170 }
171 
172 const std::vector<reco::PFCandidatePtr>& PFTau::signalPFCands() const {
175  }
177 }
178 
179 const std::vector<reco::PFCandidatePtr>& PFTau::signalPFChargedHadrCands() const {
182  }
184 }
185 
186 const std::vector<reco::PFCandidatePtr>& PFTau::signalPFNeutrHadrCands() const {
189  }
191 }
192 
193 const std::vector<reco::PFCandidatePtr>& PFTau::signalPFGammaCands() const {
196  }
198 }
199 
200 const std::vector<reco::PFCandidatePtr>& PFTau::isolationPFCands() const {
203  }
205 }
206 
207 const std::vector<reco::PFCandidatePtr>& PFTau::isolationPFChargedHadrCands() const {
210  }
212 }
213 
214 const std::vector<reco::PFCandidatePtr>& PFTau::isolationPFNeutrHadrCands() const {
217  }
219 }
220 
221 const std::vector<reco::PFCandidatePtr>& PFTau::isolationPFGammaCands() const {
224  }
226 }
227 
228 
229 // PiZero and decay mode information
230 const std::vector<RecoTauPiZero>& PFTau::signalPiZeroCandidates() const {
231  // Check if the signal pi zeros are already filled
233  return *signalPiZeroCandidates_;
234 }
235 
236 std::vector<RecoTauPiZero>& PFTau::signalPiZeroCandidatesRestricted() {
237  // Check if the signal pi zeros are already filled
238  return makeCacheIfNeeded(signalPiZeroCandidates_);
239 }
240 
241 void PFTau::setsignalPiZeroCandidates(std::vector<RecoTauPiZero> cands) {
242  copyToCache(std::move(cands), signalPiZeroCandidates_);
243 }
244 
247 }
248 
249 const std::vector<RecoTauPiZero>& PFTau::isolationPiZeroCandidates() const {
250  // Check if the signal pi zeros are already filled
253 }
254 
255 std::vector<RecoTauPiZero>& PFTau::isolationPiZeroCandidatesRestricted() {
256  // Check if the signal pi zeros are already filled
257  return makeCacheIfNeeded(isolationPiZeroCandidates_);
258 }
259 
262 }
263 
264 void PFTau::setisolationPiZeroCandidates(std::vector<RecoTauPiZero> cands) {
265  copyToCache(std::move(cands), signalPiZeroCandidates_);
266 }
267 
268 // Tau Charged Hadron information
272  } else {
273  return PFRecoTauChargedHadronRef();
274  }
275 }
276 
277 const std::vector<PFRecoTauChargedHadron>& PFTau::signalTauChargedHadronCandidates() const {
278  // Check if the signal tau charged hadrons are already filled
281 }
282 
283 std::vector<PFRecoTauChargedHadron>& PFTau::signalTauChargedHadronCandidatesRestricted() {
284  // Check if the signal tau charged hadrons are already filled
285  return makeCacheIfNeeded(signalTauChargedHadronCandidates_);
286 }
287 
288 void PFTau::setSignalTauChargedHadronCandidates(std::vector<PFRecoTauChargedHadron> cands) {
289  copyToCache(std::move(cands), signalTauChargedHadronCandidates_);
290 }
291 
294 }
295 
296 const std::vector<PFRecoTauChargedHadron>& PFTau::isolationTauChargedHadronCandidates() const {
297  // Check if the isolation tau charged hadrons are already filled
300 }
301 
302 std::vector<PFRecoTauChargedHadron>& PFTau::isolationTauChargedHadronCandidatesRestricted() {
303  // Check if the isolation tau charged hadrons are already filled
304  return makeCacheIfNeeded(isolationTauChargedHadronCandidates_);
305 }
306 
307 void PFTau::setIsolationTauChargedHadronCandidates(std::vector<PFRecoTauChargedHadron> cands) {
309 }
310 
313 }
314 
316 
318 
319 // Setting information about the isolation region
322 
325 
328 
329 // Electron variables
330 float PFTau::emFraction() const {return emFraction_;}
339 
340 void PFTau::setemFraction(const float& x) {emFraction_ = x;}
349 
350 // Muon variables
351 bool PFTau::hasMuonReference() const { // check if muon ref exists
352  if( leadChargedHadrCand_.isNull() ) return false;
353  else if( leadChargedHadrCand_.isNonnull() ){
354  const reco::PFCandidate* pf_cand = dynamic_cast<const reco::PFCandidate*>(&*leadChargedHadrCand_);
355  if (pf_cand) {
356  reco::MuonRef muonRef = pf_cand->muonRef();
357  if( muonRef.isNull() ) return false;
358  else if( muonRef.isNonnull() ) return true;
359  }
360  }
361  return false;
362 }
363 
364 float PFTau::caloComp() const {return caloComp_;}
365 float PFTau::segComp() const {return segComp_;}
366 bool PFTau::muonDecision() const {return muonDecision_;}
367 void PFTau::setCaloComp(const float& x) {caloComp_ = x;}
368 void PFTau::setSegComp (const float& x) {segComp_ = x;}
369 void PFTau::setMuonDecision(const bool& x) {muonDecision_ = x;}
370 
372  if ( i!=0 ) return CandidatePtr();
373  return jetRef().castTo<CandidatePtr>();
374 }
375 
376 
377 bool PFTau::overlap(const Candidate& theCand) const {
378  const RecoCandidate* theRecoCand = dynamic_cast<const RecoCandidate *>(&theCand);
379  return (theRecoCand!=nullptr && (checkOverlap(track(), theRecoCand->track())));
380 }
381 
382 void PFTau::dump(std::ostream& out) const {
383 
384  if(!out) return;
385 
386  if (pfTauTagInfoRef().isNonnull()) {
387  out << "Its TauTagInfo constituents :"<<std::endl;
388  out<<"# Tracks "<<pfTauTagInfoRef()->Tracks().size()<<std::endl;
389  out<<"# PF charged hadr. cand's "<<pfTauTagInfoRef()->PFChargedHadrCands().size()<<std::endl;
390  out<<"# PF neutral hadr. cand's "<<pfTauTagInfoRef()->PFNeutrHadrCands().size()<<std::endl;
391  out<<"# PF gamma cand's "<<pfTauTagInfoRef()->PFGammaCands().size()<<std::endl;
392  }
393  out<<"in detail :"<<std::endl;
394 
395  out<<"Pt of the PFTau "<<pt()<<std::endl;
396  const CandidatePtr& theLeadCand = leadChargedHadrCand();
397  if(!theLeadCand){
398  out<<"No Lead Cand "<<std::endl;
399  }else{
400  out<<"Lead Cand PDG Id " << (*theLeadCand).pdgId() << std::endl;
401  out<<"Lead Cand Pt "<<(*theLeadCand).pt()<<std::endl;
402  out<<"Lead Cand Charge "<<(*theLeadCand).charge()<<std::endl;
403  out<<"Inner point position (x,y,z) of the PFTau ("<<vx()<<","<<vy()<<","<<vz()<<")"<<std::endl;
404  out<<"Charge of the PFTau "<<charge()<<std::endl;
405  out<<"Et of the highest Et HCAL PFCluster "<<maximumHCALPFClusterEt()<<std::endl;
406  out<<"Number of SignalChargedHadrCands = "<<signalChargedHadrCands().size()<<std::endl;
407  out<<"Number of SignalGammaCands = "<<signalGammaCands().size()<<std::endl;
408  out<<"Number of IsolationChargedHadrCands = "<<isolationChargedHadrCands().size()<<std::endl;
409  out<<"Number of IsolationGammaCands = "<<isolationGammaCands().size()<<std::endl;
410  out<<"Sum of Pt of charged hadr. PFCandidates in isolation annulus around Lead PF = "<<isolationPFChargedHadrCandsPtSum()<<std::endl;
411  out<<"Sum of Et of gamma PFCandidates in other isolation annulus around Lead PF = "<<isolationPFGammaCandsEtSum()<<std::endl;
412 
413  }
414  // return out;
415 }
416 
417 std::ostream& operator<<(std::ostream& out, const reco::PFTau& tau) {
418 
419  if(!out) return out;
420 
421  out << std::setprecision(3)
422  <<"PFTau "
423  << " charge: " << tau.charge() << " "
424  << " pt:" <<tau.pt()<<" "
425  << " eta:" <<tau.eta()<<" "
426  << " phi:" <<tau.phi()<<" "
427  << " mass:" << tau.mass() << " "
428  << " dm: " << tau.decayMode() << " "
429  <<tau.signalCands().size()<<","
430  <<tau.signalChargedHadrCands().size()<<","
431  <<tau.signalGammaCands().size()<<","
432  <<tau.signalPiZeroCandidates().size()<<","
433  <<tau.signalNeutrHadrCands().size()<<" "
434 
435  <<tau.isolationCands().size()<<","
436  <<tau.isolationChargedHadrCands().size()<<","
437  <<tau.isolationGammaCands().size()<<","
438  <<tau.isolationPiZeroCandidates().size()<<","
439  <<tau.isolationNeutrHadrCands().size();
440 
441  return out;
442 }
443 
444 }
float ecalStripSumEOverPLead_
Definition: PFTau.h:246
bool hasMuonReference() const
Definition: PFTau.cc:351
float maximumHCALPFClusterEt() const
Et of the highest Et HCAL PFCluster.
Definition: PFTau.cc:326
void setisolationPiZeroCandidates(std::vector< RecoTauPiZero >)
Definition: PFTau.cc:264
int Charge
electric charge type
Definition: Candidate.h:35
void setsignalChargedHadrCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:81
void setSignalTauChargedHadronCandidatesRefs(PFRecoTauChargedHadronRefVector)
Definition: PFTau.cc:292
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
Definition: RecoCandidate.h:69
RecoTauPiZeroRefVector signalPiZeroCandidatesRefs_
Definition: PFTau.h:294
void setMuonDecision(const bool &)
Definition: PFTau.cc:369
void setsignalNeutrHadrCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:83
const std::vector< reco::PFCandidatePtr > & isolationPFCands() const
Definition: PFTau.cc:200
void setelectronPreIDOutput(const float &)
Definition: PFTau.cc:347
float isolationPFGammaCandsEtSum() const
Definition: PFTau.cc:323
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:251
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientSignalPFCands_
Definition: PFTau.h:284
double eta() const final
momentum pseudorapidity
void setisolationNeutrHadrCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:92
float isolationPFChargedHadrCandsPtSum() const
Definition: PFTau.cc:320
void setelectronPreIDDecision(const bool &)
Definition: PFTau.cc:348
size_t size_type
Definition: Candidate.h:30
reco::CandidatePtr leadCand_
Definition: PFTau.h:264
edm::AtomicPtrCache< std::vector< reco::RecoTauPiZero > > signalPiZeroCandidates_
Definition: PFTau.h:301
float segComp() const
Definition: PFTau.cc:365
double vy() const override
y coordinate of vertex position
float hcalTotOverPLead() const
Definition: PFTau.cc:331
bool electronPreIDDecision_
Definition: PFTau.h:232
float maximumHCALPFClusterEt_
Definition: PFTau.h:239
const std::vector< reco::PFCandidatePtr > & isolationPFChargedHadrCands() const
Definition: PFTau.cc:207
void setIsolationTauChargedHadronCandidates(std::vector< PFRecoTauChargedHadron >)
Definition: PFTau.cc:307
reco::CandidatePtr leadChargedHadrCand_
Definition: PFTau.h:262
bool electronPreIDDecision() const
Definition: PFTau.cc:338
reco::JetBaseRef jetRef_
Definition: PFTau.h:260
float isolationPFChargedHadrCandsPtSum_
Definition: PFTau.h:237
float hcal3x3OverPLead() const
Definition: PFTau.cc:333
CandidatePtr sourceCandidatePtr(size_type i) const override
Definition: PFTau.cc:371
double pt() const final
transverse momentum
int charge() const final
electric charge
Definition: LeafCandidate.h:91
float emFraction() const
Definition: PFTau.cc:330
const std::vector< reco::CandidatePtr > & signalGammaCands() const
Gamma candidates in signal region.
Definition: PFTau.cc:84
void setsignalPiZeroCandidates(std::vector< RecoTauPiZero >)
Definition: PFTau.cc:241
void sethcal3x3OverPLead(const float &)
Definition: PFTau.cc:343
void setleadCand(const CandidatePtr &)
Definition: PFTau.cc:73
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientIsolationPFNeutrHadrCands_
Definition: PFTau.h:291
void setisolationPFGammaCandsEtSum(const float &)
Definition: PFTau.cc:324
void reset()
unsets the value and deletes the memory
reco::CandidatePtr leadNeutralCand_
Definition: PFTau.h:263
bool empty() const
Is the RefVector empty.
Definition: RefVector.h:104
edm::AtomicPtrCache< std::vector< reco::RecoTauPiZero > > isolationPiZeroCandidates_
Definition: PFTau.h:302
void setemFraction(const float &)
Definition: PFTau.cc:340
PFRecoTauChargedHadronRefVector isolationTauChargedHadronCandidatesRefs_
Definition: PFTau.h:298
bool isSet() const
void setisolationChargedHadrCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:90
edm::AtomicPtrCache< reco::PFCandidatePtr > leadPFCand_
Definition: PFTau.h:282
const std::vector< reco::CandidatePtr > & isolationGammaCands() const
Gamma candidates in isolation region.
Definition: PFTau.cc:93
virtual reco::TrackRef track() const
reference to a Track
std::vector< RecoTauPiZero > & signalPiZeroCandidatesRestricted()
Definition: PFTau.cc:236
bool muonDecision() const
Definition: PFTau.cc:366
void setleadChargedHadrCand(const CandidatePtr &)
Definition: PFTau.cc:71
void setleadNeutralCand(const CandidatePtr &)
Definition: PFTau.cc:72
hadronicDecayMode decayMode() const
Definition: PFTau.cc:315
float segComp_
Definition: PFTau.h:252
const std::vector< reco::CandidatePtr > & signalNeutrHadrCands() const
Neutral hadrons in signal region.
Definition: PFTau.cc:82
void dump(std::ostream &out=std::cout) const
prints information on this PFTau
Definition: PFTau.cc:382
void setisolationCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:88
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:71
float leadPFChargedHadrCandsignedSipt_
Definition: PFTau.h:235
const PFCandidatePtr leadPFCand() const
Definition: PFTau.cc:166
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientIsolationPFChargedHadrCands_
Definition: PFTau.h:290
std::vector< reco::CandidatePtr > selectedSignalGammaCands_
Definition: PFTau.h:271
PFRecoTauChargedHadronRef leadTauChargedHadronCandidate() const
Definition: PFTau.cc:269
float caloComp() const
Definition: PFTau.cc:364
const CandidatePtr & leadChargedHadrCand() const
Definition: PFTau.cc:67
const std::vector< RecoTauPiZero > & signalPiZeroCandidates() const
Retrieve the association of signal region gamma candidates into candidate PiZeros.
Definition: PFTau.cc:230
RecoTauPiZeroRefVector isolationPiZeroCandidatesRefs_
Definition: PFTau.h:295
void setDecayMode(const hadronicDecayMode &)
Definition: PFTau.cc:317
std::vector< reco::CandidatePtr > selectedSignalNeutrHadrCands_
Definition: PFTau.h:270
const std::vector< reco::PFCandidatePtr > & signalPFNeutrHadrCands() const
Definition: PFTau.cc:186
const std::vector< reco::PFCandidatePtr > & isolationPFGammaCands() const
Definition: PFTau.cc:221
const JetBaseRef & jetRef() const
Definition: PFTau.cc:58
void setCaloComp(const float &)
Definition: PFTau.cc:367
bool isNull() const
Checks for null.
Definition: Ptr.h:164
std::vector< reco::CandidatePtr > selectedIsolationGammaCands_
Definition: PFTau.h:277
void setisolationPFChargedHadrCandsPtSum(const float &)
Definition: PFTau.cc:321
void setleadPFChargedHadrCandsignedSipt(const float &)
Definition: PFTau.cc:76
float signalConeSize_
Definition: PFTau.h:258
edm::AtomicPtrCache< reco::PFCandidatePtr > leadPFNeutralCand_
Definition: PFTau.h:281
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
const std::vector< reco::PFCandidatePtr > & signalPFCands() const
Definition: PFTau.cc:172
PFTau * clone() const override
returns a clone of the Candidate object
Definition: PFTau.cc:55
hadronicDecayMode decayMode_
Definition: PFTau.h:254
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientSignalPFNeutrHadrCands_
Definition: PFTau.h:286
std::vector< reco::CandidatePtr > selectedSignalCands_
Definition: PFTau.h:268
float leadPFChargedHadrCandsignedSipt() const
Definition: PFTau.cc:75
bool isNull() const
Checks for null.
Definition: Ref.h:248
void setsignalCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:79
void setbremsRecoveryEOverPLead(const float &)
Definition: PFTau.cc:345
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:459
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:168
double vz() const override
z coordinate of vertex position
std::vector< reco::CandidatePtr > selectedIsolationCands_
Definition: PFTau.h:274
const std::vector< reco::PFCandidatePtr > & signalPFChargedHadrCands() const
Definition: PFTau.cc:179
bool muonDecision_
Definition: PFTau.h:231
const std::vector< reco::CandidatePtr > & isolationChargedHadrCands() const
Charged candidates in isolation region.
Definition: PFTau.cc:89
const std::vector< RecoTauPiZero > & isolationPiZeroCandidates() const
Retrieve the association of isolation region gamma candidates into candidate PiZeros.
Definition: PFTau.cc:249
const PFTauTagInfoRef & pfTauTagInfoRef() const
Definition: PFTau.cc:61
std::vector< PFRecoTauChargedHadron > & isolationTauChargedHadronCandidatesRestricted()
Definition: PFTau.cc:302
std::vector< RecoTauPiZero > & isolationPiZeroCandidatesRestricted()
Definition: PFTau.cc:255
void sethcalMaxOverPLead(const float &)
Definition: PFTau.cc:342
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
Definition: CandidateFwd.h:25
std::vector< reco::CandidatePtr > selectedIsolationNeutrHadrCands_
Definition: PFTau.h:276
edm::AtomicPtrCache< reco::PFCandidatePtr > leadPFChargedHadrCand_
Definition: PFTau.h:280
bool set(std::unique_ptr< T > iNewValue) const
edm::AtomicPtrCache< std::vector< reco::PFRecoTauChargedHadron > > signalTauChargedHadronCandidates_
Definition: PFTau.h:305
void setSegComp(const float &)
Definition: PFTau.cc:368
REF castTo() const
Definition: RefToBase.h:289
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientSignalPFChargedHadrCands_
Definition: PFTau.h:285
const CandidatePtr & leadCand() const
Definition: PFTau.cc:69
float bremsRecoveryEOverPLead() const
Definition: PFTau.cc:335
float bremsRecoveryEOverPLead_
Definition: PFTau.h:247
edm::Ref< PFRecoTauChargedHadronCollection > PFRecoTauChargedHadronRef
presistent reference to a PFRecoTauChargedHadron
float hcal3x3OverPLead_
Definition: PFTau.h:245
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
float hcalMaxOverPLead_
Definition: PFTau.h:244
const std::vector< reco::CandidatePtr > & signalChargedHadrCands() const
Charged hadrons in signal region.
Definition: PFTau.cc:80
std::vector< reco::CandidatePtr > selectedIsolationChargedHadrCands_
Definition: PFTau.h:275
PFTauTagInfoRef PFTauTagInfoRef_
Definition: PFTau.h:261
void setisolationGammaCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:94
void setsignalGammaCands(const std::vector< reco::CandidatePtr > &)
Definition: PFTau.cc:85
float electronPreIDOutput_
Definition: PFTau.h:248
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
fixed size matrix
hadronicDecayMode
Definition: PFTau.h:36
void setjetRef(const JetBaseRef &)
Definition: PFTau.cc:59
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:55
void setmaximumHCALPFClusterEt(const float &)
Definition: PFTau.cc:327
void setSignalTauChargedHadronCandidates(std::vector< PFRecoTauChargedHadron >)
Definition: PFTau.cc:288
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientIsolationPFCands_
Definition: PFTau.h:289
void setecalStripSumEOverPLead(const float &)
Definition: PFTau.cc:344
float bendCorrMass_
Definition: PFTau.h:256
edm::AtomicPtrCache< std::vector< reco::PFRecoTauChargedHadron > > isolationTauChargedHadronCandidates_
Definition: PFTau.h:306
PFRecoTauChargedHadronRefVector signalTauChargedHadronCandidatesRefs_
Definition: PFTau.h:297
const std::vector< reco::CandidatePtr > & isolationNeutrHadrCands() const
Definition: PFTau.cc:91
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientIsolationPFGammaCands_
Definition: PFTau.h:292
const std::vector< PFRecoTauChargedHadron > & signalTauChargedHadronCandidates() const
Retrieve the association of signal region PF candidates into candidate PFRecoTauChargedHadrons.
Definition: PFTau.cc:277
const std::vector< reco::CandidatePtr > & isolationCands() const
Candidates in isolation region.
Definition: PFTau.cc:87
void setIsolationPiZeroCandidatesRefs(RecoTauPiZeroRefVector)
Definition: PFTau.cc:260
void sethcalTotOverPLead(const float &)
Definition: PFTau.cc:341
const PFCandidatePtr leadPFNeutralCand() const
Definition: PFTau.cc:160
std::vector< PFRecoTauChargedHadron > & signalTauChargedHadronCandidatesRestricted()
Definition: PFTau.cc:283
const PFCandidatePtr leadPFChargedHadrCand() const
Getters for different PFCandidates for PFTaus made from PFCandidates.
Definition: PFTau.cc:154
std::vector< reco::CandidatePtr > selectedSignalChargedHadrCands_
Definition: PFTau.h:269
const std::vector< reco::CandidatePtr > & signalCands() const
Candidates in signal region.
Definition: PFTau.cc:78
float emFraction_
Definition: PFTau.h:242
edm::AtomicPtrCache< std::vector< reco::PFCandidatePtr > > selectedTransientSignalPFGammaCands_
Definition: PFTau.h:287
const std::vector< PFRecoTauChargedHadron > & isolationTauChargedHadronCandidates() const
Retrieve the association of isolation region PF candidates into candidate PFRecoTauChargedHadron.
Definition: PFTau.cc:296
void setelectronPreIDTrack(const reco::TrackRef &)
Definition: PFTau.cc:346
long double T
float hcalMaxOverPLead() const
Definition: PFTau.cc:332
void setIsolationTauChargedHadronCandidatesRefs(PFRecoTauChargedHadronRefVector)
Definition: PFTau.cc:311
float electronPreIDOutput() const
Definition: PFTau.cc:337
reco::TrackRef electronPreIDTrack() const
Definition: PFTau.cc:336
edm::Ptr< PFCandidate > PFCandidatePtr
persistent Ptr to a PFCandidate
double phi() const final
momentum azimuthal angle
reco::TrackRef electronPreIDTrack_
Definition: PFTau.h:265
PFTau()
Definition: PFTau.cc:8
bool overlap(const Candidate &) const override
check overlap with another candidate
Definition: PFTau.cc:377
def move(src, dest)
Definition: eostools.py:511
float isolationPFGammaCandsEtSum_
Definition: PFTau.h:238
float caloComp_
Definition: PFTau.h:251
double vx() const override
x coordinate of vertex position
float ecalStripSumEOverPLead() const
Definition: PFTau.cc:334
double mass() const final
mass
const CandidatePtr & leadNeutralCand() const
Definition: PFTau.cc:68
const std::vector< reco::PFCandidatePtr > & isolationPFNeutrHadrCands() const
Definition: PFTau.cc:214
const std::vector< reco::PFCandidatePtr > & signalPFGammaCands() const
Definition: PFTau.cc:193
void setpfTauTagInfoRef(const PFTauTagInfoRef)
Definition: PFTau.cc:65
void setSignalPiZeroCandidatesRefs(RecoTauPiZeroRefVector)
Definition: PFTau.cc:245
float hcalTotOverPLead_
Definition: PFTau.h:243