CMS 3D CMS Logo

ESZeroSuppressionProducer Class Reference

#include <SimCalorimetry/EcalZeroSuppressionProducers/interface/ESZeroSuppressionProducer.h>

Inheritance diagram for ESZeroSuppressionProducer:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 ESZeroSuppressionProducer (const edm::ParameterSet &ps)
virtual void produce (edm::Event &event, const edm::EventSetup &eventSetup)
 Produces the EDM products,.
virtual ~ESZeroSuppressionProducer ()

Private Attributes

ESRecHitSimAlgoalgo_
std::string digiProducer_
int ESBaseline
std::string ESdigiCollection_
int ESGain
double ESMIPADC
double ESMIPkeV
double ESNoiseSigma
double ESThreshold
std::string ESZSdigiCollection_


Detailed Description

Definition at line 18 of file ESZeroSuppressionProducer.h.


Constructor & Destructor Documentation

ESZeroSuppressionProducer::ESZeroSuppressionProducer ( const edm::ParameterSet ps  )  [explicit]

Definition at line 4 of file ESZeroSuppressionProducer.cc.

References algo_, digiProducer_, ESBaseline, ESdigiCollection_, ESGain, ESMIPADC, ESMIPkeV, ESNoiseSigma, ESThreshold, ESZSdigiCollection_, edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

00005 {
00006   digiProducer_   = ps.getParameter<std::string>("digiProducer");
00007   ESdigiCollection_ = ps.getParameter<std::string>("ESdigiCollection");
00008   ESZSdigiCollection_ = ps.getParameter<std::string>("ESZSdigiCollection");
00009  
00010   ESGain = ps.getUntrackedParameter<int>("ESGain", 1);
00011   ESBaseline = ps.getUntrackedParameter<int>("ESBaseline", 1000);
00012   ESMIPADC = ps.getUntrackedParameter<double>("ESMIPADC", 9);
00013   ESMIPkeV = ps.getUntrackedParameter<double>("ESMIPkeV", 81.08);
00014   ESNoiseSigma = ps.getUntrackedParameter<double>("ESNoiseSigma", 3);
00015 
00016   if (ESGain == 0)
00017     ESThreshold = 3.*1.45*ESNoiseSigma*ESMIPkeV/ESMIPADC/1000000.;
00018   else if (ESGain == 1)
00019     ESThreshold = 3.*0.9066*ESNoiseSigma*ESMIPkeV/ESMIPADC/1000000.;
00020   else if (ESGain == 2)
00021     ESThreshold = 3.*0.8815*ESNoiseSigma*ESMIPkeV/ESMIPADC/1000000.;
00022 
00023   algo_ = new ESRecHitSimAlgo(ESGain, ESBaseline, ESMIPADC, ESMIPkeV);
00024 
00025   produces<ESDigiCollection>(ESZSdigiCollection_);
00026 }

ESZeroSuppressionProducer::~ESZeroSuppressionProducer (  )  [virtual]

Definition at line 28 of file ESZeroSuppressionProducer.cc.

References algo_.

00029 { 
00030   delete algo_;
00031 }


Member Function Documentation

void ESZeroSuppressionProducer::produce ( edm::Event event,
const edm::EventSetup eventSetup 
) [virtual]

Produces the EDM products,.

Implements edm::EDProducer.

Definition at line 33 of file ESZeroSuppressionProducer.cc.

References algo_, digiProducer_, ESdigiCollection_, ESThreshold, ESZSdigiCollection_, ESRecHitSimAlgo::EvalAmplitude(), i, and edm::Handle< T >::isValid().

00034 {
00035   edm::Handle<ESDigiCollection> ESDigis;
00036 
00037   bool fullESDigis = true;
00038   event.getByLabel(digiProducer_, ESDigis);
00039   if (!ESDigis.isValid()) {
00040     edm::LogError("ZeroSuppressionError") << "Error! can't get the product " << ESdigiCollection_.c_str() ;
00041     fullESDigis = false;
00042   }  
00043 
00044   std::auto_ptr<ESDigiCollection> ESZSDigis(new ESDigiCollection());
00045   
00046   if (fullESDigis) {
00047     ESDigiCollection::const_iterator i;
00048     for (i=ESDigis->begin(); i!=ESDigis->end(); i++) {            
00049       if (algo_->EvalAmplitude(*i) > ESThreshold) (*ESZSDigis).push_back(*i);
00050     }
00051   }     
00052   
00053   event.put(ESZSDigis, ESZSdigiCollection_);  
00054 }


Member Data Documentation

ESRecHitSimAlgo* ESZeroSuppressionProducer::algo_ [private]

Definition at line 35 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer(), produce(), and ~ESZeroSuppressionProducer().

std::string ESZeroSuppressionProducer::digiProducer_ [private]

Definition at line 31 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer(), and produce().

int ESZeroSuppressionProducer::ESBaseline [private]

Definition at line 38 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer().

std::string ESZeroSuppressionProducer::ESdigiCollection_ [private]

Definition at line 32 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer(), and produce().

int ESZeroSuppressionProducer::ESGain [private]

Definition at line 37 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer().

double ESZeroSuppressionProducer::ESMIPADC [private]

Definition at line 39 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer().

double ESZeroSuppressionProducer::ESMIPkeV [private]

Definition at line 40 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer().

double ESZeroSuppressionProducer::ESNoiseSigma [private]

Definition at line 41 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer().

double ESZeroSuppressionProducer::ESThreshold [private]

Definition at line 42 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer(), and produce().

std::string ESZeroSuppressionProducer::ESZSdigiCollection_ [private]

Definition at line 33 of file ESZeroSuppressionProducer.h.

Referenced by ESZeroSuppressionProducer(), and produce().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:26 2009 for CMSSW by  doxygen 1.5.4