CMS 3D CMS Logo

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

Namespaces

 depends_on
 
 heterocontainer
 
 impl
 
 looper
 
 produce
 

Classes

class  Callback
 
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< HepPDT::ParticleDataTable >
 
struct  data_default_record_trait< LumiCorrectionParam >
 
struct  data_default_record_trait< trackerDTC::Setup >
 
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  ESSourceDataProxyBase
 
class  ESSourceDataProxyTemplate
 
class  ESSourceInfo
 
class  EventSetupProvider
 
class  EventSetupRecord
 
class  EventSetupRecordGeneric
 
class  EventSetupRecordImpl
 
class  EventSetupRecordImplementation
 
class  EventSetupRecordIOVQueue
 
class  EventSetupRecordKey
 
class  EventSetupRecordProvider
 
class  EventSetupsController
 
struct  FactoryInfo
 
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
 
class  NoProxyException
 
class  NoRecordException
 
class  NumberOfConcurrentIOVs
 
class  ParameterSetIDHolder
 
class  ProxyArgumentFactoryTemplate
 
class  ProxyFactoryBase
 
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, bool allowConcurrentIOVs)
 
template<class T >
void addProviderTo (EventSetupProvider &, std::shared_ptr< T >, const void *)
 
template<class T >
void addProviderTo (EventSetupProvider &iProvider, std::shared_ptr< T > iComponent, const DataProxyProvider *)
 
template<typename TFirst , typename TRemaining >
void addRecordToDependencies (const TFirst *, const TRemaining *, std::set< EventSetupRecordKey > &oSet)
 
bool allowConcurrentIOVs (EventSetupRecordKey const &)
 
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, edm::EventSetupImpl const *) 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)
 
static const std::string kAppendToDataLabel ("appendToDataLabel")
 
std::unique_ptr< EventSetupProvidermakeEventSetupProvider (ParameterSet const &params, unsigned subProcessIndex, ActivityRegistry *activityRegistry)
 
template<typename FromT , typename ToT >
void moveFromTo (FromT &iFrom, ToT &iTo)
 
template<typename FromT , typename ToT >
void moveFromTo (std::optional< FromT > &iFrom, ToT &iTo)
 
template<typename FromT , typename ToT >
void moveFromTo (std::unique_ptr< 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)
 

Typedef Documentation

◆ default_record_t

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.

◆ DepFunction

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

Definition at line 32 of file RecordDependencyRegister.h.

◆ IdTags

Definition at line 51 of file DataKeyTags.h.

◆ Itr

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

Definition at line 351 of file EventSetupProvider.cc.

◆ LooperFactory

Definition at line 101 of file LooperFactory.h.

◆ LooperPluginFactory

Definition at line 103 of file LooperFactory.h.

◆ ModuleFactory

Definition at line 55 of file ModuleFactory.h.

◆ ModulePluginFactory

Definition at line 56 of file ModuleFactory.h.

◆ Proxies

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

Definition at line 33 of file EventSetupRecord.cc.

◆ RecordProviders

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

Definition at line 107 of file EventSetupProvider.cc.

◆ RecordToPreferred

Definition at line 108 of file EventSetupProvider.cc.

◆ SourceFactory

Definition at line 84 of file SourceFactory.h.

◆ SourcePluginFactory

Definition at line 87 of file SourceFactory.h.

◆ TypeTag

Definition at line 30 of file DataKeyTags.h.

Function Documentation

◆ addDependencyFunction()

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

Definition at line 55 of file RecordDependencyRegister.cc.

55  {
56  getMap().emplace(iKey, iFunction);
57  getAllowMap().emplace(iKey, allowConcurrentIOVs);
58  }

References allowConcurrentIOVs().

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

◆ addProviderTo() [1/2]

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  }

◆ addProviderTo() [2/2]

template<class T >
void edm::eventsetup::addProviderTo ( EventSetupProvider iProvider,
std::shared_ptr< T iComponent,
const DataProxyProvider  
)

Definition at line 41 of file SourceFactory.h.

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  }

References edm::eventsetup::EventSetupProvider::add(), and edmLumisInFiles::description.

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

◆ addRecordToDependencies()

template<typename TFirst , typename TRemaining >
void edm::eventsetup::addRecordToDependencies ( const TFirst *  ,
const TRemaining *  ,
std::set< EventSetupRecordKey > &  oSet 
)

Definition at line 36 of file findDependentRecordsFor.h.

36  {
37  oSet.insert(EventSetupRecordKey::makeKey<TFirst>());
38  using Pop = edm::mpl::Pop<TRemaining>;
39  if constexpr (not Pop::empty) {
40  const typename Pop::Item* next(nullptr);
41  const typename Pop::Remaining* remaining(nullptr);
42  addRecordToDependencies(next, remaining, oSet);
43  }
44  }

References relativeConstraints::empty, and GetRecoTauVFromDQM_MC_cff::next.

Referenced by findDependentRecordsFor().

◆ allowConcurrentIOVs()

bool edm::eventsetup::allowConcurrentIOVs ( EventSetupRecordKey const &  iKey)

Definition at line 46 of file RecordDependencyRegister.cc.

46  {
47  auto& map = getAllowMap();
48  auto itFind = map.find(iKey);
49  if (itFind != map.end()) {
50  return itFind->second;
51  }
52  return false;
53  }

References genParticles_cff::map.

Referenced by addDependencyFunction(), and edm::eventsetup::DataProxyProvider::DataProxyContainer::fillRecordsNotAllowingConcurrentIOVs().

◆ createDecoratorFrom() [1/3]

template<typename T , typename TRecord , typename TDecorator >
const TDecorator& edm::eventsetup::createDecoratorFrom ( T ,
const TRecord *  ,
const TDecorator &  iDec 
)
inline

Definition at line 99 of file ESProducer.h.

99  {
100  return iDec;
101  }

◆ createDecoratorFrom() [2/3]

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.

169  {
170  DependsOnDoNothingCaller<TRecord> tCaller;
172  temp(createDependsOnCaller(iT, iRec, iHolder.holdee_, tCaller));
173  return temp;
174  }

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

◆ createDecoratorFrom() [3/3]

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.

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  }

References createDependsOnCaller(), edm::eventsetup::depends_on::TwoHolder< T, U >::h1_, edm::eventsetup::depends_on::TwoHolder< T, U >::h2_, and edm::eventsetup::depends_on::makeCaller().

◆ createDependsOnCaller()

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.

88  {
89  return DependsOnCaller<T, TRecord, TDependsOnRecord, TCallerChain>(iCallee, iMethod, iChain);
90  }

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

◆ dependencies()

std::set< EventSetupRecordKey > edm::eventsetup::dependencies ( EventSetupRecordKey const &  iKey)

Definition at line 37 of file RecordDependencyRegister.cc.

37  {
38  auto& map = getMap();
39  auto itFind = map.find(iKey);
40  if (itFind != map.end()) {
41  return itFind->second();
42  }
43  return std::set<EventSetupRecordKey>();
44  }

References genParticles_cff::map.

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

◆ dependsOn() [1/3]

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  }

◆ dependsOn() [2/3]

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  }

◆ dependsOn() [3/3]

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  }

◆ dummyDescription()

static const ComponentDescription* edm::eventsetup::dummyDescription ( )
static

Definition at line 29 of file DataProxy.cc.

29  {
30  static ComponentDescription s_desc;
31  return &s_desc;
32  }

◆ EventSetupRecord::get< fwliteeswriter::Handle >()

template<>
bool edm::eventsetup::EventSetupRecord::get< fwliteeswriter::Handle > ( const std::string &  iName,
fwliteeswriter::Handle iHolder 
) const

Definition at line 90 of file FWLiteESRecordWriterAnalyzer.cc.

91  {
93  t.m_tag = &(iHolder.m_info->m_tag);
95  const ComponentDescription* desc = nullptr;
96  std::shared_ptr<ESHandleExceptionFactory> dummy;
97  impl_->getImplementation(value, iName.c_str(), desc, true, dummy, nullptr);
98  iHolder.m_data = t.m_data;
99  iHolder.m_desc = desc;
100  return true;
101  }

References submitPVResolutionJobs::desc, fwliteeswriter::Handle::m_data, fwliteeswriter::Handle::m_desc, fwliteeswriter::Handle::m_info, and submitPVValidationJobs::t.

◆ EventSetupRecordImpl::getImplementation< fwliteeswriter::DummyType >()

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,
edm::EventSetupImpl const *   
) const

Definition at line 72 of file FWLiteESRecordWriterAnalyzer.cc.

78  {
79  DataKey dataKey(*(iData->m_tag), iName, 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  }

References Exception, edm::eventsetup::DataKey::kDoNotCopyMemory, crabWrapper::key, fwliteeswriter::DummyType::m_data, fwliteeswriter::DummyType::m_tag, and edm::eventsetup::heterocontainer::HCTypeTag::name().

◆ fillEventSetupProvider()

void edm::eventsetup::fillEventSetupProvider ( EventSetupsController esController,
EventSetupProvider cp,
ParameterSet params 
)

Definition at line 93 of file EventSetupProviderMaker.cc.

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  }

References CommonMethods::cp(), edm::eventsetup::ComponentFactory< T >::get(), CalibrationSummaryClient_cfi::params, edm::ParameterSet::registerIt(), CalibrationSummaryClient_cfi::sources, and validateEventSetupParameters().

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

◆ findDependentRecordsFor()

template<typename T >
std::set<EventSetupRecordKey> edm::eventsetup::findDependentRecordsFor ( )

Definition at line 47 of file findDependentRecordsFor.h.

47  {
48  std::set<EventSetupRecordKey> returnValue;
49  if constexpr (std::is_base_of_v<edm::eventsetup::DependentRecordTag, T>) {
50  using list_type = typename T::list_type;
51  using Pop = edm::mpl::Pop<list_type>;
52 
53  const typename Pop::Item* begin(nullptr);
54  const typename Pop::Remaining* remaining(nullptr);
55  addRecordToDependencies(begin, remaining, returnValue);
56  }
57  return returnValue;
58  }

References addRecordToDependencies().

◆ findDependents()

static void edm::eventsetup::findDependents ( const EventSetupRecordKey iKey,
Itr  itBegin,
Itr  itEnd,
std::vector< std::shared_ptr< EventSetupRecordProvider >> &  oDependents 
)
static

Definition at line 352 of file EventSetupProvider.cc.

355  {
356  for (Itr it = itBegin; it != itEnd; ++it) {
357  //does it depend on the record in question?
358  const std::set<EventSetupRecordKey>& deps = (*it)->dependentRecords();
359  if (deps.end() != deps.find(iKey)) {
360  oDependents.push_back(*it);
361  //now see who is dependent on this record since they will be indirectly dependent on iKey
362  findDependents((*it)->key(), itBegin, itEnd, oDependents);
363  }
364  }
365  }

References symbols::deps.

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

◆ kAppendToDataLabel()

static const std::string edm::eventsetup::kAppendToDataLabel ( "appendToDataLabel"  )
static

◆ makeEventSetupProvider()

std::unique_ptr< EventSetupProvider > edm::eventsetup::makeEventSetupProvider ( ParameterSet const &  params,
unsigned  subProcessIndex,
ActivityRegistry activityRegistry 
)

Definition at line 25 of file EventSetupProviderMaker.cc.

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  }

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

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

◆ moveFromTo() [1/3]

template<typename FromT , typename ToT >
void edm::eventsetup::moveFromTo ( FromT &  iFrom,
ToT &  iTo 
)

Definition at line 33 of file produce_helpers.h.

33  {
34  iTo = std::move(iFrom);
35  }

References eostools::move().

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

◆ moveFromTo() [2/3]

template<typename FromT , typename ToT >
void edm::eventsetup::moveFromTo ( std::optional< FromT > &  iFrom,
ToT &  iTo 
)

Definition at line 42 of file produce_helpers.h.

42  {
43  iTo = std::move(iFrom.value());
44  }

References eostools::move().

◆ moveFromTo() [3/3]

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.

38  {
39  iTo = std::move(iFrom);
40  }

References eostools::move().

◆ no_record_exception_message_builder()

void edm::eventsetup::no_record_exception_message_builder ( cms::Exception oException,
const char *  iName,
bool  iKnownRecord 
)

Definition at line 26 of file NoRecordException.cc.

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 }

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

◆ preferEverything()

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 110 of file EventSetupProvider.cc.

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

References cms::cuda::assert(), makeMuonMisalignmentScenario::components, Exception, edm::eventsetup::ComponentDescription::label_, edm::eventsetup::ComponentDescription::type_, and edm::eventsetup::DataProxyProvider::KeyedProxies::unInitialized().

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

◆ recordDoesExist()

bool edm::eventsetup::recordDoesExist ( edm::EventSetupImpl const &  iES,
edm::eventsetup::EventSetupRecordKey const &  iKey 
)

Definition at line 22 of file NoRecordException.cc.

22  {
23  return iES.recordIsProvidedByAModule(iKey);
24 }

References edm::EventSetupImpl::recordIsProvidedByAModule().

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

◆ swap()

void edm::eventsetup::swap ( DataKey a,
DataKey b 
)
inline

Definition at line 85 of file DataKey.h.

85 { a.swap(b); }

References a, and b.

Referenced by edm::eventsetup::NumberOfConcurrentIOVs::clear(), and edm::eventsetup::DataProxyProvider::keyedProxies().

◆ validateEventSetupParameters()

void edm::eventsetup::validateEventSetupParameters ( ParameterSet pset)

Definition at line 117 of file EventSetupProviderMaker.cc.

117  {
118  std::string modtype;
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  }

References cms::Exception::addContext(), beamerCreator::create(), trigObjTnPSource_cfi::filler, get, HerwigMaxPtPartonFilter_cfi::moduleLabel, muonDTDigis_cfi::pset, AlCaHLTBitMon_QueryRunRegistry::string, and edm::convertException::wrap().

Referenced by fillEventSetupProvider().

cms::Exception::addContext
void addContext(std::string const &context)
Definition: Exception.cc:165
DataKey
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
fwliteeswriter::Handle::m_data
const void * m_data
Definition: FWLiteESRecordWriterAnalyzer.cc:59
edmLumisInFiles.description
description
Definition: edmLumisInFiles.py:11
edm::eventsetup::DataProxyProvider::KeyedProxies::unInitialized
bool unInitialized() const
Definition: DataProxyProvider.cc:38
cms::cuda::assert
assert(be >=bs)
CalibrationSummaryClient_cfi.sources
sources
Definition: CalibrationSummaryClient_cfi.py:23
edm::eventsetup::DataProxyProvider::KeyedProxies
Definition: DataProxyProvider.h:73
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition: beamerCreator.py:44
edm::eventsetup::depends_on::makeCaller
DependsOnCaller< T, TRecord, T2, typename HolderToCaller< TRecord, T1 >::Caller_t > makeCaller(T *iT, const TRecord *iRec, const TwoHolder< T1, void(T::*)(const T2 &)> &iHolder)
Definition: eventsetup_dependsOn.h:147
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
ESPreFunctorDecorator
edm::eventsetup::ComponentDescription::label_
std::string label_
Definition: ComponentDescription.h:31
edm::eventsetup::ComponentDescription::type_
std::string type_
Definition: ComponentDescription.h:32
edm::eventsetup::createDependsOnCaller
DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > createDependsOnCaller(T *iCallee, const TRecord *, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
Definition: eventsetup_dependsOn.h:87
edm::convertException::wrap
auto wrap(F iFunc) -> decltype(iFunc())
Definition: ConvertException.h:19
edm::eventsetup::findDependents
static void findDependents(const EventSetupRecordKey &iKey, Itr itBegin, Itr itEnd, std::vector< std::shared_ptr< EventSetupRecordProvider >> &oDependents)
Definition: EventSetupProvider.cc:352
b
double b
Definition: hdecay.h:118
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::eventsetup::validateEventSetupParameters
void validateEventSetupParameters(ParameterSet &pset)
Definition: EventSetupProviderMaker.cc:117
a
double a
Definition: hdecay.h:119
ParameterSet
Definition: Functions.h:16
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
value
Definition: value.py:1
get
#define get
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
edm::eventsetup::EventSetupRecordProvider::DataToPreferredProviderMap
std::map< DataKey, ComponentDescription > DataToPreferredProviderMap
Definition: EventSetupRecordProvider.h:51
eostools.move
def move(src, dest)
Definition: eostools.py:511
ConfigurationDescriptions
edm::eventsetup::addRecordToDependencies
void addRecordToDependencies(const TFirst *, const TRemaining *, std::set< EventSetupRecordKey > &oSet)
Definition: findDependentRecordsFor.h:36
makeMuonMisalignmentScenario.components
string components
Definition: makeMuonMisalignmentScenario.py:58
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
Exception
Definition: hltDiff.cc:246
fwliteeswriter::Handle::m_desc
const edm::eventsetup::ComponentDescription * m_desc
Definition: FWLiteESRecordWriterAnalyzer.cc:61
cms::Exception
Definition: Exception.h:70
genParticles_cff.map
map
Definition: genParticles_cff.py:11
dummy
Definition: DummySelector.h:38
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
fwliteeswriter::DummyType
Definition: FWLiteESRecordWriterAnalyzer.cc:53
symbols.deps
deps
Definition: symbols.py:55
edm::mpl::Pop
Definition: mplVector.h:62
CommonMethods.cp
def cp(fromDir, toDir, listOfFiles, overwrite=False, smallList=False)
Definition: CommonMethods.py:192
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
crabWrapper.key
key
Definition: crabWrapper.py:19
edm::errors::Configuration
Definition: EDMException.h:36
edm::eventsetup::allowConcurrentIOVs
bool allowConcurrentIOVs(EventSetupRecordKey const &)
Definition: RecordDependencyRegister.cc:46
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
edm::eventsetup::Itr
RecordProviders::iterator Itr
Definition: EventSetupProvider.cc:351
GetRecoTauVFromDQM_MC_cff.next
next
Definition: GetRecoTauVFromDQM_MC_cff.py:31
fwliteeswriter::Handle::m_info
const DataInfo * m_info
Definition: FWLiteESRecordWriterAnalyzer.cc:60