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<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Public Member Functions

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

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 submitPVResolutionJobs::desc.

◆ 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;
142  corrCandidates_ = std::make_unique<PFOutputCollection>();
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
EgammaValidation_cff.pdgId
pdgId
Definition: EgammaValidation_cff.py:117
reco::Candidate::pdgId
virtual int pdgId() const =0
PDG identifier.
edm::Ptr< Candidate >
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
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: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::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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:41
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