CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
ElectronRegressionValueMapProducer Class Reference
Inheritance diagram for ElectronRegressionValueMapProducer:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 ElectronRegressionValueMapProducer (const edm::ParameterSet &)
 
 ~ElectronRegressionValueMapProducer ()
 
- 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
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 (const std::string &iProcessName, std::vector< const char * > &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

virtual void produce (edm::Event &, const edm::EventSetup &) override
 
void writeValueMap (edm::Event &iEvent, const edm::Handle< edm::View< reco::GsfElectron > > &handle, const std::vector< float > &values, const std::string &label) const
 
void writeValueMap (edm::Event &iEvent, const edm::Handle< edm::View< reco::GsfElectron > > &handle, const std::vector< int > &values, const std::string &label) const
 

Private Attributes

edm::EDGetTokenT
< EcalRecHitCollection
ebReducedRecHitCollection_
 
edm::EDGetTokenT
< EcalRecHitCollection
ebReducedRecHitCollectionMiniAOD_
 
edm::EDGetTokenT
< EcalRecHitCollection
eeReducedRecHitCollection_
 
edm::EDGetTokenT
< EcalRecHitCollection
eeReducedRecHitCollectionMiniAOD_
 
edm::EDGetTokenT
< EcalRecHitCollection
esReducedRecHitCollection_
 
edm::EDGetTokenT
< EcalRecHitCollection
esReducedRecHitCollectionMiniAOD_
 
std::unique_ptr
< EcalClusterLazyToolsBase
lazyTools
 
edm::EDGetToken src_
 
edm::EDGetToken srcMiniAOD_
 
const bool use_full5x5_
 

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
 
- 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

Definition at line 51 of file ElectronRegressionValueMapProducer.cc.

Constructor & Destructor Documentation

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

Definition at line 91 of file ElectronRegressionValueMapProducer.cc.

References ebReducedRecHitCollection_, ebReducedRecHitCollectionMiniAOD_, eeReducedRecHitCollection_, eeReducedRecHitCollectionMiniAOD_, esReducedRecHitCollection_, esReducedRecHitCollectionMiniAOD_, edm::ParameterSet::getParameter(), src_, and srcMiniAOD_.

91  :
92  use_full5x5_(iConfig.getParameter<bool>("useFull5x5")) {
93 
94  //
95  // Declare consummables, handle both AOD and miniAOD case
96  //
97  ebReducedRecHitCollection_ = mayConsume<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>
98  ("ebReducedRecHitCollection"));
99  ebReducedRecHitCollectionMiniAOD_ = mayConsume<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>
100  ("ebReducedRecHitCollectionMiniAOD"));
101 
102  eeReducedRecHitCollection_ = mayConsume<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>
103  ("eeReducedRecHitCollection"));
104  eeReducedRecHitCollectionMiniAOD_ = mayConsume<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>
105  ("eeReducedRecHitCollectionMiniAOD"));
106 
107  esReducedRecHitCollection_ = mayConsume<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>
108  ("esReducedRecHitCollection"));
109  esReducedRecHitCollectionMiniAOD_ = mayConsume<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>
110  ("esReducedRecHitCollectionMiniAOD"));
111 
112  src_ = mayConsume<edm::View<reco::GsfElectron> >(iConfig.getParameter<edm::InputTag>("src"));
113  srcMiniAOD_ = mayConsume<edm::View<reco::GsfElectron> >(iConfig.getParameter<edm::InputTag>("srcMiniAOD"));
114 
115  produces<edm::ValueMap<float> >(sigmaIEtaIPhi_);
116  produces<edm::ValueMap<float> >(eMax_);
117  produces<edm::ValueMap<float> >(e2nd_);
118  produces<edm::ValueMap<float> >(eTop_);
119  produces<edm::ValueMap<float> >(eBottom_);
120  produces<edm::ValueMap<float> >(eLeft_);
121  produces<edm::ValueMap<float> >(eRight_);
122  produces<edm::ValueMap<float> >(clusterMaxDR_);
123  produces<edm::ValueMap<float> >(clusterMaxDRDPhi_);
124  produces<edm::ValueMap<float> >(clusterMaxDRDEta_);
125  produces<edm::ValueMap<float> >(clusterMaxDRRawEnergy_);
126  produces<edm::ValueMap<float> >(clusterRawEnergy0_);
127  produces<edm::ValueMap<float> >(clusterRawEnergy1_);
128  produces<edm::ValueMap<float> >(clusterRawEnergy2_);
129  produces<edm::ValueMap<float> >(clusterDPhiToSeed0_);
130  produces<edm::ValueMap<float> >(clusterDPhiToSeed1_);
131  produces<edm::ValueMap<float> >(clusterDPhiToSeed2_);
132  produces<edm::ValueMap<float> >(clusterDEtaToSeed0_);
133  produces<edm::ValueMap<float> >(clusterDEtaToSeed1_);
134  produces<edm::ValueMap<float> >(clusterDEtaToSeed2_);
135  produces<edm::ValueMap<int> >(eleIPhi_);
136  produces<edm::ValueMap<int> >(eleIEta_);
137  produces<edm::ValueMap<float> >(eleCryPhi_);
138  produces<edm::ValueMap<float> >(eleCryEta_);
139 }
T getParameter(std::string const &) const
edm::EDGetTokenT< EcalRecHitCollection > eeReducedRecHitCollection_
edm::EDGetTokenT< EcalRecHitCollection > esReducedRecHitCollection_
edm::EDGetTokenT< EcalRecHitCollection > esReducedRecHitCollectionMiniAOD_
edm::EDGetTokenT< EcalRecHitCollection > ebReducedRecHitCollection_
edm::EDGetTokenT< EcalRecHitCollection > eeReducedRecHitCollectionMiniAOD_
edm::EDGetTokenT< EcalRecHitCollection > ebReducedRecHitCollectionMiniAOD_
ElectronRegressionValueMapProducer::~ElectronRegressionValueMapProducer ( )

Definition at line 141 of file ElectronRegressionValueMapProducer.cc.

141  {
142 }

Member Function Documentation

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

Definition at line 454 of file ElectronRegressionValueMapProducer.cc.

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

454  {
455  //The following says we do not know what parameters are allowed so do no validation
456  // Please change this to state exactly what you do use, even if it is no parameters
458  desc.setUnknown();
459  descriptions.addDefault(desc);
460 }
void addDefault(ParameterSetDescription const &psetDescription)
void ElectronRegressionValueMapProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::stream::EDProducerBase.

Definition at line 273 of file ElectronRegressionValueMapProducer.cc.

References ebReducedRecHitCollection_, ebReducedRecHitCollectionMiniAOD_, eeReducedRecHitCollection_, eeReducedRecHitCollectionMiniAOD_, esReducedRecHitCollection_, esReducedRecHitCollectionMiniAOD_, edm::Event::getByToken(), i, lazyTools, alcazmumu_cfi::src, src_, srcMiniAOD_, use_full5x5_, and writeValueMap().

273  {
274 
275  using namespace edm;
276 
278 
279  // Retrieve the collection of electrons from the event.
280  // If we fail to retrieve the collection with the standard AOD
281  // name, we next look for the one with the stndard miniAOD name.
282  bool isAOD = true;
283  iEvent.getByToken(src_, src);
284 
285  if( !src.isValid() ) {
286  isAOD = false;
287  iEvent.getByToken(srcMiniAOD_,src);
288  }
289 
290  // configure lazy tools
292 
293  if( isAOD ) {
297  } else {
301  }
302 
303  if( use_full5x5_ ) {
304  lazyTools.reset( new noZS::EcalClusterLazyTools(iEvent, iSetup,
305  ebrh, eerh, esrh ) );
306  } else {
307  lazyTools.reset( new EcalClusterLazyTools(iEvent, iSetup,
308  ebrh, eerh, esrh ) );
309  }
310 
311  std::vector<float> sigmaIEtaIPhi;
312  std::vector<float> eMax;
313  std::vector<float> e2nd;
314  std::vector<float> eTop;
315  std::vector<float> eBottom;
316  std::vector<float> eLeft;
317  std::vector<float> eRight;
318  std::vector<float> clusterMaxDR;
319  std::vector<float> clusterMaxDRDPhi;
320  std::vector<float> clusterMaxDRDEta;
321  std::vector<float> clusterMaxDRRawEnergy;
322  std::vector<float> clusterRawEnergy0;
323  std::vector<float> clusterRawEnergy1;
324  std::vector<float> clusterRawEnergy2;
325  std::vector<float> clusterDPhiToSeed0;
326  std::vector<float> clusterDPhiToSeed1;
327  std::vector<float> clusterDPhiToSeed2;
328  std::vector<float> clusterDEtaToSeed0;
329  std::vector<float> clusterDEtaToSeed1;
330  std::vector<float> clusterDEtaToSeed2;
331  std::vector<int> eleIPhi;
332  std::vector<int> eleIEta;
333  std::vector<float> eleCryPhi;
334  std::vector<float> eleCryEta;
335 
336  // reco::GsfElectron::superCluster() is virtual so we can exploit polymorphism
337  for (size_t i = 0; i < src->size(); ++i){
338  auto iEle = src->ptrAt(i);
339 
340  if( use_full5x5_ ) {
341  calculateValues<noZS::EcalClusterLazyTools>(lazyTools.get(),
342  iEle,
343  iSetup,
344  sigmaIEtaIPhi,
345  eMax,
346  e2nd,
347  eTop,
348  eBottom,
349  eLeft,
350  eRight,
351  clusterMaxDR,
352  clusterMaxDRDPhi,
353  clusterMaxDRDEta,
354  clusterMaxDRRawEnergy,
355  clusterRawEnergy0,
356  clusterRawEnergy1,
357  clusterRawEnergy2,
358  clusterDPhiToSeed0,
359  clusterDPhiToSeed1,
360  clusterDPhiToSeed2,
361  clusterDEtaToSeed0,
362  clusterDEtaToSeed1,
363  clusterDEtaToSeed2,
364  eleIPhi,
365  eleIEta,
366  eleCryPhi,
367  eleCryEta);
368  } else {
369  calculateValues<EcalClusterLazyTools>(lazyTools.get(),
370  iEle,
371  iSetup,
372  sigmaIEtaIPhi,
373  eMax,
374  e2nd,
375  eTop,
376  eBottom,
377  eLeft,
378  eRight,
379  clusterMaxDR,
380  clusterMaxDRDPhi,
381  clusterMaxDRDEta,
382  clusterMaxDRRawEnergy,
383  clusterRawEnergy0,
384  clusterRawEnergy1,
385  clusterRawEnergy2,
386  clusterDPhiToSeed0,
387  clusterDPhiToSeed1,
388  clusterDPhiToSeed2,
389  clusterDEtaToSeed0,
390  clusterDEtaToSeed1,
391  clusterDEtaToSeed2,
392  eleIPhi,
393  eleIEta,
394  eleCryPhi,
395  eleCryEta);
396  }
397  }
398 
399  writeValueMap(iEvent, src, sigmaIEtaIPhi, sigmaIEtaIPhi_);
400  writeValueMap(iEvent, src, eMax ,eMax_);
401  writeValueMap(iEvent, src, e2nd ,e2nd_);
402  writeValueMap(iEvent, src, eTop ,eTop_);
403  writeValueMap(iEvent, src, eBottom ,eBottom_);
404  writeValueMap(iEvent, src, eLeft ,eLeft_);
405  writeValueMap(iEvent, src, eRight ,eRight_);
406  writeValueMap(iEvent, src, clusterMaxDR, clusterMaxDR_);
407  writeValueMap(iEvent, src, clusterMaxDRDPhi, clusterMaxDRDPhi_);
408  writeValueMap(iEvent, src, clusterMaxDRDEta, clusterMaxDRDEta_);
409  writeValueMap(iEvent, src, clusterMaxDRRawEnergy,clusterMaxDRRawEnergy_);
410  writeValueMap(iEvent, src, clusterRawEnergy0, clusterRawEnergy0_);
411  writeValueMap(iEvent, src, clusterRawEnergy1, clusterRawEnergy1_);
412  writeValueMap(iEvent, src, clusterRawEnergy2, clusterRawEnergy2_);
413  writeValueMap(iEvent, src, clusterDPhiToSeed0, clusterDPhiToSeed0_);
414  writeValueMap(iEvent, src, clusterDPhiToSeed1, clusterDPhiToSeed1_);
415  writeValueMap(iEvent, src, clusterDPhiToSeed2, clusterDPhiToSeed2_);
416  writeValueMap(iEvent, src, clusterDEtaToSeed0, clusterDEtaToSeed0_);
417  writeValueMap(iEvent, src, clusterDEtaToSeed1, clusterDEtaToSeed1_);
418  writeValueMap(iEvent, src, clusterDEtaToSeed2, clusterDEtaToSeed2_);
419  writeValueMap(iEvent, src, eleIPhi ,eleIPhi_);
420  writeValueMap(iEvent, src, eleIEta ,eleIEta_);
421  writeValueMap(iEvent, src, eleCryPhi ,eleCryPhi_);
422  writeValueMap(iEvent, src, eleCryEta ,eleCryEta_);
423  lazyTools.reset();
424 }
edm::EDGetTokenT< EcalRecHitCollection > eeReducedRecHitCollection_
int i
Definition: DBlmapReader.cc:9
EcalClusterLazyToolsT<::EcalClusterTools > EcalClusterLazyTools
edm::EDGetTokenT< EcalRecHitCollection > esReducedRecHitCollection_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:449
edm::EDGetTokenT< EcalRecHitCollection > esReducedRecHitCollectionMiniAOD_
edm::EDGetTokenT< EcalRecHitCollection > ebReducedRecHitCollection_
edm::EDGetTokenT< EcalRecHitCollection > eeReducedRecHitCollectionMiniAOD_
void writeValueMap(edm::Event &iEvent, const edm::Handle< edm::View< reco::GsfElectron > > &handle, const std::vector< float > &values, const std::string &label) const
std::unique_ptr< EcalClusterLazyToolsBase > lazyTools
edm::EDGetTokenT< EcalRecHitCollection > ebReducedRecHitCollectionMiniAOD_
void ElectronRegressionValueMapProducer::writeValueMap ( edm::Event iEvent,
const edm::Handle< edm::View< reco::GsfElectron > > &  handle,
const std::vector< float > &  values,
const std::string &  label 
) const
private

Definition at line 426 of file ElectronRegressionValueMapProducer.cc.

References edm::helper::Filler< Map >::fill(), patZpeak::handle, edm::helper::Filler< Map >::insert(), and edm::Event::put().

Referenced by produce().

430 {
431  using namespace edm;
432  using namespace std;
433  auto_ptr<ValueMap<float> > valMap(new ValueMap<float>());
434  edm::ValueMap<float>::Filler filler(*valMap);
435  filler.insert(handle, values.begin(), values.end());
436  filler.fill();
437  iEvent.put(valMap, label);
438 }
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:113
void ElectronRegressionValueMapProducer::writeValueMap ( edm::Event iEvent,
const edm::Handle< edm::View< reco::GsfElectron > > &  handle,
const std::vector< int > &  values,
const std::string &  label 
) const
private

Definition at line 440 of file ElectronRegressionValueMapProducer.cc.

References edm::helper::Filler< Map >::fill(), patZpeak::handle, edm::helper::Filler< Map >::insert(), and edm::Event::put().

444 {
445  using namespace edm;
446  using namespace std;
447  auto_ptr<ValueMap<int> > valMap(new ValueMap<int>());
448  edm::ValueMap<int>::Filler filler(*valMap);
449  filler.insert(handle, values.begin(), values.end());
450  filler.fill();
451  iEvent.put(valMap, label);
452 }
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:113

Member Data Documentation

edm::EDGetTokenT<EcalRecHitCollection> ElectronRegressionValueMapProducer::ebReducedRecHitCollection_
private
edm::EDGetTokenT<EcalRecHitCollection> ElectronRegressionValueMapProducer::ebReducedRecHitCollectionMiniAOD_
private
edm::EDGetTokenT<EcalRecHitCollection> ElectronRegressionValueMapProducer::eeReducedRecHitCollection_
private
edm::EDGetTokenT<EcalRecHitCollection> ElectronRegressionValueMapProducer::eeReducedRecHitCollectionMiniAOD_
private
edm::EDGetTokenT<EcalRecHitCollection> ElectronRegressionValueMapProducer::esReducedRecHitCollection_
private
edm::EDGetTokenT<EcalRecHitCollection> ElectronRegressionValueMapProducer::esReducedRecHitCollectionMiniAOD_
private
std::unique_ptr<EcalClusterLazyToolsBase> ElectronRegressionValueMapProducer::lazyTools
private

Definition at line 74 of file ElectronRegressionValueMapProducer.cc.

Referenced by produce().

edm::EDGetToken ElectronRegressionValueMapProducer::src_
private
edm::EDGetToken ElectronRegressionValueMapProducer::srcMiniAOD_
private
const bool ElectronRegressionValueMapProducer::use_full5x5_
private

Definition at line 88 of file ElectronRegressionValueMapProducer.cc.

Referenced by produce().