File indexing completed on 2024-04-06 12:30:39
0001
0002 #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixModFactory.h"
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 #include "FWCore/Utilities/interface/DebugMacros.h"
0005 #include "FWCore/Utilities/interface/EDMException.h"
0006
0007 #include <iostream>
0008
0009 EDM_REGISTER_PLUGINFACTORY(edm::DigiAccumulatorMixModPluginFactory, "DigiAccumulator");
0010
0011 namespace edm {
0012 DigiAccumulatorMixModFactory::~DigiAccumulatorMixModFactory() {}
0013
0014 DigiAccumulatorMixModFactory::DigiAccumulatorMixModFactory() {}
0015
0016 DigiAccumulatorMixModFactory const DigiAccumulatorMixModFactory::singleInstance_;
0017
0018 DigiAccumulatorMixModFactory const* DigiAccumulatorMixModFactory::get() {
0019
0020
0021
0022
0023 return &singleInstance_;
0024 }
0025
0026 std::unique_ptr<DigiAccumulatorMixMod> DigiAccumulatorMixModFactory::makeDigiAccumulator(
0027 ParameterSet const& conf, ProducesCollector producesCollector, ConsumesCollector& iC) const {
0028 std::string accumulatorType = conf.getParameter<std::string>("accumulatorType");
0029 FDEBUG(1) << "DigiAccumulatorMixModFactory: digi_accumulator_type = " << accumulatorType << std::endl;
0030 auto wm = DigiAccumulatorMixModPluginFactory::get()->create(accumulatorType, conf, producesCollector, iC);
0031
0032 if (wm.get() == nullptr) {
0033 throw edm::Exception(errors::Configuration, "NoSourceModule")
0034 << "DigiAccumulator Factory:\n"
0035 << "Cannot find dig type from ParameterSet: " << accumulatorType << "\n"
0036 << "Perhaps your source type is misspelled or is not an EDM Plugin?\n"
0037 << "Try running EdmPluginDump to obtain a list of available Plugins.";
0038 }
0039
0040 FDEBUG(1) << "DigiAccumulatorMixModFactory: created a Digi Accumulator " << accumulatorType << std::endl;
0041
0042 return wm;
0043 }
0044 }