23 std::unique_ptr<const Acts::Logger>
logger)
30 std::lock_guard<std::mutex> alignmentLock(m_alignmentMutex);
35 ACTS_VERBOSE(
"IOV handling in thread " << std::this_thread::get_id() <<
".");
36 ACTS_VERBOSE(
"IOV resolved to " << iov <<
" - from event "
43 if (
m_cfg.randomNumberSvc !=
nullptr) {
44 if (
auto it = m_activeIovs.find(iov);
it != m_activeIovs.end()) {
46 it->second.lastAccessed = m_eventsSeen;
50 m_activeIovs.emplace(iov,
IovStatus{m_eventsSeen});
54 <<
", emulate new alignment.");
59 for (
auto& lstore :
m_cfg.detectorStore) {
60 for (
auto& ldet : lstore) {
65 applyTransform(tForm,
m_cfg, rng, iov);
67 ldet->addAlignedTransform(tForm, iov);
74 if (
m_cfg.doGarbageCollection) {
75 for (
auto it = m_activeIovs.begin();
it != m_activeIovs.end();) {
76 unsigned int this_iov =
it->first;
78 if (m_eventsSeen -
status.lastAccessed >
m_cfg.flushSize) {
79 ACTS_DEBUG(
"IOV " << this_iov <<
" has not been accessed in the last "
80 <<
m_cfg.flushSize <<
" events, clearing");
81 it = m_activeIovs.erase(
it);
82 for (
auto& lstore :
m_cfg.detectorStore) {
83 for (
auto& ldet : lstore) {
84 ldet->clearAlignedTransform(this_iov);