CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/SimGeneral/MixingModule/interface/DigiAccumulatorMixModFactory.h

Go to the documentation of this file.
00001 #ifndef SimGeneral_MixingModule_DigiAccumulatorMixModFactory_h
00002 #define SimGeneral_MixingModule_DigiAccumulatorMixModFactory_h
00003 
00004 #include "FWCore/PluginManager/interface/PluginFactory.h"
00005 #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixMod.h"
00006 
00007 namespace edm {
00008   class EDProducer;
00009   class ParameterSet;
00010 
00011   typedef DigiAccumulatorMixMod*(DAFunc)(ParameterSet const&, EDProducer&);
00012   typedef edmplugin::PluginFactory<DAFunc> DigiAccumulatorMixModPluginFactory;
00013 
00014   class DigiAccumulatorMixModFactory {
00015   public:
00016     ~DigiAccumulatorMixModFactory();
00017 
00018     static DigiAccumulatorMixModFactory* get();
00019 
00020     std::auto_ptr<DigiAccumulatorMixMod>
00021       makeDigiAccumulator(ParameterSet const&, EDProducer&) const;
00022 
00023   private:
00024     DigiAccumulatorMixModFactory();
00025     static DigiAccumulatorMixModFactory singleInstance_;
00026   };
00027 }
00028 
00029 #define DEFINE_DIGI_ACCUMULATOR(type) \
00030   DEFINE_EDM_PLUGIN (edm::DigiAccumulatorMixModPluginFactory,type,#type)
00031   //DEFINE_EDM_PLUGIN (edm::DigiAccumulatorMixModPluginFactory,type,#type); DEFINE_FWK_PSET_DESC_FILLER(type)
00032 
00033 #endif
00034