11 #include <top/dbobjects/TOPCalTimebase.h>
13 #include <framework/logging/Logger.h>
25 typedef map<unsigned, const TOPSampleTimes*>::const_iterator
Iterator;
28 void TOPCalTimebase::append(
unsigned scrodID,
unsigned channel,
29 const vector<double>& sampleTimes,
32 unsigned key = (scrodID << 16) + (channel % 128);
34 if (it == m_map.end()) {
35 m_sampleTimes.push_back(
TOPSampleTimes(scrodID, channel, m_syncTimeBase));
36 m_sampleTimes.back().setTimeAxis(sampleTimes, m_syncTimeBase);
37 m_map[key] = &m_sampleTimes.back();
40 const_cast<TOPSampleTimes*
>(it->second)->setTimeAxis(sampleTimes, m_syncTimeBase);
41 B2WARNING(
"TOPCalTimebase: constants replaced."
42 <<
LogVar(
"scrodID", scrodID)
43 <<
LogVar(
"channel", channel));
45 B2WARNING(
"TOPCalTimebase: old constants kept."
46 <<
LogVar(
"scrodID", scrodID)
47 <<
LogVar(
"channel", channel));
55 unsigned channel)
const
59 unsigned key = (scrodID << 16) + (channel % 128);
61 if (it == m_map.end()) {
62 if (!m_sampleTime) m_sampleTime =
new TOPSampleTimes(0, 0, m_syncTimeBase);
69 bool TOPCalTimebase::isAvailable(
unsigned scrodID,
unsigned channel)
const
73 unsigned key = (scrodID << 16) + (channel % 128);
75 return (it != m_map.end());
82 for (
const auto& sampleTime : m_sampleTimes) {
83 unsigned key = (sampleTime.getScrodID() << 16) + sampleTime.getChannel();
84 m_map[key] = &sampleTime;
87 B2DEBUG(100,
"Map created, size = " << m_map.size());