CMS 3D CMS Logo

Namespaces | Classes | Typedefs | Functions | Variables
edm::eventsetup Namespace Reference

Namespaces

 depends_on
 
 heterocontainer
 
 looper
 
 produce
 

Classes

class  Callback
 
struct  CallbackBase
 
class  CallbackProxy
 
struct  CallbackSimpleDecorator
 
struct  ComponentDescription
 
class  ComponentFactory
 
class  ComponentMaker
 
class  ComponentMakerBase
 
class  ComponentMakerBaseHelper
 
struct  data_default_record_trait
 
struct  data_default_record_trait< DDDetector >
 
struct  data_default_record_trait< DIPLumiDetail >
 
struct  data_default_record_trait< DIPLumiSummary >
 
struct  data_default_record_trait< ElectronLikelihood >
 
struct  data_default_record_trait< HepPDT::ParticleDataTable >
 
struct  data_default_record_trait< LumiCorrectionParam >
 
class  DataKey
 
class  DataProxy
 
class  DataProxyProvider
 
class  DataProxyTemplate
 
struct  DecoratorFromArg
 
struct  DecoratorFromArg< T, TRecord, depends_on::OneHolder< T, TDependsOnRecord > >
 
struct  DecoratorFromArg< T, TRecord, depends_on::TwoHolder< T1, T2 > >
 
struct  default_record
 
class  DependentRecordImplementation
 
class  DependentRecordIntervalFinder
 
struct  DependentRecordTag
 
struct  DependsOnCaller
 
struct  DependsOnDoNothingCaller
 
class  ESPreFunctorDecorator
 
class  ESProducerInfo
 
class  ESRecordsToProxyIndices
 
class  ESSourceInfo
 
class  EventSetupProvider
 
class  EventSetupRecord
 
class  EventSetupRecordGeneric
 
class  EventSetupRecordImpl
 
class  EventSetupRecordImplementation
 
class  EventSetupRecordKey
 
class  EventSetupRecordProvider
 
class  EventSetupsController
 
struct  FactoryInfo
 
struct  FindDependenciesFromDependentRecord
 
class  IntersectingIOVRecordIntervalFinder
 
struct  LooperMaker
 
struct  LooperMakerTraits
 
class  MakeDataException
 
struct  ModuleMaker
 
struct  ModuleMakerTraits
 
struct  MUST_GET_RECORD_FROM_EVENTSETUP_TO_GET_DATA
 
class  NameTag
 
class  NoDataException
 
class  NoDataExceptionBase
 
struct  NoDependenciesForRecord
 
class  NoProxyException
 
class  NoRecordException
 
class  ParameterSetIDHolder
 
class  ProxyArgumentFactoryTemplate
 
class  ProxyFactoryBase
 
class  ProxyFactoryTemplate
 
struct  RecordDependencyRegister
 
class  SimpleStringTag
 
struct  SourceMaker
 
struct  SourceMakerTraits
 

Typedefs

template<typename T >
using default_record_t = typename default_record< T >::RecordT
 
using DepFunction) = std::set< EventSetupRecordKey >(*)(
 
typedef NameTag IdTags
 
using Itr = RecordProviders::iterator
 
typedef ComponentFactory< LooperMakerTraitsLooperFactory
 
typedef edmplugin::PluginFactory< edm::eventsetup::ComponentMakerBase< LooperMakerTraits > *()> LooperPluginFactory
 
typedef ComponentFactory< ModuleMakerTraitsModuleFactory
 
typedef edmplugin::PluginFactory< edm::eventsetup::ComponentMakerBase< ModuleMakerTraits > *()> ModulePluginFactory
 
typedef std::map< DataKey, const DataProxy * > Proxies
 
using RecordProviders = std::vector< std::shared_ptr< EventSetupRecordProvider >>
 
using RecordToPreferred = std::map< EventSetupRecordKey, EventSetupRecordProvider::DataToPreferredProviderMap >
 
typedef ComponentFactory< SourceMakerTraitsSourceFactory
 
typedef edmplugin::PluginFactory< edm::eventsetup::ComponentMakerBase< edm::eventsetup::SourceMakerTraits > *()> SourcePluginFactory
 
typedef heterocontainer::HCTypeTag TypeTag
 

Functions

void addDependencyFunction (EventSetupRecordKey iKey, DepFunction iFunction)
 
template<class T >
void addProviderTo (EventSetupProvider &iProvider, std::shared_ptr< T > iComponent, const DataProxyProvider *)
 
template<class T >
void addProviderTo (EventSetupProvider &, std::shared_ptr< T >, const void *)
 
template<typename T >
void addRecordToDependencies (const T *, const T *, std::set< EventSetupRecordKey > &)
 
template<typename TFirst , typename TEnd >
void addRecordToDependencies (const TFirst *, const TEnd *iEnd, std::set< EventSetupRecordKey > &oSet)
 
template<typename T , typename TRecord , typename TDecorator >
const TDecorator & createDecoratorFrom (T *, const TRecord *, const TDecorator &iDec)
 
template<typename T , typename TRecord , typename TDependsOnRecord >
ESPreFunctorDecorator< TRecord, DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > > createDecoratorFrom (T *iT, const TRecord *iRec, const depends_on::OneHolder< T, TDependsOnRecord > &iHolder)
 
template<typename T , typename TRecord , typename T1 , typename T2 >
ESPreFunctorDecorator< TRecord, typename depends_on::HolderToCaller< TRecord, depends_on::TwoHolder< T1, T2 > >::Caller_t > createDecoratorFrom (T *iT, const TRecord *iRec, const depends_on::TwoHolder< T1, T2 > &iHolder)
 
template<class T , class TRecord , class TDependsOnRecord , class TCallerChain >
DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > createDependsOnCaller (T *iCallee, const TRecord *, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
 
std::set< EventSetupRecordKeydependencies (EventSetupRecordKey const &)
 
template<typename T , typename TDependsOnRecord >
depends_on::OneHolder< T, TDependsOnRecord > dependsOn (void(T::*iT)(const TDependsOnRecord &))
 
template<typename T , typename T1 , typename T2 >
depends_on::TwoHolder< depends_on::OneHolder< T, T1 >, T2 > dependsOn (void(T::*iT1)(const T1 &), T2 iT2)
 
template<typename T , typename T1 , typename T2 , typename T3 >
depends_on::TwoHolder< depends_on::TwoHolder< depends_on::OneHolder< T, T1 >, T2 >, T3 > dependsOn (void(T::*iT1)(const T1 &), T2 iT2, T3 iT3)
 
static const ComponentDescriptiondummyDescription ()
 
template<>
bool EventSetupRecord::get< fwliteeswriter::Handle > (const std::string &iName, fwliteeswriter::Handle &iHolder) const
 
template<>
void EventSetupRecordImpl::getImplementation< fwliteeswriter::DummyType > (fwliteeswriter::DummyType const *&iData, const char *iName, const ComponentDescription *&iDesc, bool iTransientAccessOnly, std::shared_ptr< ESHandleExceptionFactory > &whyFailedFactory) const
 
void fillEventSetupProvider (EventSetupsController &esController, EventSetupProvider &cp, ParameterSet &params)
 
template<typename T >
std::set< EventSetupRecordKeyfindDependentRecordsFor ()
 
static void findDependents (const EventSetupRecordKey &iKey, Itr itBegin, Itr itEnd, std::vector< std::shared_ptr< EventSetupRecordProvider >> &oDependents)
 
template<class ProxyT >
void insertProxy (DataProxyProvider::KeyedProxies &iList, std::shared_ptr< ProxyT > iProxy, const char *iName="")
 
static const std::string kAppendToDataLabel ("appendToDataLabel")
 
std::unique_ptr< EventSetupProvidermakeEventSetupProvider (ParameterSet const &params, unsigned subProcessIndex, ActivityRegistry *)
 
template<typename FromT , typename ToT >
void moveFromTo (FromT &iFrom, ToT &iTo)
 
template<typename FromT , typename ToT >
void moveFromTo (std::unique_ptr< FromT > &iFrom, ToT &iTo)
 
template<typename FromT , typename ToT >
void moveFromTo (std::optional< FromT > &iFrom, ToT &iTo)
 
void no_record_exception_message_builder (cms::Exception &, const char *, bool iKnownRecord)
 
static void preferEverything (const ComponentDescription &iComponent, const RecordProviders &iRecordProviders, RecordToPreferred &iReturnValue)
 find everything made by a DataProxyProvider and add it to the 'preferred' list More...
 
bool recordDoesExist (edm::EventSetupImpl const &, edm::eventsetup::EventSetupRecordKey const &)
 
void swap (DataKey &a, DataKey &b)
 
void validateEventSetupParameters (ParameterSet &pset)
 

Variables

static std::recursive_mutex s_esGlobalMutex
 

Typedef Documentation

template<typename T >
using edm::eventsetup::default_record_t = typedef typename default_record<T>::RecordT

Definition at line 68 of file data_default_record_trait.h.

using edm::eventsetup::DepFunction = typedef std::set<EventSetupRecordKey> (*)(

Definition at line 32 of file RecordDependencyRegister.h.

Definition at line 51 of file DataKeyTags.h.

using edm::eventsetup::Itr = typedef RecordProviders::iterator

Definition at line 354 of file EventSetupProvider.cc.

Definition at line 101 of file LooperFactory.h.

Definition at line 103 of file LooperFactory.h.

Definition at line 55 of file ModuleFactory.h.

Definition at line 56 of file ModuleFactory.h.

typedef std::map<DataKey, const DataProxy*> edm::eventsetup::Proxies

Definition at line 33 of file EventSetupRecord.cc.

using edm::eventsetup::RecordProviders = typedef std::vector<std::shared_ptr<EventSetupRecordProvider>>

Definition at line 104 of file EventSetupProvider.cc.

Definition at line 105 of file EventSetupProvider.cc.

Definition at line 84 of file SourceFactory.h.

Definition at line 87 of file SourceFactory.h.

Definition at line 30 of file DataKeyTags.h.

Function Documentation

void edm::eventsetup::addDependencyFunction ( EventSetupRecordKey  iKey,
DepFunction  iFunction 
)

Definition at line 41 of file RecordDependencyRegister.cc.

Referenced by edm::eventsetup::RecordDependencyRegister< T >::RecordDependencyRegister().

41 { getMap().emplace(iKey, iFunction); }
template<class T >
void edm::eventsetup::addProviderTo ( EventSetupProvider iProvider,
std::shared_ptr< T iComponent,
const DataProxyProvider  
)

Definition at line 41 of file SourceFactory.h.

References edm::eventsetup::EventSetupProvider::add(), heppy_report::description, and edm::eventsetup::ComponentDescription::isSource_.

Referenced by edm::eventsetup::SourceMakerTraits::addTo().

41  {
42  std::shared_ptr<DataProxyProvider> pProvider(iComponent);
43  ComponentDescription description = pProvider->description();
44  description.isSource_ = true;
45  pProvider->setDescription(description);
46  iProvider.add(pProvider);
47  }
template<class T >
void edm::eventsetup::addProviderTo ( EventSetupProvider ,
std::shared_ptr< T ,
const void *   
)

Definition at line 49 of file SourceFactory.h.

49  {
50  //do nothing
51  }
template<typename T >
void edm::eventsetup::addRecordToDependencies ( const T ,
const T ,
std::set< EventSetupRecordKey > &   
)
template<typename TFirst , typename TEnd >
void edm::eventsetup::addRecordToDependencies ( const TFirst *  ,
const TEnd *  iEnd,
std::set< EventSetupRecordKey > &  oSet 
)

Definition at line 42 of file findDependentRecordsFor.h.

References addRecordToDependencies(), edm::eventsetup::EventSetupRecordKey::makeKey(), and GetRecoTauVFromDQM_MC_cff::next.

42  {
44  const typename boost::mpl::next<TFirst>::type* next(nullptr);
45  addRecordToDependencies(next, iEnd, oSet);
46  }
Key makeKey(const IdTag &iIdTag)
Definition: HCMethods.h:28
type
Definition: HCALResponse.h:21
void addRecordToDependencies(const TFirst *, const TEnd *iEnd, std::set< EventSetupRecordKey > &oSet)
template<typename T , typename TRecord , typename TDecorator >
const TDecorator& edm::eventsetup::createDecoratorFrom ( T ,
const TRecord *  ,
const TDecorator &  iDec 
)
inline

Definition at line 95 of file ESProducer.h.

Referenced by edm::ESProducer::setWhatProduced().

95  {
96  return iDec;
97  }
template<typename T , typename TRecord , typename TDependsOnRecord >
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 169 of file eventsetup_dependsOn.h.

References createDependsOnCaller(), edm::eventsetup::depends_on::OneHolder< T, TDependsOnRecord >::holdee_, and groupFilesInBlocks::temp.

169  {
170  DependsOnDoNothingCaller<TRecord> tCaller;
172  temp(createDependsOnCaller(iT, iRec, iHolder.holdee_, tCaller));
173  return temp;
174  }
DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > createDependsOnCaller(T *iCallee, const TRecord *, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
template<typename T , typename TRecord , typename T1 , typename T2 >
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 186 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().

186  {
187  return ESPreFunctorDecorator<
188  TRecord,
189  typename depends_on::HolderToCaller<TRecord, depends_on::TwoHolder<T1, T2> >::Caller_t>(
190  createDependsOnCaller(iT, iRec, iHolder.h2_, makeCaller(iT, iRec, iHolder.h1_)));
191  }
DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > createDependsOnCaller(T *iCallee, const TRecord *, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
DependsOnCaller< T, TRecord, T2, typename HolderToCaller< TRecord, T1 >::Caller_t > makeCaller(T *iT, const TRecord *iRec, const TwoHolder< T1, void(T::*)(const T2 &)> &iHolder)
template<class T , class TRecord , class TDependsOnRecord , class TCallerChain >
DependsOnCaller<T, TRecord, TDependsOnRecord, TCallerChain> edm::eventsetup::createDependsOnCaller ( T iCallee,
const TRecord *  ,
void(T::*)(const TDependsOnRecord &)  iMethod,
const TCallerChain &  iChain 
)

Definition at line 87 of file eventsetup_dependsOn.h.

Referenced by createDecoratorFrom(), and edm::eventsetup::depends_on::makeCaller().

88  {
89  return DependsOnCaller<T, TRecord, TDependsOnRecord, TCallerChain>(iCallee, iMethod, iChain);
90  }
std::set< EventSetupRecordKey > edm::eventsetup::dependencies ( EventSetupRecordKey const &  iKey)

Definition at line 32 of file RecordDependencyRegister.cc.

References genParticles_cff::map.

Referenced by edm::eventsetup::EventSetupRecordProvider::dependentRecords().

32  {
33  auto& map = getMap();
34  auto itFind = map.find(iKey);
35  if (itFind != map.end()) {
36  return itFind->second();
37  }
38  return std::set<EventSetupRecordKey>();
39  }
template<typename T , typename TDependsOnRecord >
depends_on::OneHolder<T, TDependsOnRecord> edm::eventsetup::dependsOn ( void(T::*)(const TDependsOnRecord &)  iT)

Definition at line 195 of file eventsetup_dependsOn.h.

195  {
196  return iT;
197  }
template<typename T , typename T1 , typename T2 >
depends_on::TwoHolder<depends_on::OneHolder<T, T1>, T2> edm::eventsetup::dependsOn ( void(T::*)(const T1 &)  iT1,
T2  iT2 
)

Definition at line 200 of file eventsetup_dependsOn.h.

200  {
201  return depends_on::OneHolder<T, T1>(iT1) & iT2;
202  }
template<typename T , typename T1 , typename T2 , typename T3 >
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 205 of file eventsetup_dependsOn.h.

206  {
207  return depends_on::OneHolder<T, T1>(iT1) & iT2 & iT3;
208  }
static const ComponentDescription* edm::eventsetup::dummyDescription ( )
static

Definition at line 32 of file DataProxy.cc.

32  {
33  static ComponentDescription s_desc;
34  return &s_desc;
35  }
template<>
bool edm::eventsetup::EventSetupRecord::get< fwliteeswriter::Handle > ( const std::string &  iName,
fwliteeswriter::Handle iHolder 
) const

Definition at line 90 of file FWLiteESRecordWriterAnalyzer.cc.

References edm::IOVSyncValue::eventID(), edm::EventSetup::find(), edm::ValidityInterval::first(), h, fwliteeswriter::DummyType::m_data, fwliteeswriter::Handle::m_data, fwliteeswriter::DummyType::m_tag, protons_cff::t, edm::IOVSyncValue::time(), and update.

90  {
92  t.m_tag = &(iHolder.m_info->m_tag);
94  const ComponentDescription* desc = nullptr;
95  std::shared_ptr<ESHandleExceptionFactory> dummy;
96  impl_->getImplementation(value, iName.c_str(),desc,true, dummy);
97  iHolder.m_data = t.m_data;
98  iHolder.m_desc = desc;
99  return true;
100  }
const edm::eventsetup::heterocontainer::HCTypeTag * m_tag
const edm::eventsetup::ComponentDescription * m_desc
Definition: value.py:1
template<>
void edm::eventsetup::EventSetupRecordImpl::getImplementation< fwliteeswriter::DummyType > ( fwliteeswriter::DummyType const *&  iData,
const char *  iName,
const ComponentDescription *&  iDesc,
bool  iTransientAccessOnly,
std::shared_ptr< ESHandleExceptionFactory > &  whyFailedFactory 
) const

Definition at line 72 of file FWLiteESRecordWriterAnalyzer.cc.

References Exception, and crabWrapper::key.

76  {
77  DataKey dataKey(*(iData->m_tag),
78  iName,
79  DataKey::kDoNotCopyMemory);
80 
81  const void* pValue = this->getFromProxy(dataKey,iDesc,iTransientAccessOnly);
82  if(nullptr==pValue) {
83  throw cms::Exception("NoProxyException")<<"No data of type \""<<iData->m_tag->name()<<"\" with label \""<<
84  iName<<"\" in record \""<<this->key().name()<<"\"";
85  }
86  iData->m_data = pValue;
87  }
void edm::eventsetup::fillEventSetupProvider ( EventSetupsController esController,
EventSetupProvider cp,
ParameterSet params 
)

Definition at line 93 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().

93  {
94  std::vector<std::string> providers = params.getParameter<std::vector<std::string> >("@all_esmodules");
95 
96  for (std::vector<std::string>::iterator itName = providers.begin(), itNameEnd = providers.end();
97  itName != itNameEnd;
98  ++itName) {
99  ParameterSet* providerPSet = params.getPSetForUpdate(*itName);
100  validateEventSetupParameters(*providerPSet);
101  providerPSet->registerIt();
102  ModuleFactory::get()->addTo(esController, cp, *providerPSet);
103  }
104 
105  std::vector<std::string> sources = params.getParameter<std::vector<std::string> >("@all_essources");
106 
107  for (std::vector<std::string>::iterator itName = sources.begin(), itNameEnd = sources.end(); itName != itNameEnd;
108  ++itName) {
109  ParameterSet* providerPSet = params.getPSetForUpdate(*itName);
110  validateEventSetupParameters(*providerPSet);
111  providerPSet->registerIt();
112  SourceFactory::get()->addTo(esController, cp, *providerPSet);
113  }
114  }
void validateEventSetupParameters(ParameterSet &pset)
T get(const Candidate &c)
Definition: component.h:55
template<typename T >
std::set<EventSetupRecordKey> edm::eventsetup::findDependentRecordsFor ( )

Definition at line 65 of file findDependentRecordsFor.h.

65  {
67  FindDependenciesFromDependentRecord<T>,
68  NoDependenciesForRecord>::type DepFinder;
69  std::set<EventSetupRecordKey> returnValue;
70  DepFinder::dependentRecords(returnValue);
71  return returnValue;
72  }
type
Definition: HCALResponse.h:21
static void edm::eventsetup::findDependents ( const EventSetupRecordKey iKey,
Itr  itBegin,
Itr  itEnd,
std::vector< std::shared_ptr< EventSetupRecordProvider >> &  oDependents 
)
static

Definition at line 355 of file EventSetupProvider.cc.

References symbols::deps.

Referenced by edm::eventsetup::EventSetupProvider::resetRecordPlusDependentRecords().

358  {
359  for (Itr it = itBegin; it != itEnd; ++it) {
360  //does it depend on the record in question?
361  const std::set<EventSetupRecordKey>& deps = (*it)->dependentRecords();
362  if (deps.end() != deps.find(iKey)) {
363  oDependents.push_back(*it);
364  //now see who is dependent on this record since they will be indirectly dependent on iKey
365  findDependents((*it)->key(), itBegin, itEnd, oDependents);
366  }
367  }
368  }
static void findDependents(const EventSetupRecordKey &iKey, Itr itBegin, Itr itEnd, std::vector< std::shared_ptr< EventSetupRecordProvider >> &oDependents)
RecordProviders::iterator Itr
template<class ProxyT >
void edm::eventsetup::insertProxy ( DataProxyProvider::KeyedProxies iList,
std::shared_ptr< ProxyT >  iProxy,
const char *  iName = "" 
)
inline

Definition at line 109 of file DataProxyProvider.h.

111  {
113  DataKey(DataKey::makeTypeTag<typename ProxyT::value_type>(), iName), iProxy));
114  }
static const std::string edm::eventsetup::kAppendToDataLabel ( "appendToDataLabel"  )
static
std::unique_ptr< EventSetupProvider > edm::eventsetup::makeEventSetupProvider ( ParameterSet const &  params,
unsigned  subProcessIndex,
ActivityRegistry activityRegistry 
)

Definition at line 25 of file EventSetupProviderMaker.cc.

References cms::Exception::append(), edm::errors::Configuration, Exception, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), edm::ParameterSet::getParameterSet(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by edm::eventsetup::EventSetupsController::makeProvider().

27  {
28  std::vector<std::string> prefers = params.getParameter<std::vector<std::string> >("@all_esprefers");
29 
30  if (prefers.empty()) {
31  return std::make_unique<EventSetupProvider>(activityRegistry, subProcessIndex);
32  }
33 
34  EventSetupProvider::PreferredProviderInfo preferInfo;
35  EventSetupProvider::RecordToDataMap recordToData;
36 
37  //recordToData.insert(std::make_pair(std::string("DummyRecord"),
38  // std::make_pair(std::string("DummyData"), std::string())));
39  //preferInfo[ComponentDescription("DummyProxyProvider", "", false)]=
40  // recordToData;
41 
42  for (std::vector<std::string>::iterator itName = prefers.begin(), itNameEnd = prefers.end(); itName != itNameEnd;
43  ++itName) {
44  recordToData.clear();
45  ParameterSet const& preferPSet = params.getParameterSet(*itName);
46  std::vector<std::string> recordNames = preferPSet.getParameterNames();
47  for (std::vector<std::string>::iterator itRecordName = recordNames.begin(), itRecordNameEnd = recordNames.end();
48  itRecordName != itRecordNameEnd;
49  ++itRecordName) {
50  if ((*itRecordName)[0] == '@') {
51  //this is a 'hidden parameter' so skip it
52  continue;
53  }
54 
55  //this should be a record name with its info
56  try {
57  std::vector<std::string> dataInfo = preferPSet.getParameter<std::vector<std::string> >(*itRecordName);
58 
59  if (dataInfo.empty()) {
60  //FUTURE: empty should just mean all data
62  << "The record named " << *itRecordName << " specifies no data items";
63  }
64  //FUTURE: 'any' should be a special name
65  for (std::vector<std::string>::iterator itDatum = dataInfo.begin(), itDatumEnd = dataInfo.end();
66  itDatum != itDatumEnd;
67  ++itDatum) {
68  std::string datumName(*itDatum, 0, itDatum->find_first_of("/"));
69  std::string labelName;
70 
71  if (itDatum->size() != datumName.size()) {
72  labelName = std::string(*itDatum, datumName.size() + 1);
73  }
74  recordToData.insert(std::make_pair(std::string(*itRecordName), std::make_pair(datumName, labelName)));
75  }
76  } catch (cms::Exception const& iException) {
77  cms::Exception theError("ESPreferConfigurationError");
78  theError << "While parsing the es_prefer statement for type="
79  << preferPSet.getParameter<std::string>("@module_type") << " label=\""
80  << preferPSet.getParameter<std::string>("@module_label") << "\" an error occurred.";
81  theError.append(iException);
82  throw theError;
83  }
84  }
85  preferInfo[ComponentDescription(preferPSet.getParameter<std::string>("@module_type"),
86  preferPSet.getParameter<std::string>("@module_label"),
87  false)] = recordToData;
88  }
89  return std::make_unique<EventSetupProvider>(activityRegistry, subProcessIndex, &preferInfo);
90  }
template<typename FromT , typename ToT >
void edm::eventsetup::moveFromTo ( FromT &  iFrom,
ToT &  iTo 
)

Definition at line 33 of file produce_helpers.h.

References eostools::move().

Referenced by edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::setData().

33  {
34  iTo = std::move(iFrom);
35  }
def move(src, dest)
Definition: eostools.py:511
template<typename FromT , typename ToT >
void edm::eventsetup::moveFromTo ( std::unique_ptr< FromT > &  iFrom,
ToT &  iTo 
)

Definition at line 38 of file produce_helpers.h.

References eostools::move().

38  {
39  iTo = std::move(iFrom);
40  }
def move(src, dest)
Definition: eostools.py:511
template<typename FromT , typename ToT >
void edm::eventsetup::moveFromTo ( std::optional< FromT > &  iFrom,
ToT &  iTo 
)

Definition at line 42 of file produce_helpers.h.

References eostools::move().

42  {
43  iTo = std::move(iFrom.value());
44  }
def move(src, dest)
Definition: eostools.py:511
void edm::eventsetup::no_record_exception_message_builder ( cms::Exception oException,
const char *  iName,
bool  iKnownRecord 
)

Definition at line 26 of file NoRecordException.cc.

Referenced by edm::eventsetup::NoRecordException< T >::NoRecordException().

28  {
29  oException << "No \"" << iName << "\" record found in the EventSetup.n";
30  if (iKnownRecord) {
31  oException << "\n The Record is delivered by an ESSource or ESProducer but there is no valid IOV for the "
32  "synchronizatio value.\n"
33  " Please check \n"
34  " a) if the synchronization value is reasonable and report to the hypernews if it is not.\n"
35  " b) else check that all ESSources have been properly configured. \n";
36  } else {
37  oException << "\n Please add an ESSource or ESProducer that delivers such a record.\n";
38  }
39 }
static void edm::eventsetup::preferEverything ( const ComponentDescription iComponent,
const RecordProviders iRecordProviders,
RecordToPreferred iReturnValue 
)
static

find everything made by a DataProxyProvider and add it to the 'preferred' list

Definition at line 107 of file EventSetupProvider.cc.

References makeMuonMisalignmentScenario::components, Exception, edm::eventsetup::ComponentDescription::label_, and edm::eventsetup::ComponentDescription::type_.

Referenced by edm::eventsetup::EventSetupProvider::determinePreferred().

109  {
110  //need to get our hands on the actual DataProxyProvider
111  bool foundProxyProvider = false;
112  for (auto const& recordProvider : iRecordProviders) {
113  std::set<ComponentDescription> components = recordProvider->proxyProviderDescriptions();
114  if (components.find(iComponent) != components.end()) {
115  std::shared_ptr<DataProxyProvider> proxyProv = recordProvider->proxyProvider(*(components.find(iComponent)));
116  assert(proxyProv.get());
117 
118  std::set<EventSetupRecordKey> records = proxyProv->usingRecords();
119  for (std::set<EventSetupRecordKey>::iterator itRecord = records.begin(), itRecordEnd = records.end();
120  itRecord != itRecordEnd;
121  ++itRecord) {
122  const DataProxyProvider::KeyedProxies& keyedProxies = proxyProv->keyedProxies(*itRecord);
123  if (!keyedProxies.empty()) {
124  //add them to our output
125  EventSetupRecordProvider::DataToPreferredProviderMap& dataToProviderMap = iReturnValue[*itRecord];
126 
127  for (DataProxyProvider::KeyedProxies::const_iterator itProxy = keyedProxies.begin(),
128  itProxyEnd = keyedProxies.end();
129  itProxy != itProxyEnd;
130  ++itProxy) {
131  EventSetupRecordProvider::DataToPreferredProviderMap::iterator itFind =
132  dataToProviderMap.find(itProxy->first);
133  if (itFind != dataToProviderMap.end()) {
134  throw cms::Exception("ESPreferConflict")
135  << "Two providers have been set to be preferred for\n"
136  << itProxy->first.type().name() << " \"" << itProxy->first.name().value() << "\""
137  << "\n the providers are "
138  << "\n 1) type=" << itFind->second.type_ << " label=\"" << itFind->second.label_ << "\""
139  << "\n 2) type=" << iComponent.type_ << " label=\"" << iComponent.label_ << "\""
140  << "\nPlease modify configuration so only one is preferred";
141  }
142  dataToProviderMap.insert(std::make_pair(itProxy->first, iComponent));
143  }
144  }
145  }
146  foundProxyProvider = true;
147  break;
148  }
149  }
150  if (!foundProxyProvider) {
151  throw cms::Exception("ESPreferNoProvider")
152  << "Could not make type=\"" << iComponent.type_ << "\" label=\"" << iComponent.label_
153  << "\" a preferred Provider."
154  << "\n Please check spelling of name, or that it was loaded into the job.";
155  }
156  }
bool edm::eventsetup::recordDoesExist ( edm::EventSetupImpl const &  iES,
edm::eventsetup::EventSetupRecordKey const &  iKey 
)

Definition at line 22 of file NoRecordException.cc.

References edm::EventSetupImpl::recordIsProvidedByAModule().

Referenced by edm::EventSetup::get().

22  {
23  return iES.recordIsProvidedByAModule(iKey);
24 }
void edm::eventsetup::swap ( DataKey a,
DataKey b 
)
inline

Definition at line 85 of file DataKey.h.

References edm::eventsetup::DataKey::swap.

Referenced by edm::eventsetup::DataProxyProvider::keyedProxies().

85 { a.swap(b); }
void edm::eventsetup::validateEventSetupParameters ( ParameterSet pset)

Definition at line 117 of file EventSetupProviderMaker.cc.

References cms::Exception::addContext(), beamerCreator::create(), objects.autophobj::filler, reco::get(), edm::ParameterSet::getParameter(), AlCaHLTBitMon_QueryRunRegistry::string, and edm::convertException::wrap().

Referenced by fillEventSetupProvider().

117  {
118  std::string modtype;
119  std::string moduleLabel;
120  modtype = pset.getParameter<std::string>("@module_type");
121  moduleLabel = pset.getParameter<std::string>("@module_label");
122  // Check for the "unlabeled" case
123  // This is an artifact left over from the old configuration language
124  // we were using before switching to the python configuration
125  // This is handled in the validation code and python configuration
126  // files by using a label equal to the module typename.
127  if (moduleLabel == std::string("")) {
128  moduleLabel = modtype;
129  }
130 
131  std::unique_ptr<ParameterSetDescriptionFillerBase> filler(
133  ConfigurationDescriptions descriptions(filler->baseType(), modtype);
134  filler->fill(descriptions);
135  try {
136  edm::convertException::wrap([&]() { descriptions.validate(pset, moduleLabel); });
137  } catch (cms::Exception& iException) {
138  std::ostringstream ost;
139  ost << "Validating configuration of ESProducer or ESSource of type " << modtype << " with label: '"
140  << moduleLabel << "'";
141  iException.addContext(ost.str());
142  throw;
143  }
144  }
def create(alignables, pedeDump, additionalData, outputFile, config)
void addContext(std::string const &context)
Definition: Exception.cc:165
auto wrap(F iFunc) -> decltype(iFunc())
T get(const Candidate &c)
Definition: component.h:55

Variable Documentation

std::recursive_mutex edm::eventsetup::s_esGlobalMutex
static

Definition at line 28 of file DataProxy.cc.