Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:36

0001 #ifndef SimGeneral_MixingModule_DigiAccumulatorMixModFactory_h
0002 #define SimGeneral_MixingModule_DigiAccumulatorMixModFactory_h
0003 
0004 #include "FWCore/Framework/interface/ProducesCollector.h"
0005 #include "FWCore/PluginManager/interface/PluginFactory.h"
0006 #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixMod.h"
0007 
0008 namespace edm {
0009   class ConsumesCollector;
0010   class ParameterSet;
0011 
0012   typedef DigiAccumulatorMixMod*(DAFunc)(ParameterSet const&, ProducesCollector, ConsumesCollector&);
0013   typedef edmplugin::PluginFactory<DAFunc> DigiAccumulatorMixModPluginFactory;
0014 
0015   class DigiAccumulatorMixModFactory {
0016   public:
0017     ~DigiAccumulatorMixModFactory();
0018 
0019     static DigiAccumulatorMixModFactory const* get();
0020 
0021     std::unique_ptr<DigiAccumulatorMixMod> makeDigiAccumulator(ParameterSet const&,
0022                                                                ProducesCollector,
0023                                                                ConsumesCollector&) const;
0024 
0025   private:
0026     DigiAccumulatorMixModFactory();
0027     static DigiAccumulatorMixModFactory const singleInstance_;
0028   };
0029 }  // namespace edm
0030 
0031 #define DEFINE_DIGI_ACCUMULATOR(type) DEFINE_EDM_PLUGIN(edm::DigiAccumulatorMixModPluginFactory, type, #type)
0032 
0033 #endif