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

List of all members.

Public Member Functions

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

Private Member Functions

virtual void beginJob ()
virtual void beginRun (edm::Run &, const edm::EventSetup &)
virtual void endJob ()
virtual void endRun (edm::Run &, const edm::EventSetup &)
virtual void produce (edm::Event &, const edm::EventSetup &)

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 66 of file HcalHaloDataProducer.cc.

{}

Member Function Documentation

void HcalHaloDataProducer::beginJob ( void  ) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 62 of file HcalHaloDataProducer.cc.

{return;}
void HcalHaloDataProducer::beginRun ( edm::Run ,
const edm::EventSetup  
) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 64 of file HcalHaloDataProducer.cc.

{return;}
void HcalHaloDataProducer::endJob ( void  ) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 63 of file HcalHaloDataProducer.cc.

{return;}
void HcalHaloDataProducer::endRun ( edm::Run ,
const edm::EventSetup  
) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 65 of file HcalHaloDataProducer.cc.

{return;}
void HcalHaloDataProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [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 104 of file HcalHaloDataProducer.h.

Definition at line 105 of file HcalHaloDataProducer.h.

Definition at line 100 of file HcalHaloDataProducer.h.

Definition at line 102 of file HcalHaloDataProducer.h.

Definition at line 101 of file HcalHaloDataProducer.h.

Definition at line 107 of file HcalHaloDataProducer.h.

Definition at line 106 of file HcalHaloDataProducer.h.