CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

reco::HcalHaloDataProducer Class Reference

#include <HcalHaloDataProducer.h>

Inheritance diagram for reco::HcalHaloDataProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 HcalHaloDataProducer (const edm::ParameterSet &)
 ~HcalHaloDataProducer ()

Private Member Functions

virtual void produce (edm::Event &, const edm::EventSetup &) override

Private Attributes

float HBRecHitEnergyThreshold
float HERecHitEnergyThreshold
edm::InputTag IT_HBHERecHit
edm::InputTag IT_HFRecHit
edm::InputTag IT_HORecHit
int NHitsHcalThreshold
float SumHcalEnergyThreshold

Detailed Description

Definition at line 85 of file HcalHaloDataProducer.h.


Constructor & Destructor Documentation

HcalHaloDataProducer::HcalHaloDataProducer ( const edm::ParameterSet iConfig) [explicit]

Definition at line 14 of file HcalHaloDataProducer.cc.

References edm::ParameterSet::getParameter().

{
  //RecHit Level
  IT_HBHERecHit  = iConfig.getParameter<edm::InputTag>("HBHERecHitLabel");
  IT_HFRecHit    = iConfig.getParameter<edm::InputTag>("HFRecHitLabel");
  IT_HORecHit    = iConfig.getParameter<edm::InputTag>("HORecHitLabel");

  HBRecHitEnergyThreshold = (float)iConfig.getParameter<double>("HBRecHitEnergyThresholdParam");
  HERecHitEnergyThreshold = (float)iConfig.getParameter<double>("HERecHitEnergyThresholdParam");
  SumHcalEnergyThreshold = (float) iConfig.getParameter<double>("SumHcalEnergyThresholdParam");
  NHitsHcalThreshold =  iConfig.getParameter<int>("NHitsHcalThresholdParam");

  produces<HcalHaloData>();
}
HcalHaloDataProducer::~HcalHaloDataProducer ( )

Definition at line 62 of file HcalHaloDataProducer.cc.

{}

Member Function Documentation

void HcalHaloDataProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [override, private, virtual]

Implements edm::EDProducer.

Definition at line 29 of file HcalHaloDataProducer.cc.

References HcalHaloAlgo::Calculate(), edm::EventSetup::get(), edm::Event::getByLabel(), HcalHaloData_cfi::HcalHaloData, edm::ESHandleBase::isValid(), edm::HandleBase::isValid(), edm::Event::put(), HcalHaloAlgo::SetPhiWedgeThresholds(), and HcalHaloAlgo::SetRecHitEnergyThresholds().

{
  //Get CaloGeometry
  edm::ESHandle<CaloGeometry> TheCaloGeometry;
  iSetup.get<CaloGeometryRecord>().get(TheCaloGeometry);
  
  //Get HB/HE RecHits
  edm::Handle<HBHERecHitCollection> TheHBHERecHits;
  iEvent.getByLabel(IT_HBHERecHit, TheHBHERecHits);

  //Get HF RecHits
  edm::Handle<HFRecHitCollection> TheHFRecHits;
  iEvent.getByLabel(IT_HFRecHit, TheHFRecHits);

  // Run the HcalHaloAlgo to reconstruct the HcalHaloData object
  HcalHaloAlgo HcalAlgo;
  HcalAlgo.SetRecHitEnergyThresholds( HBRecHitEnergyThreshold, HERecHitEnergyThreshold );
  HcalAlgo.SetPhiWedgeThresholds( SumHcalEnergyThreshold, NHitsHcalThreshold );

  HcalHaloData HcalData;
  if( TheCaloGeometry.isValid() && TheHBHERecHits.isValid() )
    {
      std::auto_ptr<HcalHaloData> HcalData( new HcalHaloData( HcalAlgo.Calculate(*TheCaloGeometry, TheHBHERecHits)  ) ) ;
      iEvent.put ( HcalData ) ;
    }
  else 
    {
      std::auto_ptr<HcalHaloData> HcalData( new HcalHaloData() ) ;
      iEvent.put( HcalData ) ;
    }
  return;
}

Member Data Documentation

Definition at line 100 of file HcalHaloDataProducer.h.

Definition at line 101 of file HcalHaloDataProducer.h.

Definition at line 96 of file HcalHaloDataProducer.h.

Definition at line 98 of file HcalHaloDataProducer.h.

Definition at line 97 of file HcalHaloDataProducer.h.

Definition at line 103 of file HcalHaloDataProducer.h.

Definition at line 102 of file HcalHaloDataProducer.h.