CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
PFEGammaProducer Class Reference

Producer for particle flow reconstructed particles (PFCandidates) More...

#include <PFEGammaProducer.h>

Inheritance diagram for PFEGammaProducer:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginRun (const edm::Run &, const edm::EventSetup &) override
 
 PFEGammaProducer (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &) override
 
 ~PFEGammaProducer ()
 
- 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
 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
 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 (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

void createSingleLegConversions (reco::PFCandidateEGammaExtraCollection &extras, reco::ConversionCollection &oneLegConversions, const edm::RefProd< reco::ConversionCollection > &convProd)
 
void setPFEGParameters (PFEGammaAlgo::PFEGConfigInfo &)
 
void setPFVertexParameters (bool useVertex, const reco::VertexCollection *primaryVertices)
 

Private Attributes

bool applyCrackCorrectionsElectrons_
 
double coneEcalIsoForEgammaSC_
 
double coneTrackIsoForEgammaSC_
 
std::string ebeeClustersCollection_
 
edm::EDGetTokenT
< reco::PFCluster::EEtoPSAssociation
eetopsSrc_
 
std::auto_ptr
< reco::PFCandidateCollection
egCandidates_
 
std::auto_ptr
< reco::PFCandidateEGammaExtraCollection
egExtra_
 
std::string esClustersCollection_
 
edm::EDGetTokenT
< reco::PFBlockCollection
inputTagBlocks_
 
double mvaEleCut_
 
std::string mvaWeightFileEleID_
 Variables for PFEGamma. More...
 
unsigned int nTrackIsoForEgammaSC_
 
std::unique_ptr< PFEGammaAlgopfeg_
 the unfiltered electron collection More...
 
reco::Vertex primaryVertex_
 
const GBRForestReaderEcalRes_
 
const GBRForestReaderGC_
 
const GBRForestReaderGCBarrel_
 
const GBRForestReaderGCEndCapHighr9_
 
const GBRForestReaderGCEndCapLowr9_
 
const GBRForestReaderLC_
 
const GBRForestReaderLCEB_
 
const GBRForestReaderLCEE_
 
const GBRForestReaderRes_
 
std::auto_ptr
< reco::SuperClusterCollection
sClusters_
 
std::vector< double > setchi2Values_
 
std::auto_ptr
< reco::ConversionCollection
singleLegConv_
 
double sumEtEcalIsoForEgammaSC_barrel_
 
double sumEtEcalIsoForEgammaSC_endcap_
 
double sumPtTrackIsoForEgammaSC_barrel_
 
double sumPtTrackIsoForEgammaSC_endcap_
 
std::shared_ptr
< PFSCEnergyCalibration
thePFSCEnergyCalibration_
 
bool useCalibrationsFromDB_
 
bool useEGammaElectrons_
 
bool useEGammaSupercluster_
 
bool useEGElectrons_
 
bool usePFElectrons_
 
bool usePFPhotons_
 
bool usePFSCEleCalib_
 
bool usePhotonReg_
 
bool useRegressionFromDB_
 
bool useVerticesForNeutral_
 
bool verbose_
 verbose ? More...
 
edm::EDGetTokenT
< reco::VertexCollection
vertices_
 

Additional Inherited Members

- 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
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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

Producer for particle flow reconstructed particles (PFCandidates)

This producer makes use of PFAlgo, the particle flow algorithm.

Author
Colin Bernet
Date
July 2006

Definition at line 51 of file PFEGammaProducer.h.

Constructor & Destructor Documentation

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

Definition at line 45 of file PFEGammaProducer.cc.

References PFEGammaAlgo::PFEGConfigInfo::applyCrackCorrections, PFEGammaAlgo::PFEGConfigInfo::coneEcalIsoForEgammaSC, PFEGammaAlgo::PFEGConfigInfo::coneTrackIsoForEgammaSC, ebeeClustersCollection_, eetopsSrc_, esClustersCollection_, contentValuesFiles::fullPath, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputTagBlocks_, LogDebug, PFEGammaAlgo::PFEGConfigInfo::mvaConvCut, PFEGammaAlgo::PFEGConfigInfo::mvaEleCut, PFEGammaAlgo::PFEGConfigInfo::mvaweightfile, PFEGammaAlgo::PFEGConfigInfo::mvaWeightFileEleID, PFEGammaAlgo::PFEGConfigInfo::nTrackIsoForEgammaSC, PFEGammaAlgo::PFEGConfigInfo::produceEGCandsWithNoSuperCluster, ReaderGC_, ReaderLC_, ReaderRes_, setPFEGParameters(), AlCaHLTBitMon_QueryRunRegistry::string, PFEGammaAlgo::PFEGConfigInfo::sumEtEcalIsoForEgammaSC_barrel, PFEGammaAlgo::PFEGConfigInfo::sumEtEcalIsoForEgammaSC_endcap, PFEGammaAlgo::PFEGConfigInfo::sumPtTrackIsoForEgammaSC_barrel, PFEGammaAlgo::PFEGConfigInfo::sumPtTrackIsoForEgammaSC_endcap, PFEGammaAlgo::PFEGConfigInfo::sumPtTrackIsoForPhoton, PFEGammaAlgo::PFEGConfigInfo::sumPtTrackIsoSlopeForPhoton, useCalibrationsFromDB_, PFEGammaAlgo::PFEGConfigInfo::useEGammaSupercluster, PFEGammaAlgo::PFEGConfigInfo::usePFSCEleCalib, PFEGammaAlgo::PFEGConfigInfo::useReg, useRegressionFromDB_, useVerticesForNeutral_, verbose_, vertices_, and PFEGammaAlgo::PFEGConfigInfo::X0_Map.

45  :
47  ebeeClustersCollection_("EBEEClusters"),
48  esClustersCollection_("ESClusters") {
49 
50  PFEGammaAlgo::PFEGConfigInfo algo_config;
51 
53  = consumes<reco::PFBlockCollection>(iConfig.getParameter<edm::InputTag>("blocks"));
54 
55  eetopsSrc_ = consumes<reco::PFCluster::EEtoPSAssociation>(iConfig.getParameter<edm::InputTag>("EEtoPS_source"));
56 
57  algo_config.useReg
58  = iConfig.getParameter<bool>("usePhotonReg");
59 
61  = iConfig.getParameter<bool>("useVerticesForNeutral");
62 
64  = iConfig.getParameter<bool>("useRegressionFromDB");
65 
66 
67  std::vector<double> calibPFSCEle_Fbrem_barrel;
68  std::vector<double> calibPFSCEle_Fbrem_endcap;
69  std::vector<double> calibPFSCEle_barrel;
70  std::vector<double> calibPFSCEle_endcap;
71  algo_config.usePFSCEleCalib = iConfig.getParameter<bool>("usePFSCEleCalib");
72  calibPFSCEle_Fbrem_barrel = iConfig.getParameter<std::vector<double> >("calibPFSCEle_Fbrem_barrel");
73  calibPFSCEle_Fbrem_endcap = iConfig.getParameter<std::vector<double> >("calibPFSCEle_Fbrem_endcap");
74  calibPFSCEle_barrel = iConfig.getParameter<std::vector<double> >("calibPFSCEle_barrel");
75  calibPFSCEle_endcap = iConfig.getParameter<std::vector<double> >("calibPFSCEle_endcap");
76  std::shared_ptr<PFSCEnergyCalibration>
77  thePFSCEnergyCalibration ( new PFSCEnergyCalibration(calibPFSCEle_Fbrem_barrel,calibPFSCEle_Fbrem_endcap,
78  calibPFSCEle_barrel,calibPFSCEle_endcap ));
79 
80  algo_config.useEGammaSupercluster =
81  iConfig.getParameter<bool>("useEGammaSupercluster");
82  algo_config.produceEGCandsWithNoSuperCluster =
83  iConfig.getParameter<bool>("produceEGCandsWithNoSuperCluster");
84  algo_config.sumEtEcalIsoForEgammaSC_barrel =
85  iConfig.getParameter<double>("sumEtEcalIsoForEgammaSC_barrel");
86  algo_config.sumEtEcalIsoForEgammaSC_endcap =
87  iConfig.getParameter<double>("sumEtEcalIsoForEgammaSC_endcap");
88  algo_config.coneEcalIsoForEgammaSC =
89  iConfig.getParameter<double>("coneEcalIsoForEgammaSC");
90  algo_config.sumPtTrackIsoForEgammaSC_barrel =
91  iConfig.getParameter<double>("sumPtTrackIsoForEgammaSC_barrel");
92  algo_config.sumPtTrackIsoForEgammaSC_endcap =
93  iConfig.getParameter<double>("sumPtTrackIsoForEgammaSC_endcap");
94  algo_config.coneTrackIsoForEgammaSC =
95  iConfig.getParameter<double>("coneTrackIsoForEgammaSC");
96  algo_config.nTrackIsoForEgammaSC =
97  iConfig.getParameter<unsigned int>("nTrackIsoForEgammaSC");
98 
99 
100  // register products
101  produces<reco::PFCandidateCollection>();
102  produces<reco::PFCandidateEGammaExtraCollection>();
103  produces<reco::SuperClusterCollection>();
104  produces<reco::CaloClusterCollection>(ebeeClustersCollection_);
105  produces<reco::CaloClusterCollection>(esClustersCollection_);
106  produces<reco::ConversionCollection>();
107 
108  //PFElectrons Configuration
109  algo_config.mvaEleCut
110  = iConfig.getParameter<double>("pf_electron_mvaCut");
111 
112 
113  algo_config. mvaWeightFileEleID
114  = iConfig.getParameter<std::string>("pf_electronID_mvaWeightFile");
115 
116  algo_config.applyCrackCorrections
117  = iConfig.getParameter<bool>("pf_electronID_crackCorrection");
118 
119  std::string path_mvaWeightFileEleID;
120 
121  algo_config.mvaWeightFileEleID =
122  edm::FileInPath ( algo_config.mvaWeightFileEleID.c_str() ).fullPath();
123 
124 
125  //PFPhoton Configuration
126 
127  std::string path_mvaWeightFileConvID;
128  std::string mvaWeightFileConvID;
129  std::string path_mvaWeightFileGCorr;
130  std::string path_mvaWeightFileLCorr;
131  std::string path_X0_Map;
132  std::string path_mvaWeightFileRes;
133 
134  algo_config.mvaweightfile =
135  iConfig.getParameter<std::string>("pf_convID_mvaWeightFile");
136  algo_config.mvaConvCut = iConfig.getParameter<double>("pf_conv_mvaCut");
137  algo_config.mvaweightfile =
138  edm::FileInPath ( algo_config.mvaweightfile.c_str() ).fullPath();
139  algo_config.sumPtTrackIsoForPhoton =
140  iConfig.getParameter<double>("sumPtTrackIsoForPhoton");
141  algo_config.sumPtTrackIsoSlopeForPhoton =
142  iConfig.getParameter<double>("sumPtTrackIsoSlopeForPhoton");
143 
144  algo_config.X0_Map = iConfig.getParameter<std::string>("X0_Map");
145  algo_config.X0_Map =
146  edm::FileInPath( algo_config.X0_Map.c_str() ).fullPath();
147 
148  if(!useRegressionFromDB_) {
149  std::string mvaWeightFileLCorr=iConfig.getParameter<std::string>("pf_locC_mvaWeightFile");
150  path_mvaWeightFileLCorr = edm::FileInPath( mvaWeightFileLCorr.c_str() ).fullPath();
151  std::string mvaWeightFileGCorr=iConfig.getParameter<std::string>("pf_GlobC_mvaWeightFile");
152  path_mvaWeightFileGCorr = edm::FileInPath( mvaWeightFileGCorr.c_str() ).fullPath();
153  std::string mvaWeightFileRes=iConfig.getParameter<std::string>("pf_Res_mvaWeightFile");
154  path_mvaWeightFileRes=edm::FileInPath(mvaWeightFileRes.c_str()).fullPath();
155 
156  TFile *fgbr = new TFile(path_mvaWeightFileGCorr.c_str(),"READ");
157  ReaderGC_ =(const GBRForest*)fgbr->Get("GBRForest");
158  TFile *fgbr2 = new TFile(path_mvaWeightFileLCorr.c_str(),"READ");
159  ReaderLC_ = (const GBRForest*)fgbr2->Get("GBRForest");
160  TFile *fgbr3 = new TFile(path_mvaWeightFileRes.c_str(),"READ");
161  ReaderRes_ = (const GBRForest*)fgbr3->Get("GBRForest");
162  LogDebug("PFEGammaProducer")<<"Will set regressions from binary files " <<std::endl;
163  }
164 
165  edm::ParameterSet iCfgCandConnector
166  = iConfig.getParameter<edm::ParameterSet>("iCfgCandConnector");
167 
168 
169  // fToRead = iConfig.getUntrackedParameter<std::vector<std::string> >("toRead");
170 
172  = iConfig.getParameter<bool>("useCalibrationsFromDB");
173 
174  std::shared_ptr<PFEnergyCalibration> calibration(new PFEnergyCalibration());
175 
176  int algoType
177  = iConfig.getParameter<unsigned>("algoType");
178 
179  switch(algoType) {
180  case 0:
181  //pfAlgo_.reset( new PFAlgo);
182  break;
183  default:
184  assert(0);
185  }
186 
187  //PFEGamma
188  setPFEGParameters(algo_config);
189 
190  //MIKE: Vertex Parameters
191  vertices_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexCollection"));
192 
193  verbose_ =
194  iConfig.getUntrackedParameter<bool>("verbose",false);
195 
196 // bool debug_ =
197 // iConfig.getUntrackedParameter<bool>("debug",false);
198 
199 }
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const GBRForest * ReaderRes_
edm::EDGetTokenT< reco::VertexCollection > vertices_
reco::Vertex primaryVertex_
std::string ebeeClustersCollection_
std::string esClustersCollection_
void setPFEGParameters(PFEGammaAlgo::PFEGConfigInfo &)
bool verbose_
verbose ?
edm::EDGetTokenT< reco::PFCluster::EEtoPSAssociation > eetopsSrc_
const GBRForest * ReaderLC_
const GBRForest * ReaderGC_
edm::EDGetTokenT< reco::PFBlockCollection > inputTagBlocks_
PFEGammaProducer::~PFEGammaProducer ( )

Definition at line 203 of file PFEGammaProducer.cc.

203 {}

Member Function Documentation

void PFEGammaProducer::beginRun ( const edm::Run run,
const edm::EventSetup es 
)
overridevirtual

Reimplemented from edm::stream::EDProducerBase.

Definition at line 206 of file PFEGammaProducer.cc.

References edm::EventSetup::get(), edm::ESHandle< class >::product(), ReaderEcalRes_, ReaderGCBarrel_, ReaderGCEndCapHighr9_, ReaderGCEndCapLowr9_, ReaderLCEB_, ReaderLCEE_, and useRegressionFromDB_.

208 {
209 
211  edm::ESHandle<GBRForest> readerPFLCEB;
212  edm::ESHandle<GBRForest> readerPFLCEE;
213  edm::ESHandle<GBRForest> readerPFGCEB;
214  edm::ESHandle<GBRForest> readerPFGCEEHR9;
215  edm::ESHandle<GBRForest> readerPFGCEELR9;
216  edm::ESHandle<GBRForest> readerPFRes;
217  es.get<GBRWrapperRcd>().get("PFLCorrectionBar",readerPFLCEB);
218  ReaderLCEB_=readerPFLCEB.product();
219  es.get<GBRWrapperRcd>().get("PFLCorrectionEnd",readerPFLCEE);
220  ReaderLCEE_=readerPFLCEE.product();
221  es.get<GBRWrapperRcd>().get("PFGCorrectionBar",readerPFGCEB);
222  ReaderGCBarrel_=readerPFGCEB.product();
223  es.get<GBRWrapperRcd>().get("PFGCorrectionEndHighR9",readerPFGCEEHR9);
224  ReaderGCEndCapHighr9_=readerPFGCEEHR9.product();
225  es.get<GBRWrapperRcd>().get("PFGCorrectionEndLowR9",readerPFGCEELR9);
226  ReaderGCEndCapLowr9_=readerPFGCEELR9.product();
227  es.get<GBRWrapperRcd>().get("PFEcalResolution",readerPFRes);
228  ReaderEcalRes_=readerPFRes.product();
229 
230  /*
231  LogDebug("PFEGammaProducer")<<"setting regressions from DB "<<std::endl;
232  */
233  }
234 
235 
236  //pfAlgo_->setPFPhotonRegWeights(ReaderLC_, ReaderGC_, ReaderRes_);
237 
238 }
const GBRForest * ReaderGCEndCapHighr9_
const GBRForest * ReaderEcalRes_
const GBRForest * ReaderGCEndCapLowr9_
const GBRForest * ReaderLCEE_
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
const GBRForest * ReaderLCEB_
const GBRForest * ReaderGCBarrel_
void PFEGammaProducer::createSingleLegConversions ( reco::PFCandidateEGammaExtraCollection extras,
reco::ConversionCollection oneLegConversions,
const edm::RefProd< reco::ConversionCollection > &  convProd 
)
private

Definition at line 581 of file PFEGammaProducer.cc.

References reco::TrackBase::d0(), relativeConstraints::error, reco::Track::innerMomentum(), reco::Track::innerPosition(), reco::Track::outerMomentum(), reco::Track::outerPosition(), reco::Conversion::pflow, edm::PtrVector< T >::push_back(), edm::refToPtr(), and reco::Conversion::setOneLegMVA().

Referenced by produce().

581  {
582 
584  for (auto &extra : extras){
585  for (const auto &tkrefmva : extra.singleLegConvTrackRefMva()) {
586  const reco::Track &trk = *tkrefmva.first;
587 
588  const reco::Vertex convVtx(trk.innerPosition(), error);
589  std::vector<reco::TrackRef> OneLegConvVector;
590  OneLegConvVector.push_back(tkrefmva.first);
591  std::vector< float > OneLegMvaVector;
592  OneLegMvaVector.push_back(tkrefmva.second);
593  std::vector<reco::CaloClusterPtr> dummymatchingBC;
595  scPtrVec.push_back(edm::refToPtr(extra.superClusterRef()));
596 
597  std::vector<math::XYZPointF>trackPositionAtEcalVec;
598  std::vector<math::XYZPointF>innPointVec;
599  std::vector<math::XYZVectorF>trackPinVec;
600  std::vector<math::XYZVectorF>trackPoutVec;
601  math::XYZPointF trackPositionAtEcal(trk.outerPosition().X(), trk.outerPosition().Y(), trk.outerPosition().Z());
602  trackPositionAtEcalVec.push_back(trackPositionAtEcal);
603 
604  math::XYZPointF innPoint(trk.innerPosition().X(), trk.innerPosition().Y(), trk.innerPosition().Z());
605  innPointVec.push_back(innPoint);
606 
607  math::XYZVectorF trackPin(trk.innerMomentum().X(), trk.innerMomentum().Y(), trk.innerMomentum().Z());
608  trackPinVec.push_back(trackPin);
609 
610  math::XYZVectorF trackPout(trk.outerMomentum().X(), trk.outerMomentum().Y(), trk.outerMomentum().Z());
611  trackPoutVec.push_back( trackPout );
612 
613  float DCA = trk.d0() ;
614  float mvaval = tkrefmva.second;
615  reco::Conversion singleLegConvCandidate(scPtrVec,
616  OneLegConvVector,
617  trackPositionAtEcalVec,
618  convVtx,
619  dummymatchingBC,
620  DCA,
621  innPointVec,
622  trackPinVec,
623  trackPoutVec,
624  mvaval,
626  singleLegConvCandidate.setOneLegMVA(OneLegMvaVector);
627  oneLegConversions.push_back(singleLegConvCandidate);
628 
629  reco::ConversionRef convref(convProd,oneLegConversions.size()-1);
630  extra.addSingleLegConversionRef(convref);
631 
632  }
633 
634  }
635 
636 }
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:645
void push_back(Ptr< T > const &iPtr)
Definition: PtrVector.h:139
ErrorD< N >::type type
Definition: Error.h:39
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:65
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:55
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:17
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:70
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:60
void PFEGammaProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::stream::EDProducerBase.

Definition at line 242 of file PFEGammaProducer.cc.

References gather_cfg::blocks, createSingleLegConversions(), TauDecayModes::dec, ebeeClustersCollection_, reco::PFBlockElement::ECAL, eetopsSrc_, egCandidates_, egExtra_, asciidump::elements, esClustersCollection_, edm::EventID::event(), edm::hlt::Exception, newFWLiteAna::found, edm::Event::getByToken(), edm::Event::getRefBeforePut(), reco::PFBlockElement::HCAL, reco::PFBlockElement::HFEM, reco::PFBlockElement::HFHAD, reco::PFBlockElement::HO, i, edm::EventBase::id(), edm::EDGetTokenT< T >::index(), inputTagBlocks_, LOGDRESSED, pfeg_, edm::Handle< T >::product(), reco::PFBlockElement::PS1, reco::PFBlockElement::PS2, edm::PtrVector< T >::push_back(), edm::Event::put(), edm::EventID::run(), reco::PFBlockElement::SC, sClusters_, reco::PFCandidate::setPFEGammaExtraRef(), setPFVertexParameters(), reco::PFCandidateEGammaExtra::setSuperClusterRef(), reco::PFCandidate::setSuperClusterRef(), singleLegConv_, edm::OwnVector< T, P >::size(), funct::true, useVerticesForNeutral_, and vertices_.

243  {
244 
245  LOGDRESSED("PFEGammaProducer")
246  <<"START event: "
247  <<iEvent.id().event()
248  <<" in run "<<iEvent.id().run()<<std::endl;
249 
250 
251  // reset output collection
255 
256  // Get the EE-PS associations
258  iEvent.getByToken(eetopsSrc_,eetops);
259  pfeg_->setEEtoPSAssociation(eetops);
260 
261  // Get The vertices from the event
262  // and assign dynamic vertex parameters
264  bool gotVertices = iEvent.getByToken(vertices_,vertices);
265  if(!gotVertices) {
266  std::ostringstream err;
267  err<<"Cannot find vertices for this event.Continuing Without them ";
268  edm::LogError("PFEGammaProducer")<<err.str()<<std::endl;
269  }
270 
271  //Assign the PFAlgo Parameters
273 
274  // get the collection of blocks
275 
277 
278  LOGDRESSED("PFEGammaProducer")<<"getting blocks"<<std::endl;
279  bool found = iEvent.getByToken( inputTagBlocks_, blocks );
280 
281  if(!found ) {
282 
283  std::ostringstream err;
284  err<<"cannot find blocks: (tag index)"
285  << std::hex<< inputTagBlocks_.index() << std::dec;
286  edm::LogError("PFEGammaProducer")<<err.str()<<std::endl;
287 
288  throw cms::Exception( "MissingProduct", err.str());
289  }
290 
291  LOGDRESSED("PFEGammaProducer")
292  <<"EGPFlow is starting..."<<std::endl;
293 
294 #ifdef PFLOW_DEBUG
295  assert( blocks.isValid() && "edm::Handle to blocks was null!");
296  std::ostringstream str;
297  //str<<(*pfAlgo_)<<std::endl;
298  // cout << (*pfAlgo_) << std::endl;
299  LOGDRESSED("PFEGammaProducer") <<str.str()<<std::endl;
300 #endif
301 
302  // sort elements in three lists:
303  std::list< reco::PFBlockRef > hcalBlockRefs;
304  std::list< reco::PFBlockRef > ecalBlockRefs;
305  std::list< reco::PFBlockRef > hoBlockRefs;
306  std::list< reco::PFBlockRef > otherBlockRefs;
307 
308  for( unsigned i=0; i<blocks->size(); ++i ) {
309  // reco::PFBlockRef blockref( blockh,i );
310  //reco::PFBlockRef blockref = createBlockRef( *blocks, i);
311  reco::PFBlockRef blockref(blocks, i);
312 
314  elements = blockref->elements();
315 
316  LOGDRESSED("PFEGammaProducer")
317  << "Found " << elements.size()
318  << " PFBlockElements in block: " << i << std::endl;
319 
320  bool singleEcalOrHcal = false;
321  if( elements.size() == 1 ){
322  switch( elements[0].type() ) {
324  edm::LogError("PFEGammaProducer")
325  << "PFBLOCKALGO BUG!!!! Found a SuperCluster in a block by itself!";
329  ecalBlockRefs.push_back( blockref );
330  singleEcalOrHcal = true;
331  break;
335  hcalBlockRefs.push_back( blockref );
336  singleEcalOrHcal = true;
337  break;
339  // Single HO elements are likely to be noise. Not considered for now.
340  hoBlockRefs.push_back( blockref );
341  singleEcalOrHcal = true;
342  break;
343  default:
344  break;
345  }
346  }
347 
348  if(!singleEcalOrHcal) {
349  otherBlockRefs.push_back( blockref );
350  }
351  }//loop blocks
352 
353  // loop on blocks that are not single ecal, single ps1, single ps2 , or
354  // single hcal and produce unbiased collection of EGamma Candidates
355 
356  //printf("loop over blocks\n");
357  unsigned nblcks = 0;
358 
359  // this auto is a const reco::PFBlockRef&
360  for( const auto& blockref : otherBlockRefs ) {
361  ++nblcks;
362  // this auto is a: const edm::OwnVector< reco::PFBlockElement >&
363  const auto& elements = blockref->elements();
364  // make a copy of the link data, which will be edited.
365  //PFBlock::LinkData linkData = block.linkData();
366 
367  // keep track of the elements which are still active.
368  std::vector<bool> active( elements.size(), true );
369 
370  pfeg_->RunPFEG(blockref,active);
371 
372  if( pfeg_->getCandidates().size() ) {
373  LOGDRESSED("PFEGammaProducer")
374  << "Block with " << elements.size()
375  << " elements produced "
376  << pfeg_->getCandidates().size()
377  << " e-g candidates!" << std::endl;
378  }
379 
380  const size_t egsize = egCandidates_->size();
381  egCandidates_->resize(egsize + pfeg_->getCandidates().size());
382  reco::PFCandidateCollection::iterator eginsertfrom =
383  egCandidates_->begin() + egsize;
384  std::move(pfeg_->getCandidates().begin(),
385  pfeg_->getCandidates().end(),
386  eginsertfrom);
387 
388  const size_t egxsize = egExtra_->size();
389  egExtra_->resize(egxsize + pfeg_->getEGExtra().size());
390  reco::PFCandidateEGammaExtraCollection::iterator egxinsertfrom =
391  egExtra_->begin() + egxsize;
392  std::move(pfeg_->getEGExtra().begin(),
393  pfeg_->getEGExtra().end(),
394  egxinsertfrom);
395 
396  const size_t rscsize = sClusters_->size();
397  sClusters_->resize(rscsize + pfeg_->getRefinedSCs().size());
398  reco::SuperClusterCollection::iterator rscinsertfrom =
399  sClusters_->begin() + rscsize;
400  std::move(pfeg_->getRefinedSCs().begin(),
401  pfeg_->getRefinedSCs().end(),
402  rscinsertfrom);
403  }
404 
405  LOGDRESSED("PFEGammaProducer")
406  << "Running PFEGammaAlgo on all blocks produced = "
407  << egCandidates_->size() << " e-g candidates!"
408  << std::endl;
409 
412 
415 
416  //set the correct references to refined SC and EG extra using the refprods
417  for (unsigned int i=0; i < egCandidates_->size(); ++i) {
418  reco::PFCandidate &cand = egCandidates_->at(i);
420 
421  reco::PFCandidateEGammaExtraRef extraref(egXtraProd,i);
422  reco::SuperClusterRef refinedSCRef(sClusterProd,i);
423 
424  xtra.setSuperClusterRef(refinedSCRef);
425  cand.setSuperClusterRef(refinedSCRef);
426  cand.setPFEGammaExtraRef(extraref);
427  }
428 
429  //build collections of output CaloClusters from the used PFClusters
430  std::auto_ptr<reco::CaloClusterCollection> caloClustersEBEE(new reco::CaloClusterCollection);
431  std::auto_ptr<reco::CaloClusterCollection> caloClustersES(new reco::CaloClusterCollection);
432 
433  std::map<edm::Ptr<reco::CaloCluster>, unsigned int> pfClusterMapEBEE; //maps of pfclusters to caloclusters
434  std::map<edm::Ptr<reco::CaloCluster>, unsigned int> pfClusterMapES;
435 
436  for( const auto& sc : *sClusters_ ) {
437  for (reco::CaloCluster_iterator pfclus = sc.clustersBegin(); pfclus!=sc.clustersEnd(); ++pfclus) {
438  if (!pfClusterMapEBEE.count(*pfclus)) {
439  reco::CaloCluster caloclus(**pfclus);
440  caloClustersEBEE->push_back(caloclus);
441  pfClusterMapEBEE[*pfclus] = caloClustersEBEE->size() - 1;
442  }
443  else {
444  throw cms::Exception("PFEgammaProducer::produce")
445  << "Found an EB/EE pfcluster matched to more than one supercluster!"
446  << std::dec << std::endl;
447  }
448  }
449  for (reco::CaloCluster_iterator pfclus = sc.preshowerClustersBegin(); pfclus!=sc.preshowerClustersEnd(); ++pfclus) {
450  if (!pfClusterMapES.count(*pfclus)) {
451  reco::CaloCluster caloclus(**pfclus);
452  caloClustersES->push_back(caloclus);
453  pfClusterMapES[*pfclus] = caloClustersES->size() - 1;
454  }
455  else {
456  throw cms::Exception("PFEgammaProducer::produce")
457  << "Found an ES pfcluster matched to more than one supercluster!"
458  << std::dec << std::endl;
459  }
460  }
461  }
462 
463  //put calocluster output collections in event and get orphan handles to create ptrs
464  const edm::OrphanHandle<reco::CaloClusterCollection> &caloClusHandleEBEE = iEvent.put(caloClustersEBEE,ebeeClustersCollection_);
465  const edm::OrphanHandle<reco::CaloClusterCollection> &caloClusHandleES = iEvent.put(caloClustersES,esClustersCollection_);
466 
467  //relink superclusters to output caloclusters
468  for( auto& sc : *sClusters_ ) {
469  edm::Ptr<reco::CaloCluster> seedptr(caloClusHandleEBEE,pfClusterMapEBEE[sc.seed()]);
470  sc.setSeed(seedptr);
471 
473  for (reco::CaloCluster_iterator pfclus = sc.clustersBegin(); pfclus!=sc.clustersEnd(); ++pfclus) {
474  edm::Ptr<reco::CaloCluster> clusptr(caloClusHandleEBEE,pfClusterMapEBEE[*pfclus]);
475  clusters.push_back(clusptr);
476  }
477  sc.setClusters(clusters);
478 
479  reco::CaloClusterPtrVector psclusters;
480  for (reco::CaloCluster_iterator pfclus = sc.preshowerClustersBegin(); pfclus!=sc.preshowerClustersEnd(); ++pfclus) {
481  edm::Ptr<reco::CaloCluster> clusptr(caloClusHandleES,pfClusterMapES[*pfclus]);
482  psclusters.push_back(clusptr);
483  }
484  sc.setPreshowerClusters(psclusters);
485  }
486 
487  //create and fill references to single leg conversions
491 
492  // release our demonspawn into the wild to cause havoc
493  iEvent.put(sClusters_);
494  iEvent.put(egExtra_);
495  iEvent.put(singleLegConv_);
496  iEvent.put(egCandidates_);
497 }
RunNumber_t run() const
Definition: EventID.h:39
type
Definition: HCALResponse.h:21
EventNumber_t event() const
Definition: EventID.h:41
int i
Definition: DBlmapReader.cc:9
void createSingleLegConversions(reco::PFCandidateEGammaExtraCollection &extras, reco::ConversionCollection &oneLegConversions, const edm::RefProd< reco::ConversionCollection > &convProd)
void setSuperClusterRef(reco::SuperClusterRef sc)
set reference to the corresponding supercluster
edm::EDGetTokenT< reco::VertexCollection > vertices_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:446
void push_back(Ptr< T > const &iPtr)
Definition: PtrVector.h:139
unsigned int index() const
Definition: EDGetToken.h:70
size_type size() const
Definition: OwnVector.h:254
list elements
Definition: asciidump.py:414
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
Definition: ConversionFwd.h:9
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:113
void setPFVertexParameters(bool useVertex, const reco::VertexCollection *primaryVertices)
std::vector< reco::PFCandidateEGammaExtra > PFCandidateEGammaExtraCollection
collection of PFCandidateEGammaExtras
std::auto_ptr< reco::PFCandidateEGammaExtraCollection > egExtra_
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
std::string ebeeClustersCollection_
std::string esClustersCollection_
std::auto_ptr< reco::PFCandidateCollection > egCandidates_
edm::EDGetTokenT< reco::PFCluster::EEtoPSAssociation > eetopsSrc_
RefProd< PROD > getRefBeforePut()
Definition: Event.h:133
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
T const * product() const
Definition: Handle.h:81
list blocks
Definition: gather_cfg.py:90
std::unique_ptr< PFEGammaAlgo > pfeg_
the unfiltered electron collection
edm::EDGetTokenT< reco::PFBlockCollection > inputTagBlocks_
edm::EventID id() const
Definition: EventBase.h:56
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:39
#define LOGDRESSED(x)
void setPFEGammaExtraRef(const reco::PFCandidateEGammaExtraRef &ref)
set the PF EGamma Extra Ref
Definition: PFCandidate.cc:641
void setSuperClusterRef(const reco::SuperClusterRef &scRef)
Definition: PFCandidate.cc:620
std::auto_ptr< reco::ConversionCollection > singleLegConv_
std::auto_ptr< reco::SuperClusterCollection > sClusters_
void PFEGammaProducer::setPFEGParameters ( PFEGammaAlgo::PFEGConfigInfo cfg)
private

Definition at line 501 of file PFEGammaProducer.cc.

References alignCSCRings::e, PFEGammaAlgo::PFEGConfigInfo::mvaweightfile, PFEGammaAlgo::PFEGConfigInfo::mvaWeightFileEleID, AlCaHLTBitMon_ParallelJobs::p, pfeg_, primaryVertex_, PFEGammaAlgo::PFEGConfigInfo::primaryVtx, AlCaHLTBitMon_QueryRunRegistry::string, useVerticesForNeutral_, and hltvertexperformanceanalyzer_cfi::Vertex.

Referenced by PFEGammaProducer().

501  {
502 
503  FILE * fileEleID = fopen(cfg.mvaWeightFileEleID.c_str(), "r");
504  if (fileEleID) {
505  fclose(fileEleID);
506  }
507  else {
508  std::string err = "PFAlgo: cannot open weight file '";
509  err += cfg.mvaWeightFileEleID;
510  err += "'";
511  throw std::invalid_argument( err );
512  }
513 
514  //for MVA pass PV if there is one in the collection otherwise pass a dummy
515  if(!useVerticesForNeutral_) { // create a dummy PV
517  e(0, 0) = 0.0015 * 0.0015;
518  e(1, 1) = 0.0015 * 0.0015;
519  e(2, 2) = 15. * 15.;
520  reco::Vertex::Point p(0, 0, 0);
521  primaryVertex_ = reco::Vertex(p, e, 0, 0, 0);
522  }
523  // pv=&dummy;
524  //if(! usePFPhotons_) return;
525  FILE * filePhotonConvID = fopen(cfg.mvaweightfile.c_str(), "r");
526  if (filePhotonConvID) {
527  fclose(filePhotonConvID);
528  }
529  else {
530  std::string err = "PFAlgo: cannot open weight file '";
531  err += cfg.mvaweightfile;
532  err += "'";
533  throw std::invalid_argument( err );
534  }
535  cfg.primaryVtx = &primaryVertex_;
536  pfeg_.reset(new PFEGammaAlgo(cfg));
537 }
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:43
const reco::Vertex * primaryVtx
Definition: PFEGammaAlgo.h:124
reco::Vertex primaryVertex_
math::XYZPoint Point
point in the space
Definition: Vertex.h:39
std::unique_ptr< PFEGammaAlgo > pfeg_
the unfiltered electron collection
void PFEGammaProducer::setPFVertexParameters ( bool  useVertex,
const reco::VertexCollection primaryVertices 
)
private

Definition at line 551 of file PFEGammaProducer.cc.

References i, pfeg_, primaryVertex_, and useVerticesForNeutral_.

Referenced by produce().

552  {
553  useVerticesForNeutral_ = useVertex;
554 
555  //Set the vertices for muon cleaning
556 // pfmu_->setInputsForCleaning(primaryVertices);
557 
558 
559  //Now find the primary vertex!
560  //bool primaryVertexFound = false;
561  int nVtx=primaryVertices->size();
562  pfeg_->setnPU(nVtx);
563 // if(usePFPhotons_){
564 // pfpho_->setnPU(nVtx);
565 // }
566  primaryVertex_ = primaryVertices->front();
567  for (unsigned short i=0 ;i<primaryVertices->size();++i)
568  {
569  if(primaryVertices->at(i).isValid()&&(!primaryVertices->at(i).isFake()))
570  {
571  primaryVertex_ = primaryVertices->at(i);
572  //primaryVertexFound = true;
573  break;
574  }
575  }
576 
577  pfeg_->setPhotonPrimaryVtx(primaryVertex_ );
578 
579 }
int i
Definition: DBlmapReader.cc:9
reco::Vertex primaryVertex_
std::unique_ptr< PFEGammaAlgo > pfeg_
the unfiltered electron collection

Member Data Documentation

bool PFEGammaProducer::applyCrackCorrectionsElectrons_
private

Definition at line 107 of file PFEGammaProducer.h.

double PFEGammaProducer::coneEcalIsoForEgammaSC_
private

Definition at line 113 of file PFEGammaProducer.h.

double PFEGammaProducer::coneTrackIsoForEgammaSC_
private

Definition at line 116 of file PFEGammaProducer.h.

std::string PFEGammaProducer::ebeeClustersCollection_
private

Definition at line 135 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer(), and produce().

edm::EDGetTokenT<reco::PFCluster::EEtoPSAssociation> PFEGammaProducer::eetopsSrc_
private

Definition at line 70 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer(), and produce().

std::auto_ptr< reco::PFCandidateCollection > PFEGammaProducer::egCandidates_
private

Definition at line 121 of file PFEGammaProducer.h.

Referenced by produce().

std::auto_ptr<reco::PFCandidateEGammaExtraCollection> PFEGammaProducer::egExtra_
private

Definition at line 122 of file PFEGammaProducer.h.

Referenced by produce().

std::string PFEGammaProducer::esClustersCollection_
private

Definition at line 136 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer(), and produce().

edm::EDGetTokenT<reco::PFBlockCollection> PFEGammaProducer::inputTagBlocks_
private

Definition at line 69 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer(), and produce().

double PFEGammaProducer::mvaEleCut_
private

Definition at line 104 of file PFEGammaProducer.h.

std::string PFEGammaProducer::mvaWeightFileEleID_
private

Variables for PFEGamma.

Definition at line 102 of file PFEGammaProducer.h.

unsigned int PFEGammaProducer::nTrackIsoForEgammaSC_
private

Definition at line 117 of file PFEGammaProducer.h.

std::unique_ptr<PFEGammaAlgo> PFEGammaProducer::pfeg_
private

the unfiltered electron collection

particle flow algorithm

Definition at line 133 of file PFEGammaProducer.h.

Referenced by produce(), setPFEGParameters(), and setPFVertexParameters().

reco::Vertex PFEGammaProducer::primaryVertex_
private

Definition at line 119 of file PFEGammaProducer.h.

Referenced by setPFEGParameters(), and setPFVertexParameters().

const GBRForest* PFEGammaProducer::ReaderEcalRes_
private

Definition at line 89 of file PFEGammaProducer.h.

Referenced by beginRun().

const GBRForest* PFEGammaProducer::ReaderGC_
private

Definition at line 81 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer().

const GBRForest* PFEGammaProducer::ReaderGCBarrel_
private

Definition at line 86 of file PFEGammaProducer.h.

Referenced by beginRun().

const GBRForest* PFEGammaProducer::ReaderGCEndCapHighr9_
private

Definition at line 87 of file PFEGammaProducer.h.

Referenced by beginRun().

const GBRForest* PFEGammaProducer::ReaderGCEndCapLowr9_
private

Definition at line 88 of file PFEGammaProducer.h.

Referenced by beginRun().

const GBRForest* PFEGammaProducer::ReaderLC_
private

Definition at line 82 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer().

const GBRForest* PFEGammaProducer::ReaderLCEB_
private

Definition at line 84 of file PFEGammaProducer.h.

Referenced by beginRun().

const GBRForest* PFEGammaProducer::ReaderLCEE_
private

Definition at line 85 of file PFEGammaProducer.h.

Referenced by beginRun().

const GBRForest* PFEGammaProducer::ReaderRes_
private

Definition at line 83 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer().

std::auto_ptr< reco::SuperClusterCollection > PFEGammaProducer::sClusters_
private

Definition at line 124 of file PFEGammaProducer.h.

Referenced by produce().

std::vector<double> PFEGammaProducer::setchi2Values_
private

Definition at line 103 of file PFEGammaProducer.h.

std::auto_ptr<reco::ConversionCollection> PFEGammaProducer::singleLegConv_
private

Definition at line 123 of file PFEGammaProducer.h.

Referenced by produce().

double PFEGammaProducer::sumEtEcalIsoForEgammaSC_barrel_
private

Definition at line 111 of file PFEGammaProducer.h.

double PFEGammaProducer::sumEtEcalIsoForEgammaSC_endcap_
private

Definition at line 112 of file PFEGammaProducer.h.

double PFEGammaProducer::sumPtTrackIsoForEgammaSC_barrel_
private

Definition at line 114 of file PFEGammaProducer.h.

double PFEGammaProducer::sumPtTrackIsoForEgammaSC_endcap_
private

Definition at line 115 of file PFEGammaProducer.h.

std::shared_ptr<PFSCEnergyCalibration> PFEGammaProducer::thePFSCEnergyCalibration_
private

Definition at line 99 of file PFEGammaProducer.h.

bool PFEGammaProducer::useCalibrationsFromDB_
private

Definition at line 97 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer().

bool PFEGammaProducer::useEGammaElectrons_
private

Definition at line 91 of file PFEGammaProducer.h.

bool PFEGammaProducer::useEGammaSupercluster_
private

Definition at line 110 of file PFEGammaProducer.h.

bool PFEGammaProducer::useEGElectrons_
private

Definition at line 109 of file PFEGammaProducer.h.

bool PFEGammaProducer::usePFElectrons_
private

Definition at line 105 of file PFEGammaProducer.h.

bool PFEGammaProducer::usePFPhotons_
private

Definition at line 106 of file PFEGammaProducer.h.

bool PFEGammaProducer::usePFSCEleCalib_
private

Definition at line 108 of file PFEGammaProducer.h.

bool PFEGammaProducer::usePhotonReg_
private

Definition at line 79 of file PFEGammaProducer.h.

bool PFEGammaProducer::useRegressionFromDB_
private

Definition at line 80 of file PFEGammaProducer.h.

Referenced by beginRun(), and PFEGammaProducer().

bool PFEGammaProducer::useVerticesForNeutral_
private
bool PFEGammaProducer::verbose_
private

verbose ?

Definition at line 76 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer().

edm::EDGetTokenT<reco::VertexCollection> PFEGammaProducer::vertices_
private

Definition at line 71 of file PFEGammaProducer.h.

Referenced by PFEGammaProducer(), and produce().