CMS 3D CMS Logo

HPSPFTau.cc
Go to the documentation of this file.
3 
4 // default constructor
6  : tauType_(kUndefined),
7  sumChargedIso_(0.),
8  sumNeutralIso_(0.),
9  sumCombinedIso_(0.),
10  sumChargedIsoPileup_(0.),
11  rhoCorr_(0.),
12  passTightIso_(false),
13  passMediumIso_(false),
14  passLooseIso_(false),
15  passVLooseIso_(false),
16  passTightRelIso_(false),
17  passMediumRelIso_(false),
18  passLooseRelIso_(false),
19  passVLooseRelIso_(false) {}
20 
21 // destructor
23 
24 // print to stream
25 ostream& operator<<(ostream& os, const l1t::HPSPFTau& l1PFTau) {
26  os << "pT = " << l1PFTau.pt() << ", eta = " << l1PFTau.eta() << ", phi = " << l1PFTau.phi()
27  << " (type = " << l1PFTau.tauType() << ")" << std::endl;
28  os << "lead. ChargedPFCand:" << std::endl;
29  if (l1PFTau.leadChargedPFCand().isNonnull()) {
30  printPFCand(os, *l1PFTau.leadChargedPFCand(), l1PFTau.primaryVertex());
31  } else {
32  os << " N/A" << std::endl;
33  }
34  os << "seed:";
35  if (l1PFTau.isChargedPFCandSeeded()) {
36  os << " chargedPFCand";
37  } else if (l1PFTau.isPFJetSeeded()) {
38  os << " PFJet";
39  } else {
40  cms::Exception ex("InconsistentTau");
41  ex.addContext("Calling HPSPFTau::operator <<");
42  ex.addAdditionalInfo("This tau is not seed by either a chargedPFCand or a PFJet!");
43  throw ex;
44  }
45  os << std::endl;
46  os << "signalPFCands:" << std::endl;
47  for (const auto& l1PFCand : l1PFTau.signalAllL1PFCandidates()) {
48  printPFCand(os, *l1PFCand, l1PFTau.primaryVertex());
49  }
50  os << "stripPFCands:" << std::endl;
51  for (const auto& l1PFCand : l1PFTau.stripAllL1PFCandidates()) {
52  printPFCand(os, *l1PFCand, l1PFTau.primaryVertex());
53  }
54  os << "strip pT = " << l1PFTau.strip_p4().pt() << std::endl;
55  os << "isolationPFCands:" << std::endl;
56  for (const auto& l1PFCand : l1PFTau.isoAllL1PFCandidates()) {
57  printPFCand(os, *l1PFCand, l1PFTau.primaryVertex());
58  }
59  os << "isolation pT-sum: charged = " << l1PFTau.sumChargedIso() << ", neutral = " << l1PFTau.sumNeutralIso()
60  << " (charged from pileup = " << l1PFTau.sumChargedIsoPileup() << ")" << std::endl;
61  return os;
62 }
63 
64 void l1t::printPFCand(ostream& os, const l1t::PFCandidate& l1PFCand, const l1t::TkPrimaryVertexRef& primaryVertex) {
65  float primaryVertex_z = (primaryVertex.isNonnull()) ? primaryVertex->zvertex() : 0.;
66  l1t::printPFCand(os, l1PFCand, primaryVertex_z);
67 }
68 
69 void l1t::printPFCand(ostream& os, const l1t::PFCandidate& l1PFCand, float primaryVertex_z) {
70  std::string type_string;
71  if (l1PFCand.id() == l1t::PFCandidate::ChargedHadron)
72  type_string = "PFChargedHadron";
73  else if (l1PFCand.id() == l1t::PFCandidate::Electron)
74  type_string = "PFElectron";
75  else if (l1PFCand.id() == l1t::PFCandidate::NeutralHadron)
76  type_string = "PFNeutralHadron";
77  else if (l1PFCand.id() == l1t::PFCandidate::Photon)
78  type_string = "PFPhoton";
79  else if (l1PFCand.id() == l1t::PFCandidate::Muon)
80  type_string = "PFMuon";
81  else
82  type_string = "N/A";
83  os << " " << type_string << " with pT = " << l1PFCand.pt() << ", eta = " << l1PFCand.eta()
84  << ", phi = " << l1PFCand.phi() << ","
85  << " mass = " << l1PFCand.mass() << ", charge = " << l1PFCand.charge();
86  if (l1PFCand.charge() != 0 && primaryVertex_z != 0.) {
87  os << " (dz = " << std::fabs(l1PFCand.pfTrack()->vertex().z() - primaryVertex_z) << ")";
88  }
89  os << std::endl;
90 }
l1t::PFCandidate::Photon
Definition: PFCandidate.h:15
l1t::HPSPFTau::strip_p4
const reco::Particle::LorentzVector & strip_p4() const
Definition: HPSPFTau.h:60
l1t::HPSPFTau::sumNeutralIso
float sumNeutralIso() const
Definition: HPSPFTau.h:67
l1t::PFCandidate::pfTrack
const PFTrackRef & pfTrack() const
Definition: PFCandidate.h:36
funct::false
false
Definition: Factorize.h:34
cms::Exception::addContext
void addContext(std::string const &context)
Definition: Exception.cc:165
l1t::HPSPFTau::stripAllL1PFCandidates
const l1t::PFCandidateRefVector & stripAllL1PFCandidates() const
Definition: HPSPFTau.h:37
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
l1t::HPSPFTau::isPFJetSeeded
bool isPFJetSeeded() const
Definition: HPSPFTau.h:24
l1t::PFCandidate::Electron
Definition: PFCandidate.h:15
edm::Ref< TkPrimaryVertexCollection >
BeamMonitor_cff.primaryVertex
primaryVertex
hltOfflineBeamSpot for HLTMON
Definition: BeamMonitor_cff.py:7
l1t::printPFCand
void printPFCand(ostream &os, const l1t::PFCandidate &l1PFCand, const l1t::TkPrimaryVertexRef &primaryVertex)
Definition: HPSPFTau.cc:64
l1t::HPSPFTau::sumChargedIso
float sumChargedIso() const
Definition: HPSPFTau.h:66
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
l1t::HPSPFTau::isoAllL1PFCandidates
const l1t::PFCandidateRefVector & isoAllL1PFCandidates() const
Definition: HPSPFTau.h:41
l1t::HPSPFTau::tauType
Kind tauType() const
Definition: HPSPFTau.h:58
reco::LeafCandidate::mass
double mass() const final
mass
Definition: LeafCandidate.h:131
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
cms::Exception::addAdditionalInfo
void addAdditionalInfo(std::string const &info)
Definition: Exception.cc:169
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
l1t::HPSPFTau::signalAllL1PFCandidates
const l1t::PFCandidateRefVector & signalAllL1PFCandidates() const
Definition: HPSPFTau.h:30
l1t::PFCandidate::ChargedHadron
Definition: PFCandidate.h:15
l1t::HPSPFTau
Definition: HPSPFTau.h:14
l1t::HPSPFTau::sumChargedIsoPileup
float sumChargedIsoPileup() const
Definition: HPSPFTau.h:69
reco::LeafCandidate::charge
int charge() const final
electric charge
Definition: LeafCandidate.h:106
l1t::HPSPFTau::primaryVertex
const l1t::TkPrimaryVertexRef & primaryVertex() const
Definition: HPSPFTau.h:55
l1t::HPSPFTau::isChargedPFCandSeeded
bool isChargedPFCandSeeded() const
accessor functions for reco level quantities
Definition: HPSPFTau.h:23
l1t::PFCandidate::Muon
Definition: PFCandidate.h:15
HPSPFTau.h
l1t::PFCandidate::id
ParticleType id() const
Definition: PFCandidate.h:34
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
l1t::HPSPFTau::HPSPFTau
HPSPFTau()
default constructor
Definition: HPSPFTau.cc:5
l1t::HPSPFTau::leadChargedPFCand
const l1t::PFCandidateRef & leadChargedPFCand() const
Definition: HPSPFTau.h:28
Exception.h
cms::Exception
Definition: Exception.h:70
l1t::PFCandidate
Definition: PFCandidate.h:12
l1t::PFCandidate::NeutralHadron
Definition: PFCandidate.h:15
l1t::HPSPFTau::~HPSPFTau
~HPSPFTau() override
destructor
Definition: HPSPFTau.cc:22
l1t::operator<<
std::ostream & operator<<(std::ostream &os, const l1t::CaloParamsHelper &p)
Definition: CaloParamsHelper.cc:16