![]() |
![]() |
#include <SimCalorimetry/HcalZeroSuppressionProducers/src/HcalSimpleAmplitudeZS.h>
Public Member Functions | |
HcalSimpleAmplitudeZS (const edm::ParameterSet &ps) | |
virtual void | produce (edm::Event &e, const edm::EventSetup &c) |
virtual | ~HcalSimpleAmplitudeZS () |
Private Attributes | |
std::auto_ptr< HcalZSAlgoEnergy > | hbhe_ |
std::auto_ptr< HcalZSAlgoEnergy > | hf_ |
std::auto_ptr< HcalZSAlgoEnergy > | ho_ |
edm::InputTag | inputLabel_ |
Definition at line 20 of file HcalSimpleAmplitudeZS.h.
HcalSimpleAmplitudeZS::HcalSimpleAmplitudeZS | ( | const edm::ParameterSet & | ps | ) | [explicit] |
Definition at line 18 of file HcalSimpleAmplitudeZS.cc.
References edm::ParameterSet::getParameter(), hbhe_, hf_, ho_, mode, HcalZeroSuppressionAlgo::zs_AllDepthsOR, HcalZeroSuppressionAlgo::zs_SingleChannel, and HcalZeroSuppressionAlgo::zs_TriggerTowerOR.
00018 : 00019 inputLabel_(conf.getParameter<edm::InputTag>("digiLabel")) 00020 { 00021 const edm::ParameterSet& psHBHE=conf.getParameter<edm::ParameterSet>("hbhe"); 00022 int mode=psHBHE.getParameter<int>("mode"); 00023 HcalZeroSuppressionAlgo::ZSMode zmode; 00024 switch (mode) { 00025 case(0): zmode=HcalZeroSuppressionAlgo::zs_SingleChannel; break; 00026 case(1): zmode=HcalZeroSuppressionAlgo::zs_TriggerTowerOR; break; 00027 case(2): zmode=HcalZeroSuppressionAlgo::zs_AllDepthsOR; break; 00028 default: 00029 edm::LogWarning("Hcal") << "Unknown zero suppression mode " << mode << " for HBHE. Using single-channel mode."; 00030 zmode=HcalZeroSuppressionAlgo::zs_SingleChannel; 00031 } 00032 hbhe_=std::auto_ptr<HcalZSAlgoEnergy>(new HcalZSAlgoEnergy(zmode, 00033 psHBHE.getParameter<int>("level"), 00034 psHBHE.getParameter<int>("firstSample"), 00035 psHBHE.getParameter<int>("samplesToAdd"), 00036 psHBHE.getParameter<bool>("twoSided"))); 00037 produces<HBHEDigiCollection>(); 00038 00039 const edm::ParameterSet& psHO=conf.getParameter<edm::ParameterSet>("ho"); 00040 mode=psHO.getParameter<int>("mode"); 00041 switch (mode) { 00042 case(0): zmode=HcalZeroSuppressionAlgo::zs_SingleChannel; break; 00043 case(1): zmode=HcalZeroSuppressionAlgo::zs_TriggerTowerOR; break; 00044 case(2): zmode=HcalZeroSuppressionAlgo::zs_AllDepthsOR; break; 00045 default: 00046 edm::LogWarning("Hcal") << "Unknown zero suppression mode " << mode << " for HO. Using single-channel mode."; 00047 zmode=HcalZeroSuppressionAlgo::zs_SingleChannel; 00048 } 00049 ho_=std::auto_ptr<HcalZSAlgoEnergy>(new HcalZSAlgoEnergy(zmode, 00050 psHO.getParameter<int>("level"), 00051 psHO.getParameter<int>("firstSample"), 00052 psHO.getParameter<int>("samplesToAdd"), 00053 psHO.getParameter<bool>("twoSided"))); 00054 produces<HODigiCollection>(); 00055 00056 const edm::ParameterSet& psHF=conf.getParameter<edm::ParameterSet>("hf"); 00057 mode=psHF.getParameter<int>("mode"); 00058 switch (mode) { 00059 case(0): zmode=HcalZeroSuppressionAlgo::zs_SingleChannel; break; 00060 case(1): zmode=HcalZeroSuppressionAlgo::zs_TriggerTowerOR; break; 00061 case(2): zmode=HcalZeroSuppressionAlgo::zs_AllDepthsOR; break; 00062 default: 00063 edm::LogWarning("Hcal") << "Unknown zero suppression mode " << mode << " for HF. Using single-channel mode."; 00064 zmode=HcalZeroSuppressionAlgo::zs_SingleChannel; 00065 } 00066 hf_=std::auto_ptr<HcalZSAlgoEnergy>(new HcalZSAlgoEnergy(zmode, 00067 psHF.getParameter<int>("level"), 00068 psHF.getParameter<int>("firstSample"), 00069 psHF.getParameter<int>("samplesToAdd"), 00070 psHF.getParameter<bool>("twoSided"))); 00071 produces<HFDigiCollection>(); 00072 00073 }
HcalSimpleAmplitudeZS::~HcalSimpleAmplitudeZS | ( | ) | [virtual] |
void HcalSimpleAmplitudeZS::produce | ( | edm::Event & | e, | |
const edm::EventSetup & | c | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 78 of file HcalSimpleAmplitudeZS.cc.
References edm::EventSetup::get(), edm::Event::getByLabel(), hbhe_, hf_, ho_, inputLabel_, edm::Handle< T >::product(), and edm::Event::put().
00079 { 00080 // get conditions 00081 edm::ESHandle<HcalDbService> conditions; 00082 eventSetup.get<HcalDbRecord>().get(conditions); 00083 00084 00085 { 00086 hbhe_->prepare(&(*conditions)); 00087 edm::Handle<HBHEDigiCollection> digi; 00088 e.getByLabel(inputLabel_,digi); 00089 00090 // create empty output 00091 std::auto_ptr<HBHEDigiCollection> zs(new HBHEDigiCollection); 00092 // run the algorithm 00093 hbhe_->suppress(*(digi.product()),*zs); 00094 00095 edm::LogInfo("HcalZeroSuppression") << "Suppression (HBHE) input " << digi->size() << " digis, output " << zs->size() << " digis"; 00096 00097 // return result 00098 e.put(zs); 00099 hbhe_->done(); 00100 } 00101 { 00102 ho_->prepare(&(*conditions)); 00103 edm::Handle<HODigiCollection> digi; 00104 e.getByLabel(inputLabel_,digi); 00105 00106 // create empty output 00107 std::auto_ptr<HODigiCollection> zs(new HODigiCollection); 00108 // run the algorithm 00109 ho_->suppress(*(digi.product()),*zs); 00110 00111 edm::LogInfo("HcalZeroSuppression") << "Suppression (HO) input " << digi->size() << " digis, output " << zs->size() << " digis"; 00112 00113 // return result 00114 e.put(zs); 00115 ho_->done(); 00116 } 00117 { 00118 hf_->prepare(&(*conditions)); 00119 edm::Handle<HFDigiCollection> digi; 00120 e.getByLabel(inputLabel_,digi); 00121 00122 // create empty output 00123 std::auto_ptr<HFDigiCollection> zs(new HFDigiCollection); 00124 // run the algorithm 00125 hf_->suppress(*(digi.product()),*zs); 00126 00127 edm::LogInfo("HcalZeroSuppression") << "Suppression (HF) input " << digi->size() << " digis, output " << zs->size() << " digis"; 00128 00129 // return result 00130 e.put(zs); 00131 hf_->done(); 00132 } 00133 00134 }
std::auto_ptr<HcalZSAlgoEnergy> HcalSimpleAmplitudeZS::hbhe_ [private] |
Definition at line 26 of file HcalSimpleAmplitudeZS.h.
Referenced by HcalSimpleAmplitudeZS(), and produce().
std::auto_ptr<HcalZSAlgoEnergy> HcalSimpleAmplitudeZS::hf_ [private] |
Definition at line 26 of file HcalSimpleAmplitudeZS.h.
Referenced by HcalSimpleAmplitudeZS(), and produce().
std::auto_ptr<HcalZSAlgoEnergy> HcalSimpleAmplitudeZS::ho_ [private] |
Definition at line 26 of file HcalSimpleAmplitudeZS.h.
Referenced by HcalSimpleAmplitudeZS(), and produce().