Belle II Software  release-05-02-19
KLMTimeConversion Class Reference

KLM time conversion. More...

#include <KLMTimeConversion.h>

Inheritance diagram for KLMTimeConversion:
Collaboration diagram for KLMTimeConversion:

Public Member Functions

 KLMTimeConversion ()
 Constructor.
 
 ~KLMTimeConversion ()
 Destructor.
 
double getTDCPeriod () const
 Get TDC period.
 
void setTDCFrequency (double frequency)
 Set TDC frequency.
 
void setTimeOffset (double offset)
 Set time offset. More...
 
void setCTimeShift (int shift)
 Set CTIME shift. More...
 
double getScintillatorTime (int ctime, int triggerCTime) const
 Get time for scintillator. More...
 
std::pair< int, double > getRPCTimes (int ctime, int tdc, int triggerTime) const
 Get coarse and fine times for RPC. More...
 
double getTimeSimulation (int tdc, bool scintillator) const
 Get time for simulation. More...
 
uint16_t getTDCByTime (double time) const
 Get TDC by time.
 

Private Member Functions

 ClassDef (KLMTimeConversion, 1)
 Class version,.
 

Private Attributes

double m_TDCPeriod
 TDC period in ns.
 
double m_TimeOffset
 Time offset.
 
int m_CTimeShift
 CTIME shift in bits.
 

Detailed Description

KLM time conversion.

Definition at line 33 of file KLMTimeConversion.h.

Member Function Documentation

◆ getRPCTimes()

std::pair< int, double > getRPCTimes ( int  ctime,
int  tdc,
int  triggerTime 
) const

Get coarse and fine times for RPC.

Parameters
[in]ctimeREVO9 time.
[in]tdcTDC.
[in]triggerTimeREVO9 Trigger time.

Definition at line 46 of file KLMTimeConversion.cc.

47 {
48  /* Relative time in TDC periods for RPC hits. */
49  int relativeTime = tdc & 0x7FF;
50  /*
51  * TDC frequency is 8 times greater than revo9 frequency.
52  * The 2 last bits are zero, thus, the precision is 4 * (TDC period).
53  * The TDC has 11 bits of dynamic range. Shift the triggerTime by
54  * 10 ticks to align the new prompt-time peak with the old
55  * TriggerCTime-relative peak (for backward compatibility of calibration).
56  */
57  int trigger = ((triggerTime - 10) & 0x0FF) << 3;
58  if (relativeTime <= trigger)
59  relativeTime -= trigger;
60  else
61  relativeTime -= trigger + 0x800;
62  return std::pair<int, double>(ctime - triggerTime, relativeTime * m_TDCPeriod);
63 }

◆ getScintillatorTime()

double getScintillatorTime ( int  ctime,
int  triggerCTime 
) const

Get time for scintillator.

Parameters
[in]ctimeCTIME.
[in]triggerCTimeTrigger CTIME.

Definition at line 27 of file KLMTimeConversion.cc.

◆ getTimeSimulation()

double getTimeSimulation ( int  tdc,
bool  scintillator 
) const

Get time for simulation.

Parameters
[in]tdcTDC.
[in]scintillatorScintillator (true) or RPC (false).

Definition at line 65 of file KLMTimeConversion.cc.

◆ setCTimeShift()

void setCTimeShift ( int  shift)
inline

Set CTIME shift.

Parameters
[in]shiftShift in bits.

Definition at line 76 of file KLMTimeConversion.h.

◆ setTimeOffset()

void setTimeOffset ( double  offset)
inline

Set time offset.

Parameters
[in]offsetOffset in ns.

Definition at line 67 of file KLMTimeConversion.h.


The documentation for this class was generated from the following files:
Belle2::KLMTimeConversion::m_TDCPeriod
double m_TDCPeriod
TDC period in ns.
Definition: KLMTimeConversion.h:114