CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingAlgorithms.h

Go to the documentation of this file.
00001 #ifndef RecoLocalTracker_SiStripZeroSuppression_SiStripRawProcessingAlgorithms_h
00002 #define RecoLocalTracker_SiStripZeroSuppression_SiStripRawProcessingAlgorithms_h
00003 
00004 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripPedestalsSubtractor.h"
00005 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripCommonModeNoiseSubtractor.h"
00006 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripFedZeroSuppression.h"
00007 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripAPVRestorer.h"
00008 
00009 struct SiStripRawProcessingAlgorithms {
00010   friend class SiStripRawProcessingFactory;
00011 
00012   const std::auto_ptr<SiStripPedestalsSubtractor> subtractorPed;
00013   const std::auto_ptr<SiStripCommonModeNoiseSubtractor> subtractorCMN;
00014   const std::auto_ptr<SiStripFedZeroSuppression> suppressor;
00015   const std::auto_ptr<SiStripAPVRestorer> restorer;
00016 
00017   void initialize(const edm::EventSetup& es) {
00018     subtractorPed->init(es);
00019     subtractorCMN->init(es);
00020     suppressor->init(es);
00021     if(restorer.get()) restorer->init(es);
00022   } 
00023 
00024   private:
00025   SiStripRawProcessingAlgorithms(std::auto_ptr<SiStripPedestalsSubtractor> ped,
00026                                  std::auto_ptr<SiStripCommonModeNoiseSubtractor> cmn,
00027                                  std::auto_ptr<SiStripFedZeroSuppression> zs,
00028                                  std::auto_ptr<SiStripAPVRestorer> res) 
00029     :  subtractorPed(ped),
00030        subtractorCMN(cmn),
00031        suppressor(zs),
00032        restorer(res)
00033   {}
00034 };
00035 #endif