Belle II Software  release-05-01-25
TOPTemplateFitResult.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Tobias Weber *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <top/dataobjects/TOPTemplateFitResult.h>
12 #include <math.h>
13 
14 using namespace std;
15 
16 namespace Belle2 {
22  TOPTemplateFitResult::TOPTemplateFitResult() {}
23 
24  TOPTemplateFitResult::TOPTemplateFitResult(short risingEdge, short backgroundOffset,
25  short amplitude, short chisquare)
26  {
27  m_risingEdgeRaw = risingEdge;
28  m_risingEdge = risingEdgeShortToRisingEdgeDouble(risingEdge);
29  m_backgroundOffset = backgroundOffset;
30  m_amplitude = amplitude;
31  m_chisquare = chisquare;
32  m_risingEdgeTime = -1.;
33  }
34 
35  TOPTemplateFitResult::TOPTemplateFitResult(double risingEdge, double risingEdgeTime, double backgroundOffset,
36  double amplitude, double chisquare)
37  : m_risingEdge(risingEdge), m_risingEdgeTime(risingEdgeTime), m_backgroundOffset(backgroundOffset), m_amplitude(amplitude),
38  m_chisquare(chisquare)
39  {
40  m_risingEdgeRaw = -1;
41  }
42 
43  void TOPTemplateFitResult::setRisingEdgeAndConvert(unsigned short risingEdge)
44  {
45  m_risingEdgeRaw = risingEdge;
47  }
48 
49  double TOPTemplateFitResult::risingEdgeShortToRisingEdgeDouble(unsigned short risingEdgeS) const
50  {
51  double risingEdgeD = (risingEdgeS & 0xff00) >> 8;
52  int mask = 0x80;
53  for (int i = 0; i < 8; i++) {
54  int b = (risingEdgeS & mask);
55  if (b != 0) risingEdgeD += 1. / (pow(2, i + 1));
56  mask = mask >> 1;
57  }
58  return risingEdgeD;
59  }
60 
62 } // end Belle2 namespace
Belle2::TOPTemplateFitResult::m_risingEdgeRaw
unsigned m_risingEdgeRaw
template fit rising edge position received from FEE
Definition: TOPTemplateFitResult.h:147
Belle2::TOPTemplateFitResult::m_risingEdge
double m_risingEdge
template fit rising edge position
Definition: TOPTemplateFitResult.h:142
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPTemplateFitResult::setRisingEdgeAndConvert
void setRisingEdgeAndConvert(unsigned short risingEdge)
Sets rising edge from Zynq and converts to double This does not convert from sample to time space.
Definition: TOPTemplateFitResult.cc:43
Belle2::TOPTemplateFitResult::risingEdgeShortToRisingEdgeDouble
double risingEdgeShortToRisingEdgeDouble(unsigned short risingEdgeS) const
Convert rising edge saved in short to double.
Definition: TOPTemplateFitResult.cc:49