#include <SimCalorimetry/EcalZeroSuppressionProducers/interface/ESZeroSuppressionProducer.h>
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 | |
ESRecHitSimAlgo * | algo_ |
std::string | digiProducer_ |
int | ESBaseline |
std::string | ESdigiCollection_ |
int | ESGain |
double | ESMIPADC |
double | ESMIPkeV |
double | ESNoiseSigma |
double | ESThreshold |
std::string | ESZSdigiCollection_ |
Definition at line 18 of file ESZeroSuppressionProducer.h.
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 }
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 }
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().