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