Belle II Software release-09-00-00
TOPInterimFENtupleModule.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <framework/core/HistoModule.h>
12
13#include <TTree.h>
14
15namespace Belle2 {
28
29 public:
30
35
40
45 virtual void initialize() override;
46
51 virtual void beginRun() override;
52
56 virtual void event() override;
57
62 virtual void endRun() override;
63
68 virtual void terminate() override;
69
73 virtual void defineHisto() override;
74
75 private:
76
80 enum { c_NWindow = 4, c_NModule = 16, c_NSamplePerWindow = 64, c_NWaveformSample = 256,
81 c_NSampleTBC = 256, c_NPixelPerModule = 512, c_NWindowRingBuffer = 512,
82 c_NMaxHitPerChannel = 5, c_NMaxHitEvent = 5000, c_NTotalScrod = 64
83 };
84
85 TTree* m_tree = 0;
86 unsigned m_calibrationChannel = 0;
87 bool m_saveWaveform = false;
88 bool m_useDoublePulse = true;
89 // float m_averageSamplingRate = 2.71394; /**< sampling rate with assumption of uniform interval in a unit of GHz */
91 600;
93 450;
96 float m_timePerWin = 23.581939;
98 1;
100 0;
102 int m_nHit = 0;
103 unsigned m_eventNumCopper[c_NModule] = {0};
104 unsigned m_ttuTime[c_NModule] = {0};
105 unsigned m_ttcTime[c_NModule] = {0};
106 short m_slotNum[c_NMaxHitEvent] = {0};
107 short m_pixelId[c_NMaxHitEvent] = {0};
108 short m_channelId[c_NMaxHitEvent] = {0};
109 bool m_isCalCh[c_NMaxHitEvent] = {0};
110 unsigned m_eventNum = 0;
111 short m_winNum[c_NMaxHitEvent] = {0};
112 short m_eventWinNum[c_NMaxHitEvent] = {0};
113 short m_trigWinNum[c_NMaxHitEvent] = {0};
114 short m_revo9Counter[c_NMaxHitEvent] = {0};
115 short m_winNumList[c_NMaxHitEvent][c_NWindow] = {{0}};
116 bool m_windowsInOrder[c_NMaxHitEvent] = {0};
117 unsigned char m_hitQuality[c_NMaxHitEvent] = {0};
118 bool m_isReallyJunk[c_NMaxHitEvent] = {0};
119 float m_time[c_NMaxHitEvent] = {0};
120 float m_rawTime[c_NMaxHitEvent] = {0};
121 float m_refTime[c_NMaxHitEvent] = {0};
123 0;
124 unsigned short m_sample[c_NMaxHitEvent] = {0};
125 float m_height[c_NMaxHitEvent] = {0};
126 float m_integral[c_NMaxHitEvent] = {0};
127 float m_width[c_NMaxHitEvent] = {0};
128 unsigned short m_peakSample[c_NMaxHitEvent] = {0};
129 char m_offlineFlag[c_NMaxHitEvent] = {0};
130 short m_nHitOfflineFE[c_NMaxHitEvent] = {0};
131 short m_waveformStartSample[c_NMaxHitEvent] = {0};
132 unsigned short m_nWaveformSample[c_NMaxHitEvent] = {0};
133 short m_waveform[c_NMaxHitEvent][c_NWaveformSample] = {{0}};
135 short m_nFEHeader = 0;
137 short m_nWaveform = 0;
138 unsigned m_errorFlag = 0;
140 unsigned m_eventErrorFlag = 0;
143 int m_nDebugInfo = 0;
144 unsigned short m_scrodCtime[c_NTotalScrod] = { 0 };
145 unsigned short m_phase[c_NTotalScrod] = { 0 };
146 unsigned short m_asicMask[c_NTotalScrod] = { 0 };
147 unsigned short m_eventQueuDepth[c_NTotalScrod] = { 0 };
148 unsigned short m_eventNumberByte[c_NTotalScrod] = { 0 };
157 void getReferenceTiming();
158
159 };
160
162} //namespace Belle2
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Module to produce ntuple from TOPDigits and TOPRawDigits.
unsigned short m_scrodCtime[c_NTotalScrod]
ctime recorded in scrod header
bool m_useDoublePulse
set true when you require both of double calibration pulses for reference timing
float m_calibrationPulseInterval
nominal DeltaT value (time interval of two calibration signals) in a unit of ns
short m_nWaveform
m_waveforms in TOPInterimFEInfo, # of waveformes
short m_nFEHeader
m_FEHeaders in TOPInterimFEInfo, the total # of FE headers found
short m_winNumList[c_NMaxHitEvent][c_NWindow]
list of window numbers for recorded waveform, valid only when waveform analysis is enabled
float m_integral[c_NMaxHitEvent]
"m_integral" in TOPDigit, but not available
unsigned m_eventNum
event number taken from EventMetaData
short m_slotNum[c_NMaxHitEvent]
"m_moduleID" in TOPDigit, slot number
short m_channelId[c_NMaxHitEvent]
"m_channel" in TOPDigit
short m_winNum[c_NMaxHitEvent]
"m_window" in TOPRawDigit
int m_globalRefSlotNum
slot number used to define "global" reference timing (a single reference timing in an event for all t...
short m_waveformStartSample[c_NMaxHitEvent]
start sample number of waveform segment (only for production FW)
unsigned short m_eventNumberByte[c_NTotalScrod]
least significant byte of FE event number
float m_calibrationPulseIntervalRange
tolerable shift of DeltaT from its nominal before calibration in a unit of ns
unsigned short m_sample[c_NMaxHitEvent]
(m_rawTDC+m_winNum*64)%256, for time base correction
unsigned short m_peakSample[c_NMaxHitEvent]
sample number for peak
float m_calibrationPulseThreshold2
minimum pulse height for the secon calibration pulse to be qualified as calibration signals
int m_nDebugInfo
number of ProductionEventDebug (in a unit of number of boardstack)
float m_refTime[c_NMaxHitEvent]
time of the first calibration signal as reference timing.
int m_nHit
number of hits for the event
unsigned m_errorFlag
m_errorFlags in TOPInterimFEInfo, defined in the TOPInterimFEInfo.h
float m_height[c_NMaxHitEvent]
"m_pulseHeight" in new TOPDigit (update at May, 2017)
short m_trigWinNum[c_NMaxHitEvent]
"m_lastWriteAddr" in TOPRawDigit, window # when trigger is issued
unsigned short m_eventQueuDepth[c_NTotalScrod]
trigger FIRO queue depth
char m_offlineFlag[c_NMaxHitEvent]
=-1 if the channel does not have waveform information, =0 when the hit comes from online FE,...
short m_revo9Counter[c_NMaxHitEvent]
"m_revo9Counter" in TOPRawDigit
float m_width[c_NMaxHitEvent]
"m_pulseWidth" in TOPDigit, full width at half maximum of the pulse, converted into unit of samples f...
short m_eventWinNum[c_NMaxHitEvent]
"m_firstWindow" in TOPDigit
unsigned m_eventErrorFlag
m_errorFlags in EventMetaData, 0x1 : CRC error
float m_time[c_NMaxHitEvent]
time in a unit of ns, defined as m_rawTime+64*m_winNum.
short m_waveform[c_NMaxHitEvent][c_NWaveformSample]
waveform from TOPRawWaveform, if not exist, filled with -32767
unsigned m_ttuTime[c_NModule]
counter for TTclock, stored in COPPER
short m_pixelId[c_NMaxHitEvent]
"m_pixelID" in TOPDigit
float m_timePerWin
time interval of onw window (=64 samples) [ns]
unsigned m_calibrationChannel
asic channel number where the calibration pulses are routed
short m_nHitOfflineFE[c_NMaxHitEvent]
number of hits for each pixel
float m_calibrationPulseThreshold1
minimum pulse height for the first calibration pulse to be qualified as calibration signals
unsigned char m_hitQuality[c_NMaxHitEvent]
"m_quality" in TOPDigit, =0:junk, =1:good, =2:charge sharing, =3:cross talk, =4:cal.
bool m_windowsInOrder[c_NMaxHitEvent]
"areWindowsInOrder()" ; false if the window number of all (4) windows taken from TOPRawWaveform::getR...
unsigned m_eventNumCopper[c_NModule]
event number stored in COPPER
int m_globalRefAsicNum
asic number used to define "global" reference timing.
float m_globalRefTime
refTime of the specific asic, which is specified by parameters "globalRefSlotNum" and "globalRefAsicN...
unsigned short m_phase[c_NTotalScrod]
event phase
unsigned short m_asicMask[c_NTotalScrod]
asic mask bit pattern
float m_rawTime[c_NMaxHitEvent]
"m_rawTime" [0-256] in new TOPDigit (update at May, 2017) in sample(time bin) unit
bool m_isCalCh[c_NMaxHitEvent]
true if the hit is in the calibration channel
unsigned m_ttcTime[c_NModule]
counter for TTclock, stored in COPPER
bool m_isReallyJunk[c_NMaxHitEvent]
true if pedestal jump or other invalid hit is detected, not saved
short m_nEmptyFEHeader
m_emptyFEHeaders in TOPInterimFEInfo, the total # of empty FE headers
unsigned short m_nWaveformSample[c_NMaxHitEvent]
number of waveform samples
bool m_saveWaveform
set true when you want to save waveform data
void getReferenceTiming()
Find reference timing.
virtual void initialize() override
Initialize the Module.
virtual void event() override
Event processor.
virtual void endRun() override
End-of-run action.
virtual void terminate() override
Termination action.
virtual void beginRun() override
Called when entering a new run.
virtual void defineHisto() override
Module funcions to define histograms.
Abstract base class for different kinds of events.