23 namespace eventsetup {
26 unsigned subProcessIndex,
28 tbb::task_arena* taskArena) {
29 std::vector<std::string> prefers = params.
getParameter<std::vector<std::string> >(
"@all_esprefers");
31 if (prefers.empty()) {
32 return std::make_unique<EventSetupProvider>(activityRegistry, taskArena, subProcessIndex);
43 for (std::vector<std::string>::iterator itName = prefers.begin(), itNameEnd = prefers.end(); itName != itNameEnd;
48 for (std::vector<std::string>::iterator itRecordName = recordNames.begin(), itRecordNameEnd = recordNames.end();
49 itRecordName != itRecordNameEnd;
51 if ((*itRecordName)[0] ==
'@') {
58 std::vector<std::string> dataInfo = preferPSet.
getParameter<std::vector<std::string> >(*itRecordName);
60 if (dataInfo.empty()) {
63 <<
"The record named " << *itRecordName <<
" specifies no data items";
66 for (std::vector<std::string>::iterator itDatum = dataInfo.begin(), itDatumEnd = dataInfo.end();
67 itDatum != itDatumEnd;
69 std::string datumName(*itDatum, 0, itDatum->find_first_of(
"/"));
72 if (itDatum->size() != datumName.size()) {
73 labelName =
std::string(*itDatum, datumName.size() + 1);
75 recordToData.insert(std::make_pair(
std::string(*itRecordName), std::make_pair(datumName, labelName)));
79 theError <<
"While parsing the es_prefer statement for type="
82 theError.
append(iException);
88 false)] = recordToData;
90 return std::make_unique<EventSetupProvider>(activityRegistry, taskArena, subProcessIndex, &preferInfo);
95 std::vector<std::string> providers = params.
getParameter<std::vector<std::string> >(
"@all_esmodules");
97 for (std::vector<std::string>::iterator itName = providers.begin(), itNameEnd = providers.end();
106 std::vector<std::string> sources = params.
getParameter<std::vector<std::string> >(
"@all_essources");
108 for (std::vector<std::string>::iterator itName = sources.begin(), itNameEnd = sources.end(); itName != itNameEnd;
129 moduleLabel = modtype;
132 std::unique_ptr<ParameterSetDescriptionFillerBase> filler(
135 filler->fill(descriptions);
139 std::ostringstream ost;
140 ost <<
"Validating configuration of ESProducer or ESSource of type " << modtype <<
" with label: '"
141 << moduleLabel <<
"'";
void append(Exception const &another)
std::multimap< RecordName, DataKeyInfo > RecordToDataMap
std::unique_ptr< EventSetupProvider > makeEventSetupProvider(ParameterSet const ¶ms, unsigned subProcessIndex, ActivityRegistry *activityRegistry, tbb::task_arena *taskArena)
std::map< ComponentDescription, RecordToDataMap > PreferredProviderInfo
void validateEventSetupParameters(ParameterSet &pset)
void fillEventSetupProvider(EventSetupsController &esController, EventSetupProvider &cp, ParameterSet ¶ms)
std::vector< std::string > getParameterNames() const
ParameterSet const & getParameterSet(std::string const &) const
T getParameter(std::string const &) const
void addContext(std::string const &context)
static ComponentFactory< T > const * get()
auto wrap(F iFunc) -> decltype(iFunc())
ParameterSet const & registerIt()
ParameterSet * getPSetForUpdate(std::string const &name, bool &isTracked)