CMS 3D CMS Logo

HcalSimpleAmplitudeZS Class Reference

Date
2007/09/13 15:02:50
Revision
1.2
More...

#include <SimCalorimetry/HcalZeroSuppressionProducers/src/HcalSimpleAmplitudeZS.h>

Inheritance diagram for HcalSimpleAmplitudeZS:

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

List of all members.

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< HcalZSAlgoEnergyhbhe_
std::auto_ptr< HcalZSAlgoEnergyhf_
std::auto_ptr< HcalZSAlgoEnergyho_
edm::InputTag inputLabel_


Detailed Description

Date
2007/09/13 15:02:50
Revision
1.2

Author:
J. Mans - Minnesota

Definition at line 20 of file HcalSimpleAmplitudeZS.h.


Constructor & Destructor Documentation

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]

Definition at line 75 of file HcalSimpleAmplitudeZS.cc.

00075                                               {
00076 }


Member Function Documentation

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 }


Member Data Documentation

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().

edm::InputTag HcalSimpleAmplitudeZS::inputLabel_ [private]

Definition at line 27 of file HcalSimpleAmplitudeZS.h.

Referenced by produce().


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