Belle II Software  release-05-02-19
KLMTimeConversion.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Kirill Chilikin *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* ROOT headers. */
14 #include <TObject.h>
15 
16 namespace Belle2 {
25  class KLMTimeConversion : public TObject {
26 
27  public:
28 
33 
38 
42  double getTDCPeriod() const
43  {
44  return m_TDCPeriod;
45  }
46 
50  void setTDCFrequency(double frequency)
51  {
52  m_TDCPeriod = 1.0 / frequency;
53  }
54 
59  void setTimeOffset(double offset)
60  {
61  m_TimeOffset = offset;
62  }
63 
68  void setCTimeShift(int shift)
69  {
70  m_CTimeShift = shift;
71  }
72 
78  double getScintillatorTime(int ctime, int triggerCTime) const;
79 
86  std::pair<int, double> getRPCTimes(int ctime, int tdc, int triggerTime) const;
87 
93  double getTimeSimulation(int tdc, bool scintillator) const;
94 
98  uint16_t getTDCByTime(double time) const
99  {
100  return (time - m_TimeOffset) / m_TDCPeriod;
101  }
102 
103  private:
104 
106  double m_TDCPeriod;
107 
109  double m_TimeOffset;
110 
112  int m_CTimeShift;
113 
116 
117  };
118 
120 }
Belle2::KLMTimeConversion::m_CTimeShift
int m_CTimeShift
CTIME shift in bits.
Definition: KLMTimeConversion.h:120
Belle2::KLMTimeConversion::m_TDCPeriod
double m_TDCPeriod
TDC period in ns.
Definition: KLMTimeConversion.h:114
Belle2::KLMTimeConversion::getScintillatorTime
double getScintillatorTime(int ctime, int triggerCTime) const
Get time for scintillator.
Definition: KLMTimeConversion.cc:27
Belle2::KLMTimeConversion::getTDCPeriod
double getTDCPeriod() const
Get TDC period.
Definition: KLMTimeConversion.h:50
Belle2::KLMTimeConversion::getTDCByTime
uint16_t getTDCByTime(double time) const
Get TDC by time.
Definition: KLMTimeConversion.h:106
Belle2::KLMTimeConversion::~KLMTimeConversion
~KLMTimeConversion()
Destructor.
Definition: KLMTimeConversion.cc:23
Belle2::KLMTimeConversion::KLMTimeConversion
KLMTimeConversion()
Constructor.
Definition: KLMTimeConversion.cc:16
Belle2::KLMTimeConversion::setCTimeShift
void setCTimeShift(int shift)
Set CTIME shift.
Definition: KLMTimeConversion.h:76
Belle2::KLMTimeConversion::getTimeSimulation
double getTimeSimulation(int tdc, bool scintillator) const
Get time for simulation.
Definition: KLMTimeConversion.cc:65
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::KLMTimeConversion
KLM time conversion.
Definition: KLMTimeConversion.h:33
Belle2::KLMTimeConversion::setTDCFrequency
void setTDCFrequency(double frequency)
Set TDC frequency.
Definition: KLMTimeConversion.h:58
Belle2::KLMTimeConversion::m_TimeOffset
double m_TimeOffset
Time offset.
Definition: KLMTimeConversion.h:117
Belle2::KLMTimeConversion::setTimeOffset
void setTimeOffset(double offset)
Set time offset.
Definition: KLMTimeConversion.h:67
Belle2::KLMTimeConversion::ClassDef
ClassDef(KLMTimeConversion, 1)
Class version,.
Belle2::KLMTimeConversion::getRPCTimes
std::pair< int, double > getRPCTimes(int ctime, int tdc, int triggerTime) const
Get coarse and fine times for RPC.
Definition: KLMTimeConversion.cc:46