CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef edm::View
< reco::Candidate
CandidateView
 
typedef math::XYZTLorentzVector LorentzVector
 
typedef std::vector
< LorentzVector
LorentzVectorCollection
 
typedef std::vector
< reco::PFCandidate
PFOutputCollection
 
typedef edm::View
< reco::PFCandidate
PFView
 
- 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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 PuppiPhoton (const edm::ParameterSet &)
 
 ~PuppiPhoton ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

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

Private Attributes

std::auto_ptr< PFOutputCollectioncorrCandidates_
 
std::vector< double > dRMatch_
 
double eta_
 
std::vector< int32_t > pdgIds_
 
double pt_
 
edm::EDGetTokenT< CandidateViewtokenPFCandidates_
 
edm::EDGetTokenT< CandidateViewtokenPhotonCandidates_
 
edm::EDGetTokenT
< edm::ValueMap< bool > > 
tokenPhotonId_
 
edm::EDGetTokenT< CandidateViewtokenPuppiCandidates_
 
edm::EDGetTokenT
< edm::ValueMap< float > > 
tokenWeights_
 
bool usePFRef_
 
bool usePhotonId_
 
bool useValueMap_
 
double weight_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 18 of file PuppiPhoton.h.

Member Typedef Documentation

Definition at line 27 of file PuppiPhoton.h.

Definition at line 25 of file PuppiPhoton.h.

Definition at line 26 of file PuppiPhoton.h.

Definition at line 28 of file PuppiPhoton.h.

Definition at line 29 of file PuppiPhoton.h.

Constructor & Destructor Documentation

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

Definition at line 30 of file PuppiPhoton.cc.

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

30  {
31  tokenPFCandidates_ = consumes<CandidateView>(iConfig.getParameter<edm::InputTag>("candName"));
32  tokenPuppiCandidates_ = consumes<CandidateView>(iConfig.getParameter<edm::InputTag>("puppiCandName"));
33  tokenPhotonCandidates_ = consumes<CandidateView>(iConfig.getParameter<edm::InputTag>("photonName"));
34  tokenPhotonId_ = consumes<edm::ValueMap<bool> >(iConfig.getParameter<edm::InputTag>("photonId"));
35  pt_ = iConfig.getParameter<double>("pt");
36  eta_ = iConfig.getParameter<double>("eta");
37  dRMatch_ = iConfig.getParameter<std::vector<double> > ("dRMatch");
38  pdgIds_ = iConfig.getParameter<std::vector<int32_t> >("pdgids");
39  usePFRef_ = iConfig.getParameter<bool>("useRefs");
40  weight_ = iConfig.getParameter<double>("weight");
41  useValueMap_ = iConfig.getParameter<bool>("useValueMap");
42  tokenWeights_ = consumes<edm::ValueMap<float> >(iConfig.getParameter<edm::InputTag>("weightsName"));
43 
44  usePhotonId_ = (iConfig.getParameter<edm::InputTag>("photonId")).label().size() == 0;
45  produces<PFOutputCollection>();
46  produces< edm::ValueMap<reco::CandidatePtr> >();
47 }
std::vector< int32_t > pdgIds_
Definition: PuppiPhoton.h:44
double pt_
Definition: PuppiPhoton.h:39
T getParameter(std::string const &) const
edm::EDGetTokenT< CandidateView > tokenPhotonCandidates_
Definition: PuppiPhoton.h:36
edm::EDGetTokenT< CandidateView > tokenPuppiCandidates_
Definition: PuppiPhoton.h:35
bool usePFRef_
Definition: PuppiPhoton.h:41
bool usePhotonId_
Definition: PuppiPhoton.h:42
double weight_
Definition: PuppiPhoton.h:46
double eta_
Definition: PuppiPhoton.h:40
edm::EDGetTokenT< edm::ValueMap< float > > tokenWeights_
Definition: PuppiPhoton.h:37
std::vector< double > dRMatch_
Definition: PuppiPhoton.h:43
edm::EDGetTokenT< edm::ValueMap< bool > > tokenPhotonId_
Definition: PuppiPhoton.h:38
edm::EDGetTokenT< CandidateView > tokenPFCandidates_
Definition: PuppiPhoton.h:34
bool useValueMap_
Definition: PuppiPhoton.h:47
PuppiPhoton::~PuppiPhoton ( )

Definition at line 49 of file PuppiPhoton.cc.

49 {}

Member Function Documentation

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

Definition at line 187 of file PuppiPhoton.cc.

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

187  {
188  //The following says we do not know what parameters are allowed so do no validation
189  // Please change this to state exactly what you do use, even if it is no parameters
191  desc.setUnknown();
192  descriptions.addDefault(desc);
193 }
void addDefault(ParameterSetDescription const &psetDescription)
bool PuppiPhoton::matchPFCandidate ( const reco::Candidate iPF,
const reco::Candidate iPho 
)
private

Definition at line 179 of file PuppiPhoton.cc.

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

Referenced by produce().

179  {
180  double lDR = deltaR(iPF->eta(),iPF->phi(),iPho->eta(),iPho->phi());
181  for(unsigned int i0 = 0; i0 < pdgIds_.size(); i0++) {
182  if(std::abs(iPF->pdgId()) == pdgIds_[i0] && lDR < dRMatch_[i0]) return true;
183  }
184  return false;
185 }
std::vector< int32_t > pdgIds_
Definition: PuppiPhoton.h:44
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
virtual int pdgId() const =0
PDG identifier.
std::vector< double > dRMatch_
Definition: PuppiPhoton.h:43
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity
void PuppiPhoton::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::stream::EDProducerBase.

Definition at line 51 of file PuppiPhoton.cc.

References pat::Electron::associatedPackedPFCandidates(), pat::Photon::associatedPackedPFCandidates(), edm::View< T >::begin(), RecoTauCleanerPlugins::charge, corrCandidates_, edm::View< T >::end(), relval_parameters_module::energy, eta, eta_, edm::helper::Filler< Map >::fill(), edm::Event::getByToken(), edm::helper::Filler< Map >::insert(), matchPFCandidate(), p4, SingleMuPt40Fwdv2_cfi_GEN_SIM::pdgId, edm::Handle< T >::product(), EnergyCorrector::pt, pt_, edm::View< T >::ptrAt(), edm::Event::put(), edm::View< T >::refAt(), reco::LeafCandidate::setP4(), reco::PFCandidate::setSourceCandidatePtr(), edm::View< T >::size(), tokenPFCandidates_, tokenPhotonCandidates_, tokenPhotonId_, tokenPuppiCandidates_, tokenWeights_, reco::PFCandidate::translatePdgIdToType(), usePFRef_, usePhotonId_, useValueMap_, makeHLTPrescaleTable::values, and weight_.

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

51  {
52 
53  edm::Handle<CandidateView> hPhoProduct;
54  iEvent.getByToken(tokenPhotonCandidates_,hPhoProduct);
55  const CandidateView *phoCol = hPhoProduct.product();
56 
58  if(usePhotonId_) iEvent.getByToken(tokenPhotonId_,photonId);
59  int iC = -1;
60  std::vector<const reco::Candidate*> phoCands;
61  std::vector<uint16_t> phoIndx;
62 
63  // Get PFCandidate Collection
64  edm::Handle<CandidateView> hPFProduct;
65  iEvent.getByToken(tokenPFCandidates_,hPFProduct);
66  const CandidateView *pfCol = hPFProduct.product();
67 
68  edm::Handle<CandidateView> hPuppiProduct;
69  iEvent.getByToken(tokenPuppiCandidates_,hPuppiProduct);
70  const CandidateView *pupCol = hPuppiProduct.product();
71  for(CandidateView::const_iterator itPho = phoCol->begin(); itPho!=phoCol->end(); itPho++) {
72  iC++;
73  bool passObject = false;
74  if(itPho->isPhoton() && usePhotonId_) passObject = (*photonId) [phoCol->ptrAt(iC)];
75  if(itPho->pt() < pt_) continue;
76  if(!passObject && usePhotonId_) continue;
77  //if(!usePFRef_ && fabs(itPho->eta()) < eta_) phoCands.push_back(&(*itPho)); ===> should add a flag useAODRef_ in place of usePFRef_
78  //if(!usePFRef_) continue;
79  const pat::Photon *pPho = dynamic_cast<const pat::Photon*>(&(*itPho));
80  if(pPho != 0) {
82  if(fabs(pfCol->ptrAt(ref.key())->eta()) < eta_ ) {
83  phoIndx.push_back(ref.key());
84  phoCands.push_back(&(*(pfCol->ptrAt(ref.key()))));
85  }
86  }
87  continue;
88  }
89  const pat::Electron *pElectron = dynamic_cast<const pat::Electron*>(&(*itPho));
90  if(pElectron != 0) {
92  if(fabs(pfCol->ptrAt(ref.key())->eta()) < eta_ ) {
93  phoIndx.push_back(ref.key());
94  phoCands.push_back(&(*(pfCol->ptrAt(ref.key()))));
95  }
96  }
97  }
98  //Get Weights
100  iEvent.getByToken(tokenWeights_,pupWeights);
101  std::auto_ptr<edm::ValueMap<LorentzVector> > p4PupOut(new edm::ValueMap<LorentzVector>());
102  LorentzVectorCollection puppiP4s;
103  std::vector<reco::CandidatePtr> values(hPFProduct->size());
104  int iPF = 0;
105  std::vector<float> lWeights;
106  static const reco::PFCandidate dummySinceTranslateIsNotStatic;
107  corrCandidates_.reset( new PFOutputCollection );
108  std::vector<int> foundPhoIndex;
109  for(CandidateView::const_iterator itPF = pupCol->begin(); itPF!=pupCol->end(); itPF++) {
110  auto id = dummySinceTranslateIsNotStatic.translatePdgIdToType(itPF->pdgId());
111  const reco::PFCandidate *pPF = dynamic_cast<const reco::PFCandidate*>(&(*itPF));
112  reco::PFCandidate pCand( pPF ? *pPF : reco::PFCandidate(itPF->charge(), itPF->p4(), id) );
113  LorentzVector pVec = itPF->p4();
114  float pWeight = 1.;
115  if(useValueMap_) pWeight = (*pupWeights)[pupCol->ptrAt(iPF)];
116  if(!usePFRef_) {
117  int iPho = -1;
118  for(std::vector<const reco::Candidate*>::iterator itPho = phoCands.begin(); itPho!=phoCands.end(); itPho++) {
119  iPho++;
120  if(!matchPFCandidate(&(*itPF),*itPho)) continue;
121  pWeight = weight_;
122  if(!useValueMap_ && itPF->pt() != 0) pWeight = pWeight*(phoCands[iPho]->pt()/itPF->pt());
123  if(!useValueMap_ && itPF->pt() == 0) pVec.SetPxPyPzE(phoCands[iPho]->px()*pWeight,phoCands[iPho]->py()*pWeight,phoCands[iPho]->pz()*pWeight,phoCands[iPho]->energy()*pWeight);
124  foundPhoIndex.push_back(iPho);
125  }
126  } else {
127  int iPho = -1;
128  for(std::vector<uint16_t>::const_iterator itPho = phoIndx.begin(); itPho!=phoIndx.end(); itPho++) {
129  iPho++;
130  if(pupCol->refAt(iPF).key() != *itPho) continue;
131  pWeight = weight_;
132  if(!useValueMap_ && itPF->pt() != 0) pWeight = pWeight*(phoCands[iPho]->pt()/itPF->pt());
133  if(!useValueMap_ && itPF->pt() == 0) pVec.SetPxPyPzE(phoCands[iPho]->px()*pWeight,phoCands[iPho]->py()*pWeight,phoCands[iPho]->pz()*pWeight,phoCands[iPho]->energy()*pWeight);
134  foundPhoIndex.push_back(iPho);
135  }
136  }
137  if(itPF->pt() != 0) pVec.SetPxPyPzE(itPF->px()*pWeight,itPF->py()*pWeight,itPF->pz()*pWeight,itPF->energy()*pWeight);
138 
139  lWeights.push_back(pWeight);
140  pCand.setP4(pVec);
141  puppiP4s.push_back( pVec );
142  pCand.setSourceCandidatePtr( itPF->sourceCandidatePtr(0) );
143  corrCandidates_->push_back(pCand);
144  iPF++;
145  }
146  //Add the missing pfcandidates
147  for(unsigned int iPho = 0; iPho < phoCands.size(); iPho++) {
148  bool pFound = false;
149  for(unsigned int jPho = 0; jPho < foundPhoIndex.size(); jPho++) {
150  if(foundPhoIndex[jPho] == int(iPho)) {
151  pFound = true;
152  break;
153  }
154  }
155  if(pFound) continue;
156  auto id = dummySinceTranslateIsNotStatic.translatePdgIdToType(phoCands[iPho]->pdgId());
157  reco::PFCandidate pCand(reco::PFCandidate(phoCands[iPho]->charge(), phoCands[iPho]->p4(),id) );
158  pCand.setSourceCandidatePtr( phoCands[iPho]->sourceCandidatePtr(0) );
159  LorentzVector pVec = phoCands[iPho]->p4();
160  pVec.SetPxPyPzE(phoCands[iPho]->px()*weight_,phoCands[iPho]->py()*weight_,phoCands[iPho]->pz()*weight_,phoCands[iPho]->energy()*weight_);
161  pCand.setP4(pVec);
162  lWeights.push_back(weight_);
163  puppiP4s.push_back( pVec );
164  corrCandidates_->push_back(pCand);
165  }
166  //Fill it into the event
168  for(unsigned int ic=0, nc = pupCol->size(); ic < nc; ++ic) {
169  reco::CandidatePtr pkref( oh, ic );
170  values[ic] = pkref;
171  }
172  std::auto_ptr<edm::ValueMap<reco::CandidatePtr> > pfMap_p(new edm::ValueMap<reco::CandidatePtr>());
174  filler.insert(hPFProduct, values.begin(), values.end());
175  filler.fill();
176  iEvent.put(pfMap_p);
177 }
double pt_
Definition: PuppiPhoton.h:39
Analysis-level Photon class.
Definition: Photon.h:47
edm::EDGetTokenT< CandidateView > tokenPhotonCandidates_
Definition: PuppiPhoton.h:36
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
Ptr< value_type > ptrAt(size_type i) const
std::vector< reco::PFCandidate > PFOutputCollection
Definition: PuppiPhoton.h:28
math::XYZTLorentzVector LorentzVector
std::auto_ptr< PFOutputCollection > corrCandidates_
Definition: PuppiPhoton.h:45
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
size_type size() const
edm::EDGetTokenT< CandidateView > tokenPuppiCandidates_
Definition: PuppiPhoton.h:35
bool usePFRef_
Definition: PuppiPhoton.h:41
RefToBase< value_type > refAt(size_type i) const
const_iterator begin() const
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:121
double p4[4]
Definition: TauolaWrapper.h:92
bool matchPFCandidate(const reco::Candidate *iPF, const reco::Candidate *iPho)
Definition: PuppiPhoton.cc:179
bool usePhotonId_
Definition: PuppiPhoton.h:42
std::vector< LorentzVector > LorentzVectorCollection
double weight_
Definition: PuppiPhoton.h:46
double eta_
Definition: PuppiPhoton.h:40
T const * product() const
Definition: Handle.h:81
edm::EDGetTokenT< edm::ValueMap< float > > tokenWeights_
Definition: PuppiPhoton.h:37
Analysis-level electron class.
Definition: Electron.h:52
ParticleType translatePdgIdToType(int pdgid) const
Definition: PFCandidate.cc:224
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:39
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
edm::EDGetTokenT< edm::ValueMap< bool > > tokenPhotonId_
Definition: PuppiPhoton.h:38
const_iterator end() const
edm::EDGetTokenT< CandidateView > tokenPFCandidates_
Definition: PuppiPhoton.h:34
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
bool useValueMap_
Definition: PuppiPhoton.h:47

Member Data Documentation

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

Definition at line 45 of file PuppiPhoton.h.

Referenced by produce().

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

Definition at line 43 of file PuppiPhoton.h.

Referenced by matchPFCandidate(), and PuppiPhoton().

double PuppiPhoton::eta_
private

Definition at line 40 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

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

Definition at line 44 of file PuppiPhoton.h.

Referenced by matchPFCandidate(), and PuppiPhoton().

double PuppiPhoton::pt_
private

Definition at line 39 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

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

Definition at line 34 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

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

Definition at line 36 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

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

Definition at line 38 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

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

Definition at line 35 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

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

Definition at line 37 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

bool PuppiPhoton::usePFRef_
private

Definition at line 41 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

bool PuppiPhoton::usePhotonId_
private

Definition at line 42 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

bool PuppiPhoton::useValueMap_
private

Definition at line 47 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().

double PuppiPhoton::weight_
private

Definition at line 46 of file PuppiPhoton.h.

Referenced by produce(), and PuppiPhoton().