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 }
0030
0031 #define DEFINE_DIGI_ACCUMULATOR(type) DEFINE_EDM_PLUGIN(edm::DigiAccumulatorMixModPluginFactory, type, #type)
0032
0033 #endif