CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
PuppiPhoton Class Reference

#include <PuppiPhoton.h>

Inheritance diagram for PuppiPhoton:
edm::stream::EDProducer<>

Public Types

typedef edm::View< reco::CandidateCandidateView
 
typedef math::XYZTLorentzVector LorentzVector
 
typedef std::vector< LorentzVectorLorentzVectorCollection
 
typedef std::vector< reco::PFCandidatePFOutputCollection
 
typedef edm::View< reco::PFCandidatePFView
 
- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Public Member Functions

 PuppiPhoton (const edm::ParameterSet &)
 
 ~PuppiPhoton () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

bool matchPFCandidate (const reco::Candidate *iPF, const reco::Candidate *iPho)
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::unique_ptr< PFOutputCollectioncorrCandidates_
 
std::vector< double > dRMatch_
 
double eta_
 
std::vector< int32_t > pdgIds_
 
double pt_
 
edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > reco2pf_
 
bool runOnMiniAOD_
 
edm::EDGetTokenT< CandidateViewtokenPFCandidates_
 
edm::EDGetTokenT< CandidateViewtokenPhotonCandidates_
 
edm::EDGetTokenT< edm::ValueMap< bool > > tokenPhotonId_
 
edm::EDGetTokenT< CandidateViewtokenPuppiCandidates_
 
edm::EDGetTokenT< edm::ValueMap< float > > tokenWeights_
 
bool usePFphotons_
 
bool usePFRef_
 
bool usePhotonId_
 
bool useValueMap_
 
double weight_
 

Detailed Description

Definition at line 20 of file PuppiPhoton.h.

Member Typedef Documentation

◆ CandidateView

Definition at line 28 of file PuppiPhoton.h.

◆ LorentzVector

Definition at line 26 of file PuppiPhoton.h.

◆ LorentzVectorCollection

Definition at line 27 of file PuppiPhoton.h.

◆ PFOutputCollection

Definition at line 29 of file PuppiPhoton.h.

◆ PFView

Definition at line 30 of file PuppiPhoton.h.

Constructor & Destructor Documentation

◆ PuppiPhoton()

PuppiPhoton::PuppiPhoton ( const edm::ParameterSet iConfig)
explicit

Definition at line 27 of file PuppiPhoton.cc.

27  {
28  tokenPFCandidates_ = consumes<CandidateView>(iConfig.getParameter<edm::InputTag>("candName"));
29  tokenPuppiCandidates_ = consumes<CandidateView>(iConfig.getParameter<edm::InputTag>("puppiCandName"));
30  usePFphotons_ = iConfig.getParameter<bool>("usePFphotons");
31  if (!usePFphotons_)
32  tokenPhotonCandidates_ = consumes<CandidateView>(iConfig.getParameter<edm::InputTag>("photonName"));
33  usePhotonId_ = !(iConfig.getParameter<edm::InputTag>("photonId")).label().empty();
34  if (usePhotonId_)
35  tokenPhotonId_ = consumes<edm::ValueMap<bool>>(iConfig.getParameter<edm::InputTag>("photonId"));
36  runOnMiniAOD_ = iConfig.getParameter<bool>("runOnMiniAOD");
37  if (!runOnMiniAOD_)
38  reco2pf_ =
39  consumes<edm::ValueMap<std::vector<reco::PFCandidateRef>>>(iConfig.getParameter<edm::InputTag>("recoToPFMap"));
40  useValueMap_ = iConfig.getParameter<bool>("useValueMap");
41  if (useValueMap_)
42  tokenWeights_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("weightsName"));
43 
44  pt_ = iConfig.getParameter<double>("pt");
45  eta_ = iConfig.getParameter<double>("eta");
46  dRMatch_ = iConfig.getParameter<std::vector<double>>("dRMatch");
47  pdgIds_ = iConfig.getParameter<std::vector<int32_t>>("pdgids");
48  usePFRef_ = iConfig.getParameter<bool>("useRefs");
49  weight_ = iConfig.getParameter<double>("weight");
50  produces<PFOutputCollection>();
51  produces<edm::ValueMap<reco::CandidatePtr>>();
52 }

References dRMatch_, eta_, edm::ParameterSet::getParameter(), pdgIds_, pt_, reco2pf_, runOnMiniAOD_, tokenPFCandidates_, tokenPhotonCandidates_, tokenPhotonId_, tokenPuppiCandidates_, tokenWeights_, usePFphotons_, usePFRef_, usePhotonId_, useValueMap_, and weight_.

◆ ~PuppiPhoton()

PuppiPhoton::~PuppiPhoton ( )
override

Definition at line 54 of file PuppiPhoton.cc.

54 {}

Member Function Documentation

◆ fillDescriptions()

void PuppiPhoton::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 236 of file PuppiPhoton.cc.

236  {
237  //The following says we do not know what parameters are allowed so do no validation
238  // Please change this to state exactly what you do use, even if it is no parameters
240  desc.setUnknown();
241  descriptions.addDefault(desc);
242 }

References edm::ConfigurationDescriptions::addDefault(), and edm::ParameterSetDescription::setUnknown().

◆ matchPFCandidate()

bool PuppiPhoton::matchPFCandidate ( const reco::Candidate iPF,
const reco::Candidate iPho 
)
private

Definition at line 225 of file PuppiPhoton.cc.

225  {
226  if (iPF->pdgId() != iPho->pdgId())
227  return false;
228  double lDR = deltaR(iPF->eta(), iPF->phi(), iPho->eta(), iPho->phi());
229  for (unsigned int i0 = 0; i0 < pdgIds_.size(); i0++) {
230  if (std::abs(iPF->pdgId()) == pdgIds_[i0] && lDR < dRMatch_[i0])
231  return true;
232  }
233  return false;
234 }

References funct::abs(), PbPb_ZMuSkimMuonDPG_cff::deltaR, dRMatch_, reco::Candidate::eta(), reco::Candidate::pdgId(), pdgIds_, and reco::Candidate::phi().

Referenced by produce().

◆ produce()

void PuppiPhoton::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 56 of file PuppiPhoton.cc.

56  {
57  int iC = -1;
58  std::vector<const reco::Candidate *> phoCands;
59  std::vector<uint16_t> phoIndx;
60 
62  if (!runOnMiniAOD_)
63  iEvent.getByToken(reco2pf_, reco2pf);
64 
65  // Get PFCandidate Collection
66  edm::Handle<CandidateView> hPFProduct;
67  iEvent.getByToken(tokenPFCandidates_, hPFProduct);
68  const CandidateView *pfCol = hPFProduct.product();
69 
70  edm::Handle<CandidateView> hPuppiProduct;
71  iEvent.getByToken(tokenPuppiCandidates_, hPuppiProduct);
72  const CandidateView *pupCol = hPuppiProduct.product();
73  if (usePFphotons_) {
74  for (const auto &pho : *pfCol) {
75  iC++;
76  if (pho.pt() < pt_)
77  continue;
78  if (std::abs(pho.pdgId()) != 22)
79  continue;
80  if (fabs(pho.eta()) < eta_) {
81  phoIndx.push_back(iC);
82  phoCands.push_back(&pho);
83  }
84  }
85  } else {
86  edm::Handle<CandidateView> hPhoProduct;
87  iEvent.getByToken(tokenPhotonCandidates_, hPhoProduct);
88  const CandidateView *phoCol = hPhoProduct.product();
89 
91  if (usePhotonId_)
92  iEvent.getByToken(tokenPhotonId_, photonId);
93 
94  for (CandidateView::const_iterator itPho = phoCol->begin(); itPho != phoCol->end(); itPho++) {
95  iC++;
96  bool passObject = false;
97  if (itPho->isPhoton() && usePhotonId_)
98  passObject = (*photonId)[phoCol->ptrAt(iC)];
99  if (itPho->pt() < pt_)
100  continue;
101  if (!passObject && usePhotonId_)
102  continue;
103  if (runOnMiniAOD_) {
104  const pat::Photon *pPho = dynamic_cast<const pat::Photon *>(&(*itPho));
105  if (pPho != nullptr) {
107  if (fabs(ref->eta()) < eta_) {
108  phoIndx.push_back(ref.key());
109  phoCands.push_back(&(*(pfCol->ptrAt(ref.key()))));
110  }
111  }
112  continue;
113  }
114  const pat::Electron *pElectron = dynamic_cast<const pat::Electron *>(&(*itPho));
115  if (pElectron != nullptr) {
117  if (fabs(ref->eta()) < eta_) {
118  phoIndx.push_back(ref.key());
119  phoCands.push_back(&(*(pfCol->ptrAt(ref.key()))));
120  }
121  }
122  } else {
123  for (const edm::Ref<std::vector<reco::PFCandidate>> &ref : (*reco2pf)[phoCol->ptrAt(iC)]) {
124  if (fabs(ref->eta()) < eta_) {
125  phoIndx.push_back(ref.key());
126  phoCands.push_back(&(*(pfCol->ptrAt(ref.key()))));
127  }
128  }
129  }
130  }
131  }
132  //Get Weights
134  if (useValueMap_)
135  iEvent.getByToken(tokenWeights_, pupWeights);
136  std::unique_ptr<edm::ValueMap<LorentzVector>> p4PupOut(new edm::ValueMap<LorentzVector>());
137  LorentzVectorCollection puppiP4s;
138  std::vector<reco::CandidatePtr> values(hPFProduct->size());
139  int iPF = 0;
140  std::vector<float> lWeights;
141  static const reco::PFCandidate dummySinceTranslateIsNotStatic;
143  std::set<int> foundPhoIndex;
144  for (CandidateView::const_iterator itPF = pupCol->begin(); itPF != pupCol->end(); itPF++) {
145  auto id = dummySinceTranslateIsNotStatic.translatePdgIdToType(itPF->pdgId());
146  const reco::PFCandidate *pPF = dynamic_cast<const reco::PFCandidate *>(&(*itPF));
147  reco::PFCandidate pCand(pPF ? *pPF : reco::PFCandidate(itPF->charge(), itPF->p4(), id));
148  LorentzVector pVec = itPF->p4();
149  float pWeight = 1.;
150  if (useValueMap_)
151  pWeight = (*pupWeights)[pupCol->ptrAt(iPF)];
152  if (!usePFRef_) {
153  int iPho = -1;
154  for (std::vector<const reco::Candidate *>::iterator itPho = phoCands.begin(); itPho != phoCands.end(); itPho++) {
155  iPho++;
156  if ((!matchPFCandidate(&(*itPF), *itPho)) || (foundPhoIndex.count(iPho) != 0))
157  continue;
158  pWeight = weight_;
159  if (!useValueMap_ && itPF->pt() != 0)
160  pWeight = pWeight * (phoCands[iPho]->pt() / itPF->pt());
161  if (!useValueMap_ && itPF->pt() == 0)
162  pVec.SetPxPyPzE(phoCands[iPho]->px() * pWeight,
163  phoCands[iPho]->py() * pWeight,
164  phoCands[iPho]->pz() * pWeight,
165  phoCands[iPho]->energy() * pWeight);
166  foundPhoIndex.insert(iPho);
167  }
168  } else {
169  int iPho = -1;
170  for (std::vector<uint16_t>::const_iterator itPho = phoIndx.begin(); itPho != phoIndx.end(); itPho++) {
171  iPho++;
172  if (pupCol->refAt(iPF).key() != *itPho)
173  continue;
174  pWeight = weight_;
175  if (!useValueMap_ && itPF->pt() != 0)
176  pWeight = pWeight * (phoCands[iPho]->pt() / itPF->pt());
177  if (!useValueMap_ && itPF->pt() == 0)
178  pVec.SetPxPyPzE(phoCands[iPho]->px() * pWeight,
179  phoCands[iPho]->py() * pWeight,
180  phoCands[iPho]->pz() * pWeight,
181  phoCands[iPho]->energy() * pWeight);
182  foundPhoIndex.insert(iPho);
183  }
184  }
185  if (itPF->pt() != 0)
186  pVec.SetPxPyPzE(itPF->px() * pWeight, itPF->py() * pWeight, itPF->pz() * pWeight, itPF->energy() * pWeight);
187 
188  lWeights.push_back(pWeight);
189  pCand.setP4(pVec);
190  puppiP4s.push_back(pVec);
191  pCand.setSourceCandidatePtr(itPF->sourceCandidatePtr(0));
192  corrCandidates_->push_back(pCand);
193  iPF++;
194  }
195  //Add the missing pfcandidates
196  for (unsigned int iPho = 0; iPho < phoCands.size(); iPho++) {
197  if (foundPhoIndex.count(iPho) != 0)
198  continue;
199  auto id = dummySinceTranslateIsNotStatic.translatePdgIdToType(phoCands[iPho]->pdgId());
200  reco::PFCandidate pCand(reco::PFCandidate(phoCands[iPho]->charge(), phoCands[iPho]->p4(), id));
201  pCand.setSourceCandidatePtr(phoCands[iPho]->sourceCandidatePtr(0));
202  LorentzVector pVec = phoCands[iPho]->p4();
203  pVec.SetPxPyPzE(phoCands[iPho]->px() * weight_,
204  phoCands[iPho]->py() * weight_,
205  phoCands[iPho]->pz() * weight_,
206  phoCands[iPho]->energy() * weight_);
207  pCand.setP4(pVec);
208  lWeights.push_back(weight_);
209  puppiP4s.push_back(pVec);
210  corrCandidates_->push_back(pCand);
211  }
212  //Fill it into the event
214  for (unsigned int ic = 0, nc = pupCol->size(); ic < nc; ++ic) {
215  reco::CandidatePtr pkref(oh, ic);
216  values[ic] = pkref;
217  }
218  std::unique_ptr<edm::ValueMap<reco::CandidatePtr>> pfMap_p(new edm::ValueMap<reco::CandidatePtr>());
220  filler.insert(hPFProduct, values.begin(), values.end());
221  filler.fill();
222  iEvent.put(std::move(pfMap_p));
223 }

References funct::abs(), pat::Electron::associatedPackedPFCandidates(), pat::Photon::associatedPackedPFCandidates(), edm::View< T >::begin(), ALCARECOTkAlJpsiMuMu_cff::charge, corrCandidates_, edm::View< T >::end(), HCALHighEnergyHPDFilter_cfi::energy, eta_, trigObjTnPSource_cfi::filler, triggerObjects_cff::id, iEvent, matchPFCandidate(), eostools::move(), p4, EgammaValidation_cff::pdgId, edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, pt_, edm::View< T >::ptrAt(), multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, reco2pf_, edm::View< T >::refAt(), runOnMiniAOD_, reco::LeafCandidate::setP4(), reco::PFCandidate::setSourceCandidatePtr(), edm::View< T >::size(), tokenPFCandidates_, tokenPhotonCandidates_, tokenPhotonId_, tokenPuppiCandidates_, tokenWeights_, reco::PFCandidate::translatePdgIdToType(), usePFphotons_, usePFRef_, usePhotonId_, useValueMap_, contentValuesCheck::values, and weight_.

Member Data Documentation

◆ corrCandidates_

std::unique_ptr<PFOutputCollection> PuppiPhoton::corrCandidates_
private

Definition at line 49 of file PuppiPhoton.h.

Referenced by produce().

◆ dRMatch_

std::vector<double> PuppiPhoton::dRMatch_
private

Definition at line 47 of file PuppiPhoton.h.

Referenced by matchPFCandidate(), and PuppiPhoton().

◆ eta_

double PuppiPhoton::eta_
private

Definition at line 42 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ pdgIds_

std::vector<int32_t> PuppiPhoton::pdgIds_
private

Definition at line 48 of file PuppiPhoton.h.

Referenced by matchPFCandidate(), and PuppiPhoton().

◆ pt_

double PuppiPhoton::pt_
private

Definition at line 41 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ reco2pf_

edm::EDGetTokenT<edm::ValueMap<std::vector<reco::PFCandidateRef> > > PuppiPhoton::reco2pf_
private

Definition at line 38 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ runOnMiniAOD_

bool PuppiPhoton::runOnMiniAOD_
private

Definition at line 45 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ tokenPFCandidates_

edm::EDGetTokenT<CandidateView> PuppiPhoton::tokenPFCandidates_
private

Definition at line 35 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ tokenPhotonCandidates_

edm::EDGetTokenT<CandidateView> PuppiPhoton::tokenPhotonCandidates_
private

Definition at line 37 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ tokenPhotonId_

edm::EDGetTokenT<edm::ValueMap<bool> > PuppiPhoton::tokenPhotonId_
private

Definition at line 40 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ tokenPuppiCandidates_

edm::EDGetTokenT<CandidateView> PuppiPhoton::tokenPuppiCandidates_
private

Definition at line 36 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ tokenWeights_

edm::EDGetTokenT<edm::ValueMap<float> > PuppiPhoton::tokenWeights_
private

Definition at line 39 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ usePFphotons_

bool PuppiPhoton::usePFphotons_
private

Definition at line 44 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ usePFRef_

bool PuppiPhoton::usePFRef_
private

Definition at line 43 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ usePhotonId_

bool PuppiPhoton::usePhotonId_
private

Definition at line 46 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ useValueMap_

bool PuppiPhoton::useValueMap_
private

Definition at line 51 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

◆ weight_

double PuppiPhoton::weight_
private

Definition at line 50 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

PuppiPhoton::CandidateView
edm::View< reco::Candidate > CandidateView
Definition: PuppiPhoton.h:28
edm::Handle::product
T const * product() const
Definition: Handle.h:70
PuppiPhoton::pt_
double pt_
Definition: PuppiPhoton.h:41
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
PuppiPhoton::pdgIds_
std::vector< int32_t > pdgIds_
Definition: PuppiPhoton.h:48
reco::Candidate::eta
virtual double eta() const =0
momentum pseudorapidity
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
PuppiPhoton::useValueMap_
bool useValueMap_
Definition: PuppiPhoton.h:51
pat::Photon
Analysis-level Photon class.
Definition: Photon.h:46
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
PuppiPhoton::usePFRef_
bool usePFRef_
Definition: PuppiPhoton.h:43
PuppiPhoton::usePFphotons_
bool usePFphotons_
Definition: PuppiPhoton.h:44
pat::Electron::associatedPackedPFCandidates
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
edm::Handle
Definition: AssociativeIterator.h:50
edm::Ref< pat::PackedCandidateCollection >
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
PuppiPhoton::tokenPFCandidates_
edm::EDGetTokenT< CandidateView > tokenPFCandidates_
Definition: PuppiPhoton.h:35
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
PuppiPhoton::weight_
double weight_
Definition: PuppiPhoton.h:50
pat::Photon::associatedPackedPFCandidates
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
edm::View::size
size_type size() const
PuppiPhoton::tokenPhotonId_
edm::EDGetTokenT< edm::ValueMap< bool > > tokenPhotonId_
Definition: PuppiPhoton.h:40
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
PuppiPhoton::tokenWeights_
edm::EDGetTokenT< edm::ValueMap< float > > tokenWeights_
Definition: PuppiPhoton.h:39
iEvent
int iEvent
Definition: GenABIO.cc:224
p4
double p4[4]
Definition: TauolaWrapper.h:92
LorentzVectorCollection
std::vector< LorentzVector > LorentzVectorCollection
Definition: HLTTauMCProducer.h:31
PuppiPhoton::matchPFCandidate
bool matchPFCandidate(const reco::Candidate *iPF, const reco::Candidate *iPho)
Definition: PuppiPhoton.cc:225
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
EgammaValidation_cff.pdgId
pdgId
Definition: EgammaValidation_cff.py:118
reco::Candidate::pdgId
virtual int pdgId() const =0
PDG identifier.
edm::Ptr< Candidate >
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::OrphanHandle
Definition: EDProductfwd.h:39
PuppiPhoton::usePhotonId_
bool usePhotonId_
Definition: PuppiPhoton.h:46
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
PuppiPhoton::PFOutputCollection
std::vector< reco::PFCandidate > PFOutputCollection
Definition: PuppiPhoton.h:29
LorentzVector
math::XYZTLorentzVector LorentzVector
Definition: HLTMuonMatchAndPlot.h:49
edm::ValueMap
Definition: ValueMap.h:107
PuppiPhoton::corrCandidates_
std::unique_ptr< PFOutputCollection > corrCandidates_
Definition: PuppiPhoton.h:49
PuppiPhoton::eta_
double eta_
Definition: PuppiPhoton.h:42
PuppiPhoton::reco2pf_
edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > reco2pf_
Definition: PuppiPhoton.h:38
PuppiPhoton::tokenPhotonCandidates_
edm::EDGetTokenT< CandidateView > tokenPhotonCandidates_
Definition: PuppiPhoton.h:37
reco::PFCandidate::translatePdgIdToType
ParticleType translatePdgIdToType(int pdgid) const
Definition: PFCandidate.cc:209
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
edm::helper::Filler
Definition: ValueMap.h:22
pat::Electron
Analysis-level electron class.
Definition: Electron.h:51
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
PuppiPhoton::tokenPuppiCandidates_
edm::EDGetTokenT< CandidateView > tokenPuppiCandidates_
Definition: PuppiPhoton.h:36
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
reco::Candidate::phi
virtual double phi() const =0
momentum azimuthal angle
PuppiPhoton::dRMatch_
std::vector< double > dRMatch_
Definition: PuppiPhoton.h:47
edm::InputTag
Definition: InputTag.h:15
PuppiPhoton::runOnMiniAOD_
bool runOnMiniAOD_
Definition: PuppiPhoton.h:45