File indexing completed on 2024-04-06 12:12:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "FWCore/Framework/interface/ModuleFactory.h"
0017 #include "FWCore/Framework/interface/EventSetupProvider.h"
0018 #include "FWCore/Framework/interface/EventSetupsController.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h"
0020
0021
0022
0023
0024 namespace edm {
0025 namespace eventsetup {
0026
0027
0028
0029
0030 std::string ModuleMakerTraits::name() { return "CMS EDM Framework ESModule"; }
0031 std::string const& ModuleMakerTraits::baseType() { return ParameterSetDescriptionFillerBase::kBaseForESProducer; }
0032 void ModuleMakerTraits::addTo(EventSetupProvider& iProvider,
0033 std::shared_ptr<ESProductResolverProvider> iComponent,
0034 ParameterSet const&,
0035 bool) {
0036 iProvider.add(iComponent);
0037 }
0038
0039 void ModuleMakerTraits::replaceExisting(EventSetupProvider& iProvider,
0040 std::shared_ptr<ESProductResolverProvider> iComponent) {
0041 iProvider.replaceExisting(iComponent);
0042 }
0043
0044 std::shared_ptr<ModuleMakerTraits::base_type> ModuleMakerTraits::getComponentAndRegisterProcess(
0045 EventSetupsController& esController, ParameterSet const& iConfiguration) {
0046 return esController.getESProducerAndRegisterProcess(iConfiguration, esController.indexOfNextProcess());
0047 }
0048
0049 void ModuleMakerTraits::putComponent(EventSetupsController& esController,
0050 ParameterSet& iConfiguration,
0051 std::shared_ptr<base_type> const& component) {
0052 esController.putESProducer(iConfiguration, component, esController.indexOfNextProcess());
0053 }
0054 }
0055 }
0056 COMPONENTFACTORY_GET(edm::eventsetup::ModuleMakerTraits);