Belle II Software  release-05-02-19
TOPCalTimebase.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <top/dbobjects/TOPSampleTimes.h>
14 
15 #include <TObject.h>
16 
17 #include <map>
18 #include <vector>
19 
20 namespace Belle2 {
29  class TOPCalTimebase: public TObject {
30  public:
31 
36  {}
37 
42  explicit TOPCalTimebase(double syncTimeBase): m_syncTimeBase(syncTimeBase)
43  {}
44 
48  TOPCalTimebase(const TOPCalTimebase& timeBase): TObject()
49  {
50  *this = timeBase;
51  m_map.clear();
52  m_sampleTime = 0;
53  }
54 
58  TOPCalTimebase& operator=(const TOPCalTimebase& timeBase)
59  {
60  if (this != &timeBase) {
61  m_syncTimeBase = timeBase.getSyncTimeBase();
62  m_sampleTimes = timeBase.getSampleTimes();
63  m_map.clear();
64  if (m_sampleTime) delete m_sampleTime;
65  m_sampleTime = 0;
66  }
67  return *this;
68  }
69 
74  {
75  if (m_sampleTime) delete m_sampleTime;
76  }
77 
85  void append(unsigned scrodID, unsigned channel,
86  const std::vector<double>& sampleTimes,
87  bool replace = true);
88 
93  double getSyncTimeBase() const {return m_syncTimeBase;}
94 
99  const std::vector<TOPSampleTimes>& getSampleTimes() const {return m_sampleTimes;}
100 
108  const TOPSampleTimes* getSampleTimes(unsigned scrodID, unsigned channel) const;
109 
110 
117  bool isAvailable(unsigned scrodID, unsigned channel) const;
118 
119 
120  private:
121 
125  void createMap() const;
126 
127  double m_syncTimeBase = 0;
128  std::vector<TOPSampleTimes> m_sampleTimes;
131  mutable std::map<unsigned, const TOPSampleTimes*> m_map;
132 
134  mutable TOPSampleTimes* m_sampleTime = 0;
135 
138  };
139 
141 } // end namespace Belle2
142 
Belle2::TOPCalTimebase::m_sampleTime
TOPSampleTimes * m_sampleTime
cache for default (equidistant) sample times
Definition: TOPCalTimebase.h:142
Belle2::TOPCalTimebase::isAvailable
bool isAvailable(unsigned scrodID, unsigned channel) const
Checks if calibration is available.
Definition: TOPCalTimebase.cc:69
Belle2::TOPCalTimebase
Sample time calibration constants for all channels.
Definition: TOPCalTimebase.h:37
Belle2::TOPCalTimebase::createMap
void createMap() const
Creates a map in cache.
Definition: TOPCalTimebase.cc:80
Belle2::TOPCalTimebase::append
void append(unsigned scrodID, unsigned channel, const std::vector< double > &sampleTimes, bool replace=true)
Appends calibration of a single ASIC channel.
Definition: TOPCalTimebase.cc:28
Belle2::TOPCalTimebase::m_sampleTimes
std::vector< TOPSampleTimes > m_sampleTimes
calibration constants
Definition: TOPCalTimebase.h:136
Belle2::TOPCalTimebase::m_map
std::map< unsigned, const TOPSampleTimes * > m_map
cache for a map
Definition: TOPCalTimebase.h:139
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPCalTimebase::m_syncTimeBase
double m_syncTimeBase
synchronization time base (width of 2 ASIC windows)
Definition: TOPCalTimebase.h:135
Belle2::TOPCalTimebase::~TOPCalTimebase
~TOPCalTimebase()
Destructor.
Definition: TOPCalTimebase.h:81
Belle2::TOPCalTimebase::getSampleTimes
const std::vector< TOPSampleTimes > & getSampleTimes() const
Returns all calibration constants.
Definition: TOPCalTimebase.h:107
Belle2::TOPCalTimebase::getSyncTimeBase
double getSyncTimeBase() const
Returns sinchronization time base (width of 2 ASIC windows)
Definition: TOPCalTimebase.h:101
Belle2::TOPCalTimebase::operator=
TOPCalTimebase & operator=(const TOPCalTimebase &timeBase)
Assignment operator.
Definition: TOPCalTimebase.h:66
Belle2::TOPCalTimebase::TOPCalTimebase
TOPCalTimebase()
Default constructor.
Definition: TOPCalTimebase.h:43
Belle2::TOPCalTimebase::ClassDef
ClassDef(TOPCalTimebase, 1)
ClassDef.