typedef NameTag edm::eventsetup::IdTags |
Definition at line 52 of file DataKeyTags.h.
typedef Providers::iterator edm::eventsetup::Itr |
Definition at line 351 of file EventSetupProvider.cc.
Definition at line 102 of file LooperFactory.h.
typedef edmplugin::PluginFactory<edm::eventsetup::ComponentMakerBase<LooperMakerTraits>* ()> edm::eventsetup::LooperPluginFactory |
Definition at line 104 of file LooperFactory.h.
Definition at line 51 of file ModuleFactory.h.
typedef edmplugin::PluginFactory<edm::eventsetup::ComponentMakerBase<ModuleMakerTraits>* ()> edm::eventsetup::ModulePluginFactory |
Definition at line 52 of file ModuleFactory.h.
typedef std::map< EventSetupRecordKey, boost::shared_ptr< EventSetupRecordProvider > > edm::eventsetup::Providers |
Definition at line 101 of file EventSetupProvider.cc.
typedef std::map< DataKey , const DataProxy* > edm::eventsetup::Proxies |
Definition at line 32 of file EventSetupRecord.cc.
typedef std::map<EventSetupRecordKey, EventSetupRecordProvider::DataToPreferredProviderMap> edm::eventsetup::RecordToPreferred |
Definition at line 102 of file EventSetupProvider.cc.
Definition at line 76 of file SourceFactory.h.
typedef edmplugin::PluginFactory<edm::eventsetup::ComponentMakerBase<edm::eventsetup::SourceMakerTraits>* ()> edm::eventsetup::SourcePluginFactory |
Definition at line 78 of file SourceFactory.h.
Definition at line 31 of file DataKeyTags.h.
void edm::eventsetup::addProviderTo | ( | EventSetupProvider & | iProvider, |
boost::shared_ptr< T > | iComponent, | ||
const DataProxyProvider * | |||
) |
Definition at line 41 of file SourceFactory.h.
References edm::eventsetup::EventSetupProvider::add(), idDealer::description, and edm::eventsetup::ComponentDescription::isSource_.
Referenced by edm::eventsetup::SourceMakerTraits::addTo(), and edm::eventsetup::LooperMakerTraits::addTo().
{ boost::shared_ptr<DataProxyProvider> pProvider(iComponent); ComponentDescription description = pProvider->description(); description.isSource_=true; pProvider->setDescription(description); iProvider.add(pProvider); }
void edm::eventsetup::addProviderTo | ( | EventSetupProvider & | , |
boost::shared_ptr< T > | , | ||
const void * | |||
) |
Definition at line 50 of file SourceFactory.h.
{
//do nothing
}
void edm::eventsetup::addRecordToDependencies | ( | const T * | , |
const T * | , | ||
std::set< EventSetupRecordKey > & | |||
) |
Definition at line 39 of file EventSetupRecordProviderTemplate.h.
Referenced by addRecordToDependencies(), and edm::eventsetup::FindDependenciesFromDependentRecord< T >::dependentRecords().
{ }
void edm::eventsetup::addRecordToDependencies | ( | const TFirst * | , |
const TEnd * | iEnd, | ||
std::set< EventSetupRecordKey > & | oSet | ||
) |
Definition at line 45 of file EventSetupRecordProviderTemplate.h.
References addRecordToDependencies(), and edm::eventsetup::EventSetupRecordKey::makeKey().
{ oSet.insert(EventSetupRecordKey::makeKey<typename boost::mpl::deref<TFirst>::type>()); const typename boost::mpl::next< TFirst >::type * next(0); addRecordToDependencies(next, iEnd, oSet); }
void edm::eventsetup::copyFromTo | ( | FromT & | iFrom, |
ToT & | iTo | ||
) |
Definition at line 33 of file produce_helpers.h.
Referenced by edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::setData().
{ iTo = iFrom; }
ESPreFunctorDecorator<TRecord,DependsOnCaller<T,TRecord, TDependsOnRecord, DependsOnDoNothingCaller<TRecord> > > edm::eventsetup::createDecoratorFrom | ( | T * | iT, |
const TRecord * | iRec, | ||
const depends_on::OneHolder< T, TDependsOnRecord > & | iHolder | ||
) | [inline] |
Definition at line 168 of file eventsetup_dependsOn.h.
References createDependsOnCaller(), edm::eventsetup::depends_on::OneHolder< T, TDependsOnRecord >::holdee_, and groupFilesInBlocks::temp.
{ DependsOnDoNothingCaller<TRecord> tCaller; ESPreFunctorDecorator<TRecord,DependsOnCaller<T,TRecord, TDependsOnRecord, DependsOnDoNothingCaller<TRecord> > > temp(createDependsOnCaller(iT, iRec, iHolder.holdee_, tCaller)); return temp; }
const TDecorator& edm::eventsetup::createDecoratorFrom | ( | T * | , |
const TRecord * | , | ||
const TDecorator & | iDec | ||
) | [inline] |
Definition at line 93 of file ESProducer.h.
Referenced by edm::ESProducer::setWhatProduced().
{
return iDec;
}
ESPreFunctorDecorator<TRecord,typename depends_on::HolderToCaller<TRecord, depends_on::TwoHolder<T1, T2> >::Caller_t > edm::eventsetup::createDecoratorFrom | ( | T * | iT, |
const TRecord * | iRec, | ||
const depends_on::TwoHolder< T1, T2 > & | iHolder | ||
) | [inline] |
Definition at line 182 of file eventsetup_dependsOn.h.
References createDependsOnCaller(), edm::eventsetup::depends_on::TwoHolder< T, U >::h1_, edm::eventsetup::depends_on::TwoHolder< T, U >::h2_, and edm::eventsetup::depends_on::makeCaller().
{ return ESPreFunctorDecorator<TRecord, typename depends_on::HolderToCaller<TRecord,depends_on::TwoHolder< T1, T2> >::Caller_t > (createDependsOnCaller(iT, iRec, iHolder.h2_, makeCaller(iT, iRec, iHolder.h1_))); }
DependsOnCaller<T,TRecord, TDependsOnRecord, TCallerChain> edm::eventsetup::createDependsOnCaller | ( | T * | iCallee, |
const TRecord * | , | ||
void(T::*)(const TDependsOnRecord &) | iMethod, | ||
const TCallerChain & | iChain | ||
) |
Definition at line 90 of file eventsetup_dependsOn.h.
Referenced by createDecoratorFrom(), and edm::eventsetup::depends_on::makeCaller().
{
return DependsOnCaller<T,TRecord, TDependsOnRecord, TCallerChain>(iCallee, iMethod, iChain);
}
depends_on::TwoHolder<depends_on::OneHolder<T,T1>, T2> edm::eventsetup::dependsOn | ( | void(T::*)(const T1 &) | iT1, |
T2 | iT2 | ||
) |
Definition at line 195 of file eventsetup_dependsOn.h.
{ return depends_on::OneHolder<T, T1>(iT1) & iT2; }
depends_on::TwoHolder< depends_on::TwoHolder<depends_on::OneHolder<T,T1>, T2>, T3> edm::eventsetup::dependsOn | ( | void(T::*)(const T1 &) | iT1, |
T2 | iT2, | ||
T3 | iT3 | ||
) |
Definition at line 199 of file eventsetup_dependsOn.h.
{ return depends_on::OneHolder<T,T1>(iT1) & iT2 & iT3; }
depends_on::OneHolder<T,TDependsOnRecord> edm::eventsetup::dependsOn | ( | void(T::*)(const TDependsOnRecord &) | iT | ) |
Definition at line 191 of file eventsetup_dependsOn.h.
Referenced by CastorDbProducer::CastorDbProducer(), CSCGeometryESModule::CSCGeometryESModule(), DTGeometryESModule::DTGeometryESModule(), EcalElectronicsMappingBuilder::EcalElectronicsMappingBuilder(), EcalLaserCorrectionService::EcalLaserCorrectionService(), EcalNextToDeadChannelESProducer::EcalNextToDeadChannelESProducer(), EcalSeverityLevelESProducer::EcalSeverityLevelESProducer(), HcalDbProducer::HcalDbProducer(), HcalDDDGeometryEP::HcalDDDGeometryEP(), HcalHardcodeGeometryEP::HcalHardcodeGeometryEP(), HcalTPGCoderULUT::HcalTPGCoderULUT(), MuonNumberingInitialization::MuonNumberingInitialization(), and RPCConeBuilder::RPCConeBuilder().
{ return iT ; }
static RecordToPreferred edm::eventsetup::determinePreferred | ( | const EventSetupProvider::PreferredProviderInfo * | iInfo, |
const Providers & | iProviders | ||
) | [static] |
Definition at line 161 of file EventSetupProvider.cc.
References makeMuonMisalignmentScenario::components, Exception, edm::eventsetup::heterocontainer::HCTypeTag::findType(), edm::typelookup::findType(), first, preferEverything(), ecalTPGAnalyzer_cfg::recordName, and edm::eventsetup::EventSetupRecordKey::type().
Referenced by edm::eventsetup::EventSetupProvider::finishConfiguration().
{ using namespace edm::eventsetup; RecordToPreferred returnValue; if(0 != iInfo){ for(EventSetupProvider::PreferredProviderInfo::const_iterator itInfo = iInfo->begin(), itInfoEnd = iInfo->end(); itInfo != itInfoEnd; ++itInfo) { if(itInfo->second.empty()) { //want everything preferEverything(itInfo->first, iProviders, returnValue); } else { for(EventSetupProvider::RecordToDataMap::const_iterator itRecData = itInfo->second.begin(), itRecDataEnd = itInfo->second.end(); itRecData != itRecDataEnd; ++itRecData) { std::string recordName= itRecData->first; EventSetupRecordKey recordKey(eventsetup::EventSetupRecordKey::TypeTag::findType(recordName)); if(recordKey.type() == eventsetup::EventSetupRecordKey::TypeTag()) { throw cms::Exception("ESPreferUnknownRecord") <<"Unknown record \""<<recordName <<"\" used in es_prefer statement for type=" <<itInfo->first.type_<<" label=\""<<itInfo->first.label_ <<"\"\n Please check spelling."; //record not found } //See if the ProxyProvider provides something for this Record Providers::const_iterator itRecordProvider = iProviders.find(recordKey); assert(itRecordProvider != iProviders.end()); std::set<ComponentDescription> components = itRecordProvider->second->proxyProviderDescriptions(); std::set<ComponentDescription>::iterator itProxyProv = components.find(itInfo->first); if(itProxyProv == components.end()){ throw cms::Exception("ESPreferWrongRecord")<<"The type="<<itInfo->first.type_<<" label=\""<< itInfo->first.label_<<"\" does not provide data for the Record "<<recordName; } //Does it data type exist? eventsetup::TypeTag datumType = eventsetup::TypeTag::findType(itRecData->second.first); if(datumType == eventsetup::TypeTag()) { //not found throw cms::Exception("ESPreferWrongDataType")<<"The es_prefer statement for type="<<itInfo->first.type_<<" label=\""<< itInfo->first.label_<<"\" has the unknown data type \""<<itRecData->second.first<<"\"" <<"\n Please check spelling"; } eventsetup::DataKey datumKey(datumType, itRecData->second.second.c_str()); //Does the proxyprovider make this? boost::shared_ptr<DataProxyProvider> proxyProv = itRecordProvider->second->proxyProvider(*itProxyProv); const DataProxyProvider::KeyedProxies& keyedProxies = proxyProv->keyedProxies(recordKey); if(std::find_if(keyedProxies.begin(), keyedProxies.end(), boost::bind(std::equal_to<DataKey>(), datumKey, boost::bind(&DataProxyProvider::KeyedProxies::value_type::first,_1))) == keyedProxies.end()){ throw cms::Exception("ESPreferWrongData")<<"The es_prefer statement for type="<<itInfo->first.type_<<" label=\""<< itInfo->first.label_<<"\" specifies the data item \n" <<" type=\""<<itRecData->second.first<<"\" label=\""<<itRecData->second.second<<"\"" <<" which is not provided. Please check spelling."; } EventSetupRecordProvider::DataToPreferredProviderMap& dataToProviderMap =returnValue[recordKey]; //has another provider already been specified? if(dataToProviderMap.end() != dataToProviderMap.find(datumKey)) { EventSetupRecordProvider::DataToPreferredProviderMap::iterator itFind = dataToProviderMap.find(datumKey); throw cms::Exception("ESPreferConflict") <<"Two providers have been set to be preferred for\n" <<datumKey.type().name()<<" \""<<datumKey.name().value()<<"\"" <<"\n the providers are " <<"\n 1) type="<<itFind->second.type_<<" label=\""<<itFind->second.label_<<"\"" <<"\n 2) type="<<itProxyProv->type_<<" label=\""<<itProxyProv->label_<<"\"" <<"\nPlease modify configuration so only one is preferred"; } dataToProviderMap.insert(std::make_pair(datumKey,*itProxyProv)); } } } } return returnValue; }
static const ComponentDescription* edm::eventsetup::dummyDescription | ( | ) | [static] |
Definition at line 32 of file DataProxy.cc.
{ static ComponentDescription s_desc; return &s_desc; }
void edm::eventsetup::eventSetupGetImplementation | ( | EventSetup const & | , |
T const *& | |||
) |
Referenced by edm::EventSetup::get().
void edm::eventsetup::EventSetupRecord::get< fwliteeswriter::Handle > | ( | const std::string & | iName, |
fwliteeswriter::Handle & | iHolder | ||
) | const |
Definition at line 89 of file FWLiteESRecordWriterAnalyzer.cc.
References fwliteeswriter::DummyType::m_data, fwliteeswriter::DummyType::m_tag, lumiQTWidget::t, and relativeConstraints::value.
{ fwliteeswriter::DummyType t; t.m_tag = &(iHolder.m_info->m_tag); const fwliteeswriter::DummyType* value = &t; const ComponentDescription* desc = 0; this->getImplementation(value, iName.c_str(),desc,true); iHolder.m_data = t.m_data; iHolder.m_desc = desc; }
void edm::eventsetup::EventSetupRecord::getImplementation< fwliteeswriter::DummyType > | ( | fwliteeswriter::DummyType const *& | iData, |
const char * | iName, | ||
const ComponentDescription *& | iDesc, | ||
bool | iTransientAccessOnly | ||
) | const |
Definition at line 73 of file FWLiteESRecordWriterAnalyzer.cc.
References Exception, and edm::eventsetup::DataKey::kDoNotCopyMemory.
{ DataKey dataKey(*(iData->m_tag), iName, DataKey::kDoNotCopyMemory); const void* pValue = this->getFromProxy(dataKey,iDesc,iTransientAccessOnly); if(0==pValue) { throw cms::Exception("NoProxyException"); } iData->m_data = pValue; }
void edm::eventsetup::fillEventSetupProvider | ( | EventSetupsController & | esController, |
EventSetupProvider & | cp, | ||
ParameterSet & | params | ||
) |
Definition at line 104 of file EventSetupProviderMaker.cc.
References edm::eventsetup::ComponentFactory< T >::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getPSetForUpdate(), edm::ParameterSet::registerIt(), and validateEventSetupParameters().
Referenced by edm::eventsetup::EventSetupsController::makeProvider().
{ std::vector<std::string> providers = params.getParameter<std::vector<std::string> >("@all_esmodules"); for(std::vector<std::string>::iterator itName = providers.begin(), itNameEnd = providers.end(); itName != itNameEnd; ++itName) { ParameterSet* providerPSet = params.getPSetForUpdate(*itName); validateEventSetupParameters(*providerPSet); providerPSet->registerIt(); ModuleFactory::get()->addTo(esController, cp, *providerPSet); } std::vector<std::string> sources = params.getParameter<std::vector<std::string> >("@all_essources"); for(std::vector<std::string>::iterator itName = sources.begin(), itNameEnd = sources.end(); itName != itNameEnd; ++itName) { ParameterSet* providerPSet = params.getPSetForUpdate(*itName); validateEventSetupParameters(*providerPSet); providerPSet->registerIt(); SourceFactory::get()->addTo(esController, cp, *providerPSet); } }
std::set<EventSetupRecordKey> edm::eventsetup::findDependentRecordsFor | ( | ) |
Definition at line 71 of file EventSetupRecordProviderTemplate.h.
{ typedef typename boost::mpl::if_< typename boost::is_base_and_derived<edm::eventsetup::DependentRecordTag, T>::type, FindDependenciesFromDependentRecord<T>, NoDependenciesForRecord>::type DepFinder; std::set<EventSetupRecordKey> returnValue; DepFinder::dependentRecords(returnValue); return returnValue; }
static void edm::eventsetup::findDependents | ( | const EventSetupRecordKey & | iKey, |
Itr | itBegin, | ||
Itr | itEnd, | ||
std::vector< boost::shared_ptr< EventSetupRecordProvider > > & | oDependents | ||
) | [static] |
Definition at line 354 of file EventSetupProvider.cc.
Referenced by edm::eventsetup::EventSetupProvider::resetRecordPlusDependentRecords().
{ for(Itr it = itBegin; it != itEnd; ++it) { //does it depend on the record in question? const std::set<EventSetupRecordKey>& deps = it->second->dependentRecords(); if(deps.end() != deps.find(iKey)) { oDependents.push_back(it->second); //now see who is dependent on this record since they will be indirectly dependent on iKey findDependents(it->first, itBegin, itEnd, oDependents); } } }
void edm::eventsetup::insertProxy | ( | DataProxyProvider::KeyedProxies & | iList, |
boost::shared_ptr< ProxyT > | iProxy, | ||
const char * | iName = "" |
||
) | [inline] |
Definition at line 113 of file DataProxyProvider.h.
{ iList.push_back(DataProxyProvider::KeyedProxies::value_type( DataKey(DataKey::makeTypeTag<typename ProxyT::value_type>(), iName), iProxy)); }
static const std::string edm::eventsetup::kAppendToDataLabel | ( | "appendToDataLabel" | ) | [static] |
Referenced by edm::eventsetup::DataProxyProvider::prevalidate().
std::auto_ptr< EventSetupProvider > edm::eventsetup::makeEventSetupProvider | ( | ParameterSet const & | params | ) |
Definition at line 26 of file EventSetupProviderMaker.cc.
References cms::Exception::append(), edm::errors::Configuration, Exception, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), and edm::ParameterSet::getParameterSet().
Referenced by edm::eventsetup::EventSetupsController::makeProvider().
{ std::vector<std::string> prefers = params.getParameter<std::vector<std::string> >("@all_esprefers"); if(prefers.empty()) { return std::auto_ptr<EventSetupProvider>(new EventSetupProvider()); } EventSetupProvider::PreferredProviderInfo preferInfo; EventSetupProvider::RecordToDataMap recordToData; //recordToData.insert(std::make_pair(std::string("DummyRecord"), // std::make_pair(std::string("DummyData"), std::string()))); //preferInfo[ComponentDescription("DummyProxyProvider", "", false)]= // recordToData; for(std::vector<std::string>::iterator itName = prefers.begin(), itNameEnd = prefers.end(); itName != itNameEnd; ++itName) { recordToData.clear(); ParameterSet const& preferPSet = params.getParameterSet(*itName); std::vector<std::string> recordNames = preferPSet.getParameterNames(); for(std::vector<std::string>::iterator itRecordName = recordNames.begin(), itRecordNameEnd = recordNames.end(); itRecordName != itRecordNameEnd; ++itRecordName) { if((*itRecordName)[0] == '@') { //this is a 'hidden parameter' so skip it continue; } //this should be a record name with its info try { std::vector<std::string> dataInfo = preferPSet.getParameter<std::vector<std::string> >(*itRecordName); if(dataInfo.empty()) { //FUTURE: empty should just mean all data throw Exception(errors::Configuration) << "The record named " << *itRecordName << " specifies no data items"; } //FUTURE: 'any' should be a special name for(std::vector<std::string>::iterator itDatum = dataInfo.begin(), itDatumEnd = dataInfo.end(); itDatum != itDatumEnd; ++itDatum){ std::string datumName(*itDatum, 0, itDatum->find_first_of("/")); std::string labelName; if(itDatum->size() != datumName.size()) { labelName = std::string(*itDatum, datumName.size() + 1); } recordToData.insert(std::make_pair(std::string(*itRecordName), std::make_pair(datumName, labelName))); } } catch(cms::Exception const& iException) { cms::Exception theError("ESPreferConfigurationError"); theError << "While parsing the es_prefer statement for type=" << preferPSet.getParameter<std::string>("@module_type") << " label=\"" << preferPSet.getParameter<std::string>("@module_label") << "\" an error occurred."; theError.append(iException); throw theError; } } preferInfo[ComponentDescription(preferPSet.getParameter<std::string>("@module_type"), preferPSet.getParameter<std::string>("@module_label"), false)] = recordToData; } return std::auto_ptr<EventSetupProvider>(new EventSetupProvider(&preferInfo)); }
void edm::eventsetup::no_dependent_record_exception_message_builder | ( | cms::Exception & | oException, |
const EventSetupRecordKey & | iKey, | ||
const char * | iName | ||
) |
Definition at line 30 of file NoRecordException.cc.
References edm::eventsetup::heterocontainer::HCTypeTag::name(), and edm::eventsetup::EventSetupRecordKey::type().
Referenced by edm::eventsetup::NoRecordException< T >::NoRecordException().
{ oException << "No \"" << iName << "\" record found in the dependent record \""<<iKey.type().name() << "\".\n Please add an ESSource or ESProducer that delivers the \"" << iName<<"\" record."; }
void edm::eventsetup::no_record_exception_message_builder | ( | cms::Exception & | oException, |
const char * | iName | ||
) |
Definition at line 22 of file NoRecordException.cc.
Referenced by edm::eventsetup::NoRecordException< T >::NoRecordException().
{ oException << "No \"" << iName << "\" record found in the EventSetup.\n Please add an ESSource or ESProducer that delivers such a record.\n"; }
static void edm::eventsetup::preferEverything | ( | const ComponentDescription & | iComponent, |
const Providers & | iProviders, | ||
RecordToPreferred & | iReturnValue | ||
) | [static] |
find everything made by a DataProxyProvider and add it to the 'preferred' list
Definition at line 106 of file EventSetupProvider.cc.
References makeMuonMisalignmentScenario::components, Exception, edm::eventsetup::ComponentDescription::label_, and edm::eventsetup::ComponentDescription::type_.
Referenced by determinePreferred().
{ //need to get our hands on the actual DataProxyProvider bool foundProxyProvider = false; for(Providers::const_iterator itProvider = iProviders.begin(), itProviderEnd = iProviders.end(); itProvider!= itProviderEnd; ++itProvider) { std::set<ComponentDescription> components = itProvider->second->proxyProviderDescriptions(); if(components.find(iComponent)!= components.end()) { boost::shared_ptr<DataProxyProvider> proxyProv = itProvider->second->proxyProvider(*(components.find(iComponent))); assert(proxyProv.get()); std::set<EventSetupRecordKey> records = proxyProv->usingRecords(); for(std::set<EventSetupRecordKey>::iterator itRecord = records.begin(), itRecordEnd = records.end(); itRecord != itRecordEnd; ++itRecord){ const DataProxyProvider::KeyedProxies& keyedProxies = proxyProv->keyedProxies(*itRecord); if(!keyedProxies.empty()){ //add them to our output EventSetupRecordProvider::DataToPreferredProviderMap& dataToProviderMap = iReturnValue[*itRecord]; for(DataProxyProvider::KeyedProxies::const_iterator itProxy = keyedProxies.begin(), itProxyEnd = keyedProxies.end(); itProxy != itProxyEnd; ++itProxy) { EventSetupRecordProvider::DataToPreferredProviderMap::iterator itFind = dataToProviderMap.find(itProxy->first); if(itFind != dataToProviderMap.end()){ throw cms::Exception("ESPreferConflict") <<"Two providers have been set to be preferred for\n" <<itProxy->first.type().name()<<" \""<<itProxy->first.name().value()<<"\"" <<"\n the providers are " <<"\n 1) type="<<itFind->second.type_<<" label=\""<<itFind->second.label_<<"\"" <<"\n 2) type="<<iComponent.type_<<" label=\""<<iComponent.label_<<"\"" <<"\nPlease modify configuration so only one is preferred"; } dataToProviderMap.insert(std::make_pair(itProxy->first,iComponent)); } } } foundProxyProvider=true; break; } } if(!foundProxyProvider) { throw cms::Exception("ESPreferNoProvider")<<"Could not make type=\""<<iComponent.type_ <<"\" label=\""<<iComponent.label_<<"\" a preferred Provider."<< "\n Please check spelling of name, or that it was loaded into the job."; } }
Definition at line 99 of file DataKey.h.
References edm::eventsetup::DataKey::swap.
Referenced by edm::eventsetup::DataProxyProvider::keyedProxies(), and edm::eventsetup::EventSetupRecordProvider::swapFinder().
{ a.swap(b); }
void edm::eventsetup::validateEventSetupParameters | ( | ParameterSet & | pset | ) |
Definition at line 137 of file EventSetupProviderMaker.cc.
References cms::Exception::addContext(), edm::convertException::badAllocToEDM(), trackerHits::c, edm::convertException::charPtrToEDM(), SurfaceDeformationFactory::create(), alignCSCRings::e, exception, reco::get(), edm::ParameterSet::getParameter(), alignCSCRings::s, edm::convertException::stdToEDM(), edm::convertException::stringToEDM(), edm::convertException::unknownToEDM(), and edm::ConfigurationDescriptions::validate().
Referenced by fillEventSetupProvider().
{ std::string modtype; std::string moduleLabel; modtype = pset.getParameter<std::string>("@module_type"); moduleLabel = pset.getParameter<std::string>("@module_label"); // Check for the "unlabeled" case // This is an artifact left over from the old configuration language // we were using before switching to the python configuration // This is handled in the validation code and python configuration // files by using a label equal to the module typename. if (moduleLabel == std::string("")) { moduleLabel = modtype; } std::auto_ptr<ParameterSetDescriptionFillerBase> filler( ParameterSetDescriptionFillerPluginFactory::get()->create(modtype)); ConfigurationDescriptions descriptions(filler->baseType()); filler->fill(descriptions); try { try { descriptions.validate(pset, moduleLabel); } catch (cms::Exception& e) { throw; } catch(std::bad_alloc& bda) { convertException::badAllocToEDM(); } catch (std::exception& e) { convertException::stdToEDM(e); } catch(std::string& s) { convertException::stringToEDM(s); } catch(char const* c) { convertException::charPtrToEDM(c); } catch (...) { convertException::unknownToEDM(); } } catch (cms::Exception & iException) { std::ostringstream ost; ost << "Validating configuration of ESProducer or ESSource of type " << modtype << " with label: '" << moduleLabel << "'"; iException.addContext(ost.str()); throw; } }