Belle II Software  release-05-02-19
TOPASICGains.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - 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 <TObject.h>
14 
15 namespace Belle2 {
24  class TOPASICGains : public TObject {
25  public:
26 
30  enum {c_WindowSize = 64,
31  c_Unit = 0x1000
32  };
33 
38  {
39  for (unsigned i = 0; i < c_WindowSize; i++) m_gains[i] = c_Unit;
40  }
41 
46  explicit TOPASICGains(unsigned short asicWindow):
47  m_asicWindow(asicWindow), m_unit(c_Unit), m_gainError(0)
48  {
49  for (unsigned i = 0; i < c_WindowSize; i++) m_gains[i] = c_Unit;
50  }
51 
58  bool setGains(const std::vector<float>& gains, float error = 0);
59 
64  unsigned getASICWindow() const {return m_asicWindow;}
65 
70  unsigned getSize() const {return c_WindowSize;}
71 
77  float getValue(unsigned i) const
78  {
79  if (i < c_WindowSize) {
80  return float(m_gains[i]) / float(m_unit);
81  }
82  return 0;
83  }
84 
89  float getError() const
90  {
91  return float(m_gainError) / float(m_unit);
92  }
93 
94 
95  private:
96 
97  unsigned short m_asicWindow;
98  unsigned short m_unit;
99  unsigned short m_gainError;
100  unsigned short m_gains[c_WindowSize];
102  ClassDef(TOPASICGains, 1);
104  };
105 
107 } // end namespace Belle2
108 
Belle2::TOPASICGains::m_asicWindow
unsigned short m_asicWindow
ASIC window number.
Definition: TOPASICGains.h:105
Belle2::TOPASICGains::getSize
unsigned getSize() const
Return window size (number of pedestal samples)
Definition: TOPASICGains.h:78
Belle2::TOPASICGains::m_gainError
unsigned short m_gainError
gain error (fixed point format)
Definition: TOPASICGains.h:107
Belle2::TOPASICGains::ClassDef
ClassDef(TOPASICGains, 1)
ClassDef.
Belle2::TOPASICGains::getValue
float getValue(unsigned i) const
Return relative gain for i-th sample.
Definition: TOPASICGains.h:85
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPASICGains::getError
float getError() const
Return gain uncertainly.
Definition: TOPASICGains.h:97
Belle2::TOPASICGains::getASICWindow
unsigned getASICWindow() const
Return ASIC window number.
Definition: TOPASICGains.h:72
Belle2::TOPASICGains::setGains
bool setGains(const std::vector< float > &gains, float error=0)
Set gains.
Definition: TOPASICGains.cc:22
Belle2::TOPASICGains::m_unit
unsigned short m_unit
unit of fixed point number
Definition: TOPASICGains.h:106
Belle2::TOPASICGains::c_WindowSize
@ c_WindowSize
number of samples
Definition: TOPASICGains.h:38
Belle2::TOPASICGains::c_Unit
@ c_Unit
unit of fixed point number
Definition: TOPASICGains.h:39
Belle2::TOPASICGains
Calibration constants of a single ASIC window: gains.
Definition: TOPASICGains.h:32
Belle2::TOPASICGains::m_gains
unsigned short m_gains[c_WindowSize]
gains (in fixed point format)
Definition: TOPASICGains.h:108
Belle2::TOPASICGains::TOPASICGains
TOPASICGains()
Default constructor.
Definition: TOPASICGains.h:45