CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::eventsetup::EventSetupsController Class Reference

#include <EventSetupsController.h>

Public Member Functions

void clearComponents ()
 
bool doWeNeedToWaitForIOVsToFinish (IOVSyncValue const &) const
 
void endIOVsAsync (edm::WaitingTaskHolder iEndTask)
 
std::multimap< ParameterSetID, ESProducerInfo > const & esproducers () const
 
std::multimap< ParameterSetID, ESSourceInfo > const & essources () const
 
void eventSetupForInstanceAsync (IOVSyncValue const &, WaitingTaskHolder const &taskToStartAfterIOVInit, WaitingTaskList &endIOVWaitingTasks, std::vector< std::shared_ptr< const EventSetupImpl >> &)
 
 EventSetupsController ()
 
 EventSetupsController (EventSetupsController const &)=delete
 
void finishConfiguration ()
 
void forceCacheClear ()
 
std::shared_ptr< DataProxyProvidergetESProducerAndRegisterProcess (ParameterSet const &pset, unsigned subProcessIndex)
 
ParameterSet const * getESProducerPSet (ParameterSetID const &psetID, unsigned subProcessIndex) const
 
std::shared_ptr< EventSetupRecordIntervalFindergetESSourceAndRegisterProcess (ParameterSet const &pset, unsigned subProcessIndex)
 
bool hasNonconcurrentFinder () const
 
unsigned indexOfNextProcess () const
 
bool isFirstMatch (ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
 
bool isLastMatch (ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
 
bool isMatchingESProducer (ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
 
bool isMatchingESSource (ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
 
void lookForMatches (ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex, bool &firstProcessWithThisPSet, bool &precedingHasMatchingPSet) const
 
std::shared_ptr< EventSetupProvidermakeProvider (ParameterSet &, ActivityRegistry *, ParameterSet const *eventSetupPset=nullptr)
 
bool mustFinishConfiguration () const
 
EventSetupsController const & operator= (EventSetupsController const &)=delete
 
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > const & providers () const
 
void putESProducer (ParameterSet const &pset, std::shared_ptr< DataProxyProvider > const &component, unsigned subProcessIndex)
 
void putESSource (ParameterSet const &pset, std::shared_ptr< EventSetupRecordIntervalFinder > const &component, unsigned subProcessIndex)
 
void setMaxConcurrentIOVs (unsigned int nStreams, unsigned int nConcurrentLumis)
 

Private Member Functions

void checkESProducerSharing ()
 
void initializeEventSetupRecordIOVQueues ()
 

Private Attributes

std::multimap< ParameterSetID, ESProducerInfoesproducers_
 
std::multimap< ParameterSetID, ESSourceInfoessources_
 
std::vector< propagate_const< std::unique_ptr< EventSetupRecordIOVQueue > > > eventSetupRecordIOVQueues_
 
bool hasNonconcurrentFinder_ = false
 
bool mustFinishConfiguration_ = true
 
NumberOfConcurrentIOVs numberOfConcurrentIOVs_
 
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > providers_
 
tbb::task_arena taskArena_
 

Detailed Description

Description: Manages a group of EventSetups which can share components

Usage: <usage>

Definition at line 80 of file EventSetupsController.h.

Constructor & Destructor Documentation

◆ EventSetupsController() [1/2]

edm::eventsetup::EventSetupsController::EventSetupsController ( )

Definition at line 34 of file EventSetupsController.cc.

34 : taskArena_(tbb::this_task_arena::max_concurrency()) {}

◆ EventSetupsController() [2/2]

edm::eventsetup::EventSetupsController::EventSetupsController ( EventSetupsController const &  )
delete

Member Function Documentation

◆ checkESProducerSharing()

void edm::eventsetup::EventSetupsController::checkESProducerSharing ( )
private

Definition at line 357 of file EventSetupsController.cc.

357  {
358  // Loop over SubProcesses, skip the top level process.
359  auto esProvider = providers_.begin();
360  auto const esProviderEnd = providers_.end();
361  if (esProvider != esProviderEnd)
362  ++esProvider;
363  for (; esProvider != esProviderEnd; ++esProvider) {
364  // An element is added to this set for each ESProducer
365  // when we have determined which preceding process
366  // this process can share that ESProducer with or
367  // we have determined that it cannot be shared with
368  // any preceding process.
369  // Note the earliest possible preceding process
370  // will be the one selected if there is more than one.
371  std::set<ParameterSetIDHolder> sharingCheckDone;
372 
373  // This will hold an entry for DataProxy's that are
374  // referenced by an EventSetupRecord in this SubProcess.
375  // But only for DataProxy's that are associated with
376  // an ESProducer (not the ones associated with ESSource's
377  // or EDLooper's)
378  std::map<EventSetupRecordKey, std::vector<ComponentDescription const*>> referencedESProducers;
379 
380  // For each EventSetupProvider from a SubProcess, loop over the
381  // EventSetupProviders from the preceding processes (the first
382  // preceding process will be the top level process and the others
383  // SubProcess's)
384  for (auto precedingESProvider = providers_.begin(); precedingESProvider != esProvider; ++precedingESProvider) {
385  (*esProvider)->checkESProducerSharing(**precedingESProvider, sharingCheckDone, referencedESProducers, *this);
386  }
387 
388  (*esProvider)->resetRecordToProxyPointers();
389  }
390  for (auto& eventSetupProvider : providers_) {
391  eventSetupProvider->clearInitializationData();
392  }
393  }

References providers_.

Referenced by finishConfiguration().

◆ clearComponents()

void edm::eventsetup::EventSetupsController::clearComponents ( )

Definition at line 200 of file EventSetupsController.cc.

200  {
201  esproducers_.clear();
202  essources_.clear();
203  }

References esproducers_, and essources_.

Referenced by finishConfiguration().

◆ doWeNeedToWaitForIOVsToFinish()

bool edm::eventsetup::EventSetupsController::doWeNeedToWaitForIOVsToFinish ( IOVSyncValue const &  syncValue) const

Definition at line 131 of file EventSetupsController.cc.

131  {
132  if (hasNonconcurrentFinder()) {
133  for (auto& eventSetupProvider : providers_) {
134  if (eventSetupProvider->doWeNeedToWaitForIOVsToFinish(syncValue)) {
135  return true;
136  }
137  }
138  }
139  return false;
140  }

References hasNonconcurrentFinder(), and providers_.

◆ endIOVsAsync()

void edm::eventsetup::EventSetupsController::endIOVsAsync ( edm::WaitingTaskHolder  iEndTask)

Definition at line 36 of file EventSetupsController.cc.

36  {
37  for (auto& eventSetupRecordIOVQueue : eventSetupRecordIOVQueues_) {
38  eventSetupRecordIOVQueue->endIOVAsync(iEndTask);
39  }
40  }

References eventSetupRecordIOVQueues_.

Referenced by edm::eventsetup::SynchronousEventSetupsController::~SynchronousEventSetupsController().

◆ esproducers()

std::multimap<ParameterSetID, ESProducerInfo> const& edm::eventsetup::EventSetupsController::esproducers ( ) const
inline

Definition at line 155 of file EventSetupsController.h.

155 { return esproducers_; }

References esproducers_.

◆ essources()

std::multimap<ParameterSetID, ESSourceInfo> const& edm::eventsetup::EventSetupsController::essources ( ) const
inline

Definition at line 157 of file EventSetupsController.h.

157 { return essources_; }

References essources_.

◆ eventSetupForInstanceAsync()

void edm::eventsetup::EventSetupsController::eventSetupForInstanceAsync ( IOVSyncValue const &  syncValue,
WaitingTaskHolder const &  taskToStartAfterIOVInit,
WaitingTaskList endIOVWaitingTasks,
std::vector< std::shared_ptr< const EventSetupImpl >> &  eventSetupImpls 
)

Definition at line 92 of file EventSetupsController.cc.

96  {
98 
99  bool newEventSetupImpl = false;
100  eventSetupImpls.clear();
101  eventSetupImpls.reserve(providers_.size());
102 
103  // Note that unless there are one or more SubProcesses providers_ will only
104  // contain one element.
105 
106  for (auto& eventSetupProvider : providers_) {
107  eventSetupProvider->setAllValidityIntervals(syncValue);
108  }
109 
110  for (auto& eventSetupRecordIOVQueue : eventSetupRecordIOVQueues_) {
111  // For a particular record, if the top level process or any SubProcess requires
112  // starting a new IOV, then we must start a new IOV for all of them. And we
113  // need to know whether this is needed at this point in time. This is
114  // recorded in the EventSetupRecordProviders.
115  eventSetupRecordIOVQueue->setNewIntervalForAnySubProcess();
116  }
117 
118  for (auto& eventSetupProvider : providers_) {
119  // Decides whether we can reuse the existing EventSetupImpl and if we can
120  // returns it. If a new one is needed it will create it, although the pointers
121  // to the EventSetupRecordImpl's will not be set yet in the returned EventSetupImpl
122  // object.
123  eventSetupImpls.push_back(eventSetupProvider->eventSetupForInstance(syncValue, newEventSetupImpl));
124  }
125 
126  for (auto& eventSetupRecordIOVQueue : eventSetupRecordIOVQueues_) {
127  eventSetupRecordIOVQueue->checkForNewIOVs(taskToStartAfterIOVInit, endIOVWaitingTasks, newEventSetupImpl);
128  }
129  }

References eventSetupRecordIOVQueues_, finishConfiguration(), and providers_.

Referenced by edm::eventsetup::synchronousEventSetupForInstance().

◆ finishConfiguration()

void edm::eventsetup::EventSetupsController::finishConfiguration ( )

Definition at line 66 of file EventSetupsController.cc.

66  {
68  for (auto& eventSetupProvider : providers_) {
70  }
71 
72  for (auto& eventSetupProvider : providers_) {
73  eventSetupProvider->finishConfiguration(numberOfConcurrentIOVs_, hasNonconcurrentFinder_);
74  }
75 
76  // When the ESSources and ESProducers were constructed a first pass was
77  // done which attempts to get component sharing between SubProcesses
78  // correct, but in this pass only the configuration of the components
79  // being shared are compared. This is not good enough for ESProducers.
80  // In the following function, all the other components that contribute
81  // to the same record and also the records that record depends on are
82  // also checked. The component sharing is appropriately fixed as necessary.
85 
89  }
90  }

References checkESProducerSharing(), edm::eventsetup::NumberOfConcurrentIOVs::clear(), clearComponents(), edm::eventsetup::NumberOfConcurrentIOVs::fillRecordsNotAllowingConcurrentIOVs(), hasNonconcurrentFinder_, initializeEventSetupRecordIOVQueues(), mustFinishConfiguration_, numberOfConcurrentIOVs_, and providers_.

Referenced by eventSetupForInstanceAsync().

◆ forceCacheClear()

void edm::eventsetup::EventSetupsController::forceCacheClear ( )

Definition at line 142 of file EventSetupsController.cc.

142  {
143  for (auto& eventSetupProvider : providers_) {
144  eventSetupProvider->forceCacheClear();
145  }
146  }

References providers_.

◆ getESProducerAndRegisterProcess()

std::shared_ptr< DataProxyProvider > edm::eventsetup::EventSetupsController::getESProducerAndRegisterProcess ( ParameterSet const &  pset,
unsigned  subProcessIndex 
)

Definition at line 148 of file EventSetupsController.cc.

149  {
150  // Try to find a DataProxyProvider with a matching ParameterSet
151  auto elements = esproducers_.equal_range(pset.id());
152  for (auto it = elements.first; it != elements.second; ++it) {
153  // Untracked parameters must also match, do complete comparison if IDs match
154  if (isTransientEqual(pset, *it->second.pset())) {
155  // Register processes with an exact match
156  it->second.subProcessIndexes().push_back(subProcessIndex);
157  // Return the DataProxyProvider
158  return it->second.provider();
159  }
160  }
161  // Could not find it
162  return std::shared_ptr<DataProxyProvider>();
163  }

References bookConverter::elements, esproducers_, edm::isTransientEqual(), and muonDTDigis_cfi::pset.

Referenced by edm::eventsetup::ModuleMakerTraits::getComponentAndRegisterProcess().

◆ getESProducerPSet()

ParameterSet const * edm::eventsetup::EventSetupsController::getESProducerPSet ( ParameterSetID const &  psetID,
unsigned  subProcessIndex 
) const

Definition at line 339 of file EventSetupsController.cc.

340  {
341  auto elements = esproducers_.equal_range(psetID);
342  for (auto it = elements.first; it != elements.second; ++it) {
343  std::vector<unsigned> const& subProcessIndexes = it->second.subProcessIndexes();
344 
345  auto iFound = std::find(subProcessIndexes.begin(), subProcessIndexes.end(), subProcessIndex);
346  if (iFound == subProcessIndexes.end()) {
347  continue;
348  }
349  return it->second.pset();
350  }
351  throw edm::Exception(edm::errors::LogicError) << "EventSetupsController::getESProducerPSet\n"
352  << "Subprocess index not found. This should never happen\n"
353  << "Please report this to a Framework Developer\n";
354  return nullptr;
355  }

References bookConverter::elements, esproducers_, Exception, spr::find(), and edm::errors::LogicError.

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

◆ getESSourceAndRegisterProcess()

std::shared_ptr< EventSetupRecordIntervalFinder > edm::eventsetup::EventSetupsController::getESSourceAndRegisterProcess ( ParameterSet const &  pset,
unsigned  subProcessIndex 
)

Definition at line 174 of file EventSetupsController.cc.

175  {
176  // Try to find a EventSetupRecordIntervalFinder with a matching ParameterSet
177  auto elements = essources_.equal_range(pset.id());
178  for (auto it = elements.first; it != elements.second; ++it) {
179  // Untracked parameters must also match, do complete comparison if IDs match
180  if (isTransientEqual(pset, *it->second.pset())) {
181  // Register processes with an exact match
182  it->second.subProcessIndexes().push_back(subProcessIndex);
183  // Return the EventSetupRecordIntervalFinder
184  return it->second.finder();
185  }
186  }
187  // Could not find it
188  return std::shared_ptr<EventSetupRecordIntervalFinder>();
189  }

References bookConverter::elements, essources_, edm::isTransientEqual(), and muonDTDigis_cfi::pset.

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

◆ hasNonconcurrentFinder()

bool edm::eventsetup::EventSetupsController::hasNonconcurrentFinder ( ) const
inline

Definition at line 159 of file EventSetupsController.h.

159 { return hasNonconcurrentFinder_; }

References hasNonconcurrentFinder_.

Referenced by doWeNeedToWaitForIOVsToFinish().

◆ indexOfNextProcess()

unsigned edm::eventsetup::EventSetupsController::indexOfNextProcess ( ) const
inline

◆ initializeEventSetupRecordIOVQueues()

void edm::eventsetup::EventSetupsController::initializeEventSetupRecordIOVQueues ( )
private

Definition at line 395 of file EventSetupsController.cc.

395  {
396  std::set<EventSetupRecordKey> keys;
397  for (auto const& provider : providers_) {
398  provider->fillKeys(keys);
399  }
400 
401  for (auto const& key : keys) {
402  eventSetupRecordIOVQueues_.push_back(
403  std::make_unique<EventSetupRecordIOVQueue>(numberOfConcurrentIOVs_.numberOfConcurrentIOVs(key)));
404  EventSetupRecordIOVQueue& iovQueue = *eventSetupRecordIOVQueues_.back();
405  for (auto& provider : providers_) {
406  EventSetupRecordProvider* recProvider = provider->tryToGetRecordProvider(key);
407  if (recProvider) {
408  iovQueue.addRecProvider(recProvider);
409  }
410  }
411  }
412  }

References edm::eventsetup::EventSetupRecordIOVQueue::addRecProvider(), eventSetupRecordIOVQueues_, crabWrapper::key, relativeConstraints::keys, edm::eventsetup::NumberOfConcurrentIOVs::numberOfConcurrentIOVs(), numberOfConcurrentIOVs_, and providers_.

Referenced by finishConfiguration().

◆ isFirstMatch()

bool edm::eventsetup::EventSetupsController::isFirstMatch ( ParameterSetID const &  psetID,
unsigned  subProcessIndex,
unsigned  precedingProcessIndex 
) const

Definition at line 239 of file EventSetupsController.cc.

241  {
242  auto elements = esproducers_.equal_range(psetID);
243  for (auto it = elements.first; it != elements.second; ++it) {
244  std::vector<unsigned> const& subProcessIndexes = it->second.subProcessIndexes();
245 
246  auto iFound = std::find(subProcessIndexes.begin(), subProcessIndexes.end(), subProcessIndex);
247  if (iFound == subProcessIndexes.end()) {
248  continue;
249  }
250 
251  auto iFoundPreceding = std::find(subProcessIndexes.begin(), iFound, precedingProcessIndex);
252  if (iFoundPreceding == iFound) {
253  break;
254  } else {
255  return iFoundPreceding == subProcessIndexes.begin();
256  }
257  }
258  throw edm::Exception(edm::errors::LogicError) << "EventSetupsController::isFirstMatch\n"
259  << "Subprocess index not found. This should never happen\n"
260  << "Please report this to a Framework Developer\n";
261  return false;
262  }

References bookConverter::elements, esproducers_, Exception, spr::find(), and edm::errors::LogicError.

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

◆ isLastMatch()

bool edm::eventsetup::EventSetupsController::isLastMatch ( ParameterSetID const &  psetID,
unsigned  subProcessIndex,
unsigned  precedingProcessIndex 
) const

Definition at line 264 of file EventSetupsController.cc.

266  {
267  auto elements = esproducers_.equal_range(psetID);
268  for (auto it = elements.first; it != elements.second; ++it) {
269  std::vector<unsigned> const& subProcessIndexes = it->second.subProcessIndexes();
270 
271  auto iFound = std::find(subProcessIndexes.begin(), subProcessIndexes.end(), subProcessIndex);
272  if (iFound == subProcessIndexes.end()) {
273  continue;
274  }
275 
276  auto iFoundPreceding = std::find(subProcessIndexes.begin(), iFound, precedingProcessIndex);
277  if (iFoundPreceding == iFound) {
278  break;
279  } else {
280  return (++iFoundPreceding) == iFound;
281  }
282  }
283  throw edm::Exception(edm::errors::LogicError) << "EventSetupsController::isLastMatch\n"
284  << "Subprocess index not found. This should never happen\n"
285  << "Please report this to a Framework Developer\n";
286  return false;
287  }

References bookConverter::elements, esproducers_, Exception, spr::find(), and edm::errors::LogicError.

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

◆ isMatchingESProducer()

bool edm::eventsetup::EventSetupsController::isMatchingESProducer ( ParameterSetID const &  psetID,
unsigned  subProcessIndex,
unsigned  precedingProcessIndex 
) const

Definition at line 314 of file EventSetupsController.cc.

316  {
317  auto elements = esproducers_.equal_range(psetID);
318  for (auto it = elements.first; it != elements.second; ++it) {
319  std::vector<unsigned> const& subProcessIndexes = it->second.subProcessIndexes();
320 
321  auto iFound = std::find(subProcessIndexes.begin(), subProcessIndexes.end(), subProcessIndex);
322  if (iFound == subProcessIndexes.end()) {
323  continue;
324  }
325 
326  auto iFoundPreceding = std::find(subProcessIndexes.begin(), iFound, precedingProcessIndex);
327  if (iFoundPreceding == iFound) {
328  return false;
329  } else {
330  return true;
331  }
332  }
333  throw edm::Exception(edm::errors::LogicError) << "EventSetupsController::lookForMatchingESSource\n"
334  << "Subprocess index not found. This should never happen\n"
335  << "Please report this to a Framework Developer\n";
336  return false;
337  }

References bookConverter::elements, esproducers_, Exception, spr::find(), and edm::errors::LogicError.

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

◆ isMatchingESSource()

bool edm::eventsetup::EventSetupsController::isMatchingESSource ( ParameterSetID const &  psetID,
unsigned  subProcessIndex,
unsigned  precedingProcessIndex 
) const

Definition at line 289 of file EventSetupsController.cc.

291  {
292  auto elements = essources_.equal_range(psetID);
293  for (auto it = elements.first; it != elements.second; ++it) {
294  std::vector<unsigned> const& subProcessIndexes = it->second.subProcessIndexes();
295 
296  auto iFound = std::find(subProcessIndexes.begin(), subProcessIndexes.end(), subProcessIndex);
297  if (iFound == subProcessIndexes.end()) {
298  continue;
299  }
300 
301  auto iFoundPreceding = std::find(subProcessIndexes.begin(), iFound, precedingProcessIndex);
302  if (iFoundPreceding == iFound) {
303  return false;
304  } else {
305  return true;
306  }
307  }
308  throw edm::Exception(edm::errors::LogicError) << "EventSetupsController::lookForMatchingESSource\n"
309  << "Subprocess index not found. This should never happen\n"
310  << "Please report this to a Framework Developer\n";
311  return false;
312  }

References bookConverter::elements, essources_, Exception, spr::find(), and edm::errors::LogicError.

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

◆ lookForMatches()

void edm::eventsetup::EventSetupsController::lookForMatches ( ParameterSetID const &  psetID,
unsigned  subProcessIndex,
unsigned  precedingProcessIndex,
bool &  firstProcessWithThisPSet,
bool &  precedingHasMatchingPSet 
) const

Definition at line 205 of file EventSetupsController.cc.

209  {
210  auto elements = esproducers_.equal_range(psetID);
211  for (auto it = elements.first; it != elements.second; ++it) {
212  std::vector<unsigned> const& subProcessIndexes = it->second.subProcessIndexes();
213 
214  auto iFound = std::find(subProcessIndexes.begin(), subProcessIndexes.end(), subProcessIndex);
215  if (iFound == subProcessIndexes.end()) {
216  continue;
217  }
218 
219  if (iFound == subProcessIndexes.begin()) {
220  firstProcessWithThisPSet = true;
221  precedingHasMatchingPSet = false;
222  } else {
223  auto iFoundPreceding = std::find(subProcessIndexes.begin(), iFound, precedingProcessIndex);
224  if (iFoundPreceding == iFound) {
225  firstProcessWithThisPSet = false;
226  precedingHasMatchingPSet = false;
227  } else {
228  firstProcessWithThisPSet = false;
229  precedingHasMatchingPSet = true;
230  }
231  }
232  return;
233  }
234  throw edm::Exception(edm::errors::LogicError) << "EventSetupsController::lookForMatches\n"
235  << "Subprocess index not found. This should never happen\n"
236  << "Please report this to a Framework Developer\n";
237  }

References bookConverter::elements, esproducers_, Exception, spr::find(), and edm::errors::LogicError.

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

◆ makeProvider()

std::shared_ptr< EventSetupProvider > edm::eventsetup::EventSetupsController::makeProvider ( ParameterSet iPSet,
ActivityRegistry activityRegistry,
ParameterSet const *  eventSetupPset = nullptr 
)

Definition at line 42 of file EventSetupsController.cc.

44  {
45  // Makes an EventSetupProvider
46  // Also parses the prefer information from ParameterSets and puts
47  // it in a map that is stored in the EventSetupProvider
48  std::shared_ptr<EventSetupProvider> returnValue(
49  makeEventSetupProvider(iPSet, providers_.size(), activityRegistry, &taskArena_));
50 
51  // Construct the ESProducers and ESSources
52  // shared_ptrs to them are temporarily stored in this
53  // EventSetupsController and in the EventSetupProvider
54  fillEventSetupProvider(*this, *returnValue, iPSet);
55 
57 
58  providers_.push_back(returnValue);
59  return returnValue;
60  }

References edm::eventsetup::fillEventSetupProvider(), edm::eventsetup::makeEventSetupProvider(), numberOfConcurrentIOVs_, providers_, edm::eventsetup::NumberOfConcurrentIOVs::readConfigurationParameters(), and taskArena_.

Referenced by edm::eventsetup::SynchronousEventSetupsController::makeProvider(), and edm::SubProcess::SubProcess().

◆ mustFinishConfiguration()

bool edm::eventsetup::EventSetupsController::mustFinishConfiguration ( ) const
inline

Definition at line 160 of file EventSetupsController.h.

160 { return mustFinishConfiguration_; }

References mustFinishConfiguration_.

◆ operator=()

EventSetupsController const& edm::eventsetup::EventSetupsController::operator= ( EventSetupsController const &  )
delete

◆ providers()

std::vector<propagate_const<std::shared_ptr<EventSetupProvider> > > const& edm::eventsetup::EventSetupsController::providers ( ) const
inline

Definition at line 153 of file EventSetupsController.h.

153 { return providers_; }

References providers_.

◆ putESProducer()

void edm::eventsetup::EventSetupsController::putESProducer ( ParameterSet const &  pset,
std::shared_ptr< DataProxyProvider > const &  component,
unsigned  subProcessIndex 
)

Definition at line 165 of file EventSetupsController.cc.

167  {
168  auto newElement =
169  esproducers_.insert(std::pair<ParameterSetID, ESProducerInfo>(pset.id(), ESProducerInfo(&pset, component)));
170  // Register processes with an exact match
171  newElement->second.subProcessIndexes().push_back(subProcessIndex);
172  }

References esproducers_, and muonDTDigis_cfi::pset.

Referenced by edm::eventsetup::ModuleMakerTraits::putComponent().

◆ putESSource()

void edm::eventsetup::EventSetupsController::putESSource ( ParameterSet const &  pset,
std::shared_ptr< EventSetupRecordIntervalFinder > const &  component,
unsigned  subProcessIndex 
)

Definition at line 191 of file EventSetupsController.cc.

193  {
194  auto newElement =
195  essources_.insert(std::pair<ParameterSetID, ESSourceInfo>(pset.id(), ESSourceInfo(&pset, component)));
196  // Register processes with an exact match
197  newElement->second.subProcessIndexes().push_back(subProcessIndex);
198  }

References essources_, and muonDTDigis_cfi::pset.

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

◆ setMaxConcurrentIOVs()

void edm::eventsetup::EventSetupsController::setMaxConcurrentIOVs ( unsigned int  nStreams,
unsigned int  nConcurrentLumis 
)

Member Data Documentation

◆ esproducers_

std::multimap<ParameterSetID, ESProducerInfo> edm::eventsetup::EventSetupsController::esproducers_
private

◆ essources_

std::multimap<ParameterSetID, ESSourceInfo> edm::eventsetup::EventSetupsController::essources_
private

◆ eventSetupRecordIOVQueues_

std::vector<propagate_const<std::unique_ptr<EventSetupRecordIOVQueue> > > edm::eventsetup::EventSetupsController::eventSetupRecordIOVQueues_
private

◆ hasNonconcurrentFinder_

bool edm::eventsetup::EventSetupsController::hasNonconcurrentFinder_ = false
private

Definition at line 188 of file EventSetupsController.h.

Referenced by finishConfiguration(), and hasNonconcurrentFinder().

◆ mustFinishConfiguration_

bool edm::eventsetup::EventSetupsController::mustFinishConfiguration_ = true
private

Definition at line 189 of file EventSetupsController.h.

Referenced by finishConfiguration(), and mustFinishConfiguration().

◆ numberOfConcurrentIOVs_

NumberOfConcurrentIOVs edm::eventsetup::EventSetupsController::numberOfConcurrentIOVs_
private

◆ providers_

std::vector<propagate_const<std::shared_ptr<EventSetupProvider> > > edm::eventsetup::EventSetupsController::providers_
private

◆ taskArena_

tbb::task_arena edm::eventsetup::EventSetupsController::taskArena_
private

Definition at line 167 of file EventSetupsController.h.

Referenced by makeProvider().

edm::errors::LogicError
Definition: EDMException.h:37
edm::eventsetup::EventSetupsController::taskArena_
tbb::task_arena taskArena_
Definition: EventSetupsController.h:167
edm::eventsetup::EventSetupsController::eventSetupRecordIOVQueues_
std::vector< propagate_const< std::unique_ptr< EventSetupRecordIOVQueue > > > eventSetupRecordIOVQueues_
Definition: EventSetupsController.h:173
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
runTheMatrix.nStreams
nStreams
Definition: runTheMatrix.py:371
edm::eventsetup::makeEventSetupProvider
std::unique_ptr< EventSetupProvider > makeEventSetupProvider(ParameterSet const &params, unsigned subProcessIndex, ActivityRegistry *activityRegistry, tbb::task_arena *taskArena)
Definition: EventSetupProviderMaker.cc:25
edm::eventsetup::EventSetupsController::providers_
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > providers_
Definition: EventSetupsController.h:168
edm::eventsetup::EventSetupsController::essources_
std::multimap< ParameterSetID, ESSourceInfo > essources_
Definition: EventSetupsController.h:186
edm::eventsetup::EventSetupsController::numberOfConcurrentIOVs_
NumberOfConcurrentIOVs numberOfConcurrentIOVs_
Definition: EventSetupsController.h:169
edm::eventsetup::EventSetupsController::checkESProducerSharing
void checkESProducerSharing()
Definition: EventSetupsController.cc:357
edm::eventsetup::NumberOfConcurrentIOVs::readConfigurationParameters
void readConfigurationParameters(ParameterSet const *eventSetupPset)
Definition: NumberOfConcurrentIOVs.cc:19
edm::eventsetup::EventSetupsController::hasNonconcurrentFinder_
bool hasNonconcurrentFinder_
Definition: EventSetupsController.h:188
edm::eventsetup::EventSetupsController::finishConfiguration
void finishConfiguration()
Definition: EventSetupsController.cc:66
edm::isTransientEqual
bool isTransientEqual(ParameterSet const &a, ParameterSet const &b)
Definition: ParameterSet.cc:777
edm::eventsetup::NumberOfConcurrentIOVs::numberOfConcurrentIOVs
unsigned int numberOfConcurrentIOVs(EventSetupRecordKey const &, bool printInfoMsg=false) const
Definition: NumberOfConcurrentIOVs.cc:47
edm::eventsetup::NumberOfConcurrentIOVs::clear
void clear()
Definition: NumberOfConcurrentIOVs.cc:75
edm::eventsetup::EventSetupsController::hasNonconcurrentFinder
bool hasNonconcurrentFinder() const
Definition: EventSetupsController.h:159
bookConverter.elements
elements
Definition: bookConverter.py:147
edm::eventsetup::NumberOfConcurrentIOVs::fillRecordsNotAllowingConcurrentIOVs
void fillRecordsNotAllowingConcurrentIOVs(EventSetupProvider const &)
Definition: NumberOfConcurrentIOVs.cc:43
Exception
Definition: hltDiff.cc:245
edm::eventsetup::fillEventSetupProvider
void fillEventSetupProvider(EventSetupsController &esController, EventSetupProvider &cp, ParameterSet &params)
Definition: EventSetupProviderMaker.cc:94
edm::eventsetup::EventSetupsController::initializeEventSetupRecordIOVQueues
void initializeEventSetupRecordIOVQueues()
Definition: EventSetupsController.cc:395
edm::eventsetup::EventSetupsController::mustFinishConfiguration_
bool mustFinishConfiguration_
Definition: EventSetupsController.h:189
edm::eventsetup::NumberOfConcurrentIOVs::setMaxConcurrentIOVs
void setMaxConcurrentIOVs(unsigned int nStreams, unsigned int nConcurrentLumis)
Definition: NumberOfConcurrentIOVs.cc:39
edm::eventsetup::EventSetupsController::clearComponents
void clearComponents()
Definition: EventSetupsController.cc:200
edm::eventsetup::EventSetupsController::esproducers_
std::multimap< ParameterSetID, ESProducerInfo > esproducers_
Definition: EventSetupsController.h:185
crabWrapper.key
key
Definition: crabWrapper.py:19
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27