Belle II Software  release-05-01-25
SVDUnpackerDQMModule.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jarek Wiechczynski *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include "svd/modules/svdDQM/SVDUnpackerDQMModule.h"
12 #include <svd/online/SVDOnlineToOfflineMap.h>
13 
14 #include <framework/datastore/StoreObjPtr.h>
15 #include <framework/datastore/StoreArray.h>
16 
17 #include <svd/dataobjects/SVDDAQDiagnostic.h>
18 
19 #include <TDirectory.h>
20 #include <TLine.h>
21 #include <TStyle.h>
22 
23 #include <algorithm>
24 #include <string>
25 
26 
27 using namespace std;
28 using namespace Belle2;
29 
30 //-----------------------------------------------------------------
31 // Register the Module
32 //-----------------------------------------------------------------
33 REG_MODULE(SVDUnpackerDQM)
34 
35 
36 //-----------------------------------------------------------------
37 // Implementation
38 //-----------------------------------------------------------------
39 
40 std::string SVDUnpackerDQMModule::m_xmlFileName = std::string("SVDChannelMapping.xml");
41 
42 SVDUnpackerDQMModule::SVDUnpackerDQMModule() : HistoModule(), m_mapping(m_xmlFileName), m_FADCs(nullptr)
43 {
44  //Set module properties
45  setDescription("DQM Histogram for the SVD Unpacker");
46 
47  addParam("histogramDirectoryName", m_histogramDirectoryName, "Name of the directory where histograms will be placed",
48  std::string("SVDUnpacker"));
49  addParam("ShaperDigitsName", m_ShaperDigitName, "Name of ShaperDigit Store Array.", std::string(""));
50  addParam("DiagnosticsName", m_SVDDAQDiagnosticsName, "Name of DAQDiagnostics Store Array.", std::string(""));
51  addParam("EventInfoName", m_SVDEventInfoName, "Name of SVDEventInfo object", std::string(""));
52 
53  setPropertyFlags(c_ParallelProcessingCertified); // specify this flag if you need parallel processing
54 }
55 
56 
57 SVDUnpackerDQMModule::~SVDUnpackerDQMModule()
58 {
59 }
60 
61 //------------------------------------------------------------------
62 // Function to define histograms
63 //-----------------------------------------------------------------
64 
66 {
67 
68  // Create a separate histogram directories and cd into it.
69  TDirectory* oldDir = gDirectory;
70  if (m_histogramDirectoryName != "") {
71  oldDir->mkdir(m_histogramDirectoryName.c_str());// do not use return value with ->cd(), its ZERO if dir already exists
72  oldDir->cd(m_histogramDirectoryName.c_str());
73  }
74 
75  const unsigned short Bins_FTBFlags = 5;
76  const unsigned short Bins_FTBError = 4;
77  const unsigned short Bins_APVError = 4;
78  const unsigned short Bins_APVMatch = 1;
79  const unsigned short Bins_FADCMatch = 1;
80  const unsigned short Bins_UpsetAPV = 1;
81  const unsigned short Bins_BadMapping = 1;
82  const unsigned short Bins_BadHeader = 1;
83  const unsigned short Bins_MissedTrailer = 1;
84  const unsigned short Bins_MissedHeader = 1;
85 
86 
87  const unsigned short nBits = Bins_FTBFlags + Bins_FTBError + Bins_APVError + Bins_APVMatch + Bins_FADCMatch + Bins_UpsetAPV +
88  Bins_BadMapping + Bins_BadHeader + Bins_MissedTrailer + Bins_MissedHeader;
89 
90  m_DQMUnpackerHisto = new TH2F("DQMUnpackerHisto", "SVD Data Format Monitor", nBits, 1, nBits + 1, 52, 1, 53);
91  m_DQMEventFractionHisto = new TH1F("DQMEventFractionHisto", "SVD Error Fraction Event Counter", 2, 0, 2);
92  m_DQMnSamplesHisto = new TH2F("DQMnSamplesHisto", "nAPVsamples VS DAQMode", 3, 1, 4, 2, 1, 3);
93  m_DQMnSamplesHisto2 = new TH2F("DQMnSamplesHisto2", "nAPVsamples VS DAQMode", 2, 1, 3, 2, 1, 3);
94  m_DQMtrgQuality = new TH2F("DQMtrgQuality", "nAPVsamples VS trgQuality", 4, 1, 5, 2, 1, 3);
95 
96  m_DQMUnpackerHisto->GetYaxis()->SetTitle("FADC board");
97  m_DQMUnpackerHisto->GetYaxis()->SetTitleOffset(1.2);
98 
99  m_DQMEventFractionHisto->GetYaxis()->SetTitle("# of Events");
100  m_DQMEventFractionHisto->GetYaxis()->SetTitleOffset(1.5);
101  m_DQMEventFractionHisto->SetMinimum(0);
102 
103  m_DQMnSamplesHisto->GetXaxis()->SetTitle("DAQ Mode");
104  m_DQMnSamplesHisto->GetYaxis()->SetTitle("number of APV samples");
105 
106  m_DQMnSamplesHisto2->GetXaxis()->SetTitle("DAQ Mode");
107  m_DQMnSamplesHisto2->GetYaxis()->SetTitle("number of APV samples");
108 
109  m_DQMtrgQuality->GetXaxis()->SetTitle("TRG Quality");
110  m_DQMtrgQuality->GetYaxis()->SetTitle("number of APV samples");
111 
112  TString Xlabels[nBits] = {"EvTooLong", "TimeOut", "doubleHead", "badEvt", "errCRC", "badFADC", "badTTD", "badFTB", "badALL", "errAPV", "errDET", "errFrame", "errFIFO", "APVmatch", "FADCmatch", "upsetAPV", "EVTmatch", "missHead", "missTrail", "badMapping"};
113 
114  TString Ysamples[2] = {"3", "6"};
115  TString Xsamples[3] = {"3 samples", "6 samples", "3/6 mixed"};
116 
117  TString Xquality[4] = {"coarse", "fine", "super fine", "no TRGSummary"};
118 
119  //preparing X axis of the DQMUnpacker histograms
120  for (unsigned short i = 0; i < nBits; i++) m_DQMUnpackerHisto->GetXaxis()->SetBinLabel(i + 1, Xlabels[i].Data());
121 
122  //preparing X and Y axis of the DQMnSamples histograms
123  for (unsigned short i = 0; i < 3; i++) m_DQMnSamplesHisto->GetXaxis()->SetBinLabel(i + 1, Xsamples[i].Data());
124  for (unsigned short i = 0; i < 2; i++) m_DQMnSamplesHisto2->GetXaxis()->SetBinLabel(i + 1, Xsamples[i].Data());
125 
126  for (unsigned short i = 0; i < 2; i++) m_DQMnSamplesHisto->GetYaxis()->SetBinLabel(i + 1, Ysamples[i].Data());
127  for (unsigned short i = 0; i < 2; i++) m_DQMnSamplesHisto2->GetYaxis()->SetBinLabel(i + 1, Ysamples[i].Data());
128 
129  //preparing X and Y axis of the DQMtrgQuality histograms
130  for (unsigned short i = 0; i < 4; i++) m_DQMtrgQuality->GetXaxis()->SetBinLabel(i + 1, Xquality[i].Data());
131  for (unsigned short i = 0; i < 2; i++) m_DQMtrgQuality->GetYaxis()->SetBinLabel(i + 1, Ysamples[i].Data());
132 
133  m_DQMEventFractionHisto->GetXaxis()->SetBinLabel(1, "OK");
134  m_DQMEventFractionHisto->GetXaxis()->SetBinLabel(2, "Error(s)");
135 
136 
137  oldDir->cd();
138 }
139 
141 {
142  m_eventMetaData.isRequired();
145  m_objTrgSummary.isOptional();
146 
147  // Register histograms (calls back defineHisto)
148  REG_HISTOGRAM
149 }
150 
151 
153 {
154 
155  StoreObjPtr<EventMetaData> evtMetaData;
156  m_expNumber = evtMetaData->getExperiment();
157  m_runNumber = evtMetaData->getRun();
158  m_errorFraction = 0;
159 
160  TString histoTitle = TString::Format("SVD Data Format Monitor, Exp %d Run %d", m_expNumber, m_runNumber);
161 
162  if (m_DQMUnpackerHisto != nullptr) {
163  m_DQMUnpackerHisto->Reset();
164  m_DQMUnpackerHisto->SetTitle(histoTitle.Data());
165  }
166 
167  if (m_DQMEventFractionHisto != nullptr) {
168  m_DQMEventFractionHisto->Reset();
169  }
170 
171  if (m_DQMnSamplesHisto != nullptr) {
172  m_DQMnSamplesHisto->Reset();
173  }
174 
175  if (m_DQMnSamplesHisto2 != nullptr) {
176  m_DQMnSamplesHisto2->Reset();
177  }
178 
179  if (m_DQMtrgQuality != nullptr) {
180  m_DQMtrgQuality->Reset();
181  }
182 
183  m_shutUpNoData = false;
184 
185  if (m_mapping.hasChanged()) { m_map = std::make_unique<SVDOnlineToOfflineMap>(m_mapping->getFileName()); }
186 
187  m_changeFADCaxis = false;
188 
189  //getting fadc numbers from the mapping
190  m_FADCs = &(m_map->FADCnumbers);
191 
192  //copy FADC numbers to vector and sort them
193  m_vec_fadc.insert(m_vec_fadc.end(), m_FADCs->begin(), m_FADCs->end());
194  std::sort(m_vec_fadc.begin(), m_vec_fadc.end());
195 
196  unsigned short ifadc = 0;
197  for (const auto& fadc : m_vec_fadc) {
198  m_fadc_map.insert(make_pair(fadc, ++ifadc));
199  m_DQMUnpackerHisto->GetYaxis()->SetBinLabel(ifadc, to_string(fadc).c_str());
200  }
201 
202  m_nEvents = 0;
203  m_nBadEvents = 0;
204 }
205 
206 
208 {
209  if (!m_svdDAQDiagnostics.isValid()) {
210  if (!m_shutUpNoData)
211  B2WARNING("There are no SVDDAQDiagnostic objects saved by the Unpacker! SVD Data Format Monitoring disabled!");
212  m_shutUpNoData = true;
213  return;
214  }
215 
216  if (!m_svdEventInfo.isValid()) {
217  if (!m_shutUpNoData)
218  B2WARNING("There is no SVDEventInfo object saved by the Unpacker! SVD Data Format Monitoring disabled!");
219  m_shutUpNoData = true;
220  return;
221  }
222 
223 
224  m_badEvent = 0;
225  m_nEvents++;
226 
227  // filling nSamplesHisto
228  int daqMode = m_svdEventInfo->getModeByte().getDAQMode();
229  int nSamples = m_svdEventInfo->getNSamples();
230 
231  m_DQMnSamplesHisto->Fill(daqMode, nSamples / 3);
232  if (daqMode < 3) m_DQMnSamplesHisto2->Fill(daqMode, nSamples / 3);
233 
234 
235  //filling TRGqualityHisto
236  if (m_objTrgSummary.isValid()) {
237  int trgQuality = m_objTrgSummary->getTimQuality();
238  m_DQMtrgQuality->Fill(trgQuality, nSamples / 3);
239  } else m_DQMtrgQuality->Fill(4, nSamples / 3);
240 
241 
242  //filling m_DQMUnpackerHisto
243  unsigned int nDiagnostics = m_svdDAQDiagnostics.getEntries();
244 
245  unsigned short bin_no = 0;
246  gStyle->SetOptStat(0);
247 
248  for (unsigned short i = 0; i < nDiagnostics; i++) {
249 
250  m_ftbFlags = m_svdDAQDiagnostics[i]->getFTBFlags();
251  m_ftbError = m_svdDAQDiagnostics[i]->getFTBError();
252  m_apvError = m_svdDAQDiagnostics[i]->getAPVError();
253  m_apvMatch = m_svdDAQDiagnostics[i]->getAPVMatch();
254  m_fadcMatch = m_svdDAQDiagnostics[i]->getFADCMatch();
255  m_upsetAPV = m_svdDAQDiagnostics[i]->getUpsetAPV();
256  m_badMapping = m_svdDAQDiagnostics[i]->getBadMapping();
257  m_badHeader = m_svdDAQDiagnostics[i]->getBadHeader();
258  m_badTrailer = m_svdDAQDiagnostics[i]->getBadTrailer();
259  m_missedHeader = m_svdDAQDiagnostics[i]->getMissedHeader();
260  m_missedTrailer = m_svdDAQDiagnostics[i]->getMissedTrailer();
261 
262  m_fadcNo = m_svdDAQDiagnostics[i]->getFADCNumber();
263  //apvNo = m_svdDAQDiagnostics[i]->getAPVNumber();
264 
265  // insert FADCnumber into the map (if not already there) and assign the next bin to it.
266  if (m_changeFADCaxis) {
267  if (m_fadc_map.find(m_fadcNo) == m_fadc_map.end()) m_fadc_map.insert(make_pair(m_fadcNo, ++bin_no));
268  }
269 
270  if (m_ftbFlags != 0 or m_ftbError != 240 or m_apvError != 0 or !m_apvMatch or !m_fadcMatch or m_upsetAPV or m_badMapping
271  or m_badHeader
273 
274  m_badEvent = 1;
275 
276  auto ybin = m_fadc_map.find(m_fadcNo);
277 
278  if (m_badMapping) {
279  if (!m_changeFADCaxis) {
280  m_changeFADCaxis = true;
281  m_fadc_map.clear();
282  break;
283  } else {
284  m_DQMUnpackerHisto->Fill(20, ybin->second);
285  }
286  }
287 
288  if (m_badHeader) m_DQMUnpackerHisto->Fill(17, ybin->second);
289  if (m_missedHeader) m_DQMUnpackerHisto->Fill(18, ybin->second);
290  if (m_badTrailer or m_missedTrailer) m_DQMUnpackerHisto->Fill(19, ybin->second);
291 
292  if (m_ftbFlags != 0) {
293  if (m_ftbFlags & 16) m_DQMUnpackerHisto->Fill(5, ybin->second);
294  if (m_ftbFlags & 8) m_DQMUnpackerHisto->Fill(4, ybin->second);
295  if (m_ftbFlags & 4) m_DQMUnpackerHisto->Fill(3, ybin->second);
296  if (m_ftbFlags & 2) m_DQMUnpackerHisto->Fill(2, ybin->second);
297  if (m_ftbFlags & 1) m_DQMUnpackerHisto->Fill(1, ybin->second);
298  }
299  if (m_ftbError != 240) {
300  switch (m_ftbError - 240) {
301  case 3:
302  m_DQMUnpackerHisto->Fill(6, ybin->second); //badFADC
303  break;
304  case 5:
305  m_DQMUnpackerHisto->Fill(7, ybin->second); //badTTD
306  break;
307  case 6:
308  m_DQMUnpackerHisto->Fill(8, ybin->second); //badFTB
309  break;
310  case 7:
311  m_DQMUnpackerHisto->Fill(9, ybin->second);//badALL;
312  break;
313  }
314  }
315 
316  if (m_apvError != 0) {
317  if (m_apvError & 1) m_DQMUnpackerHisto->Fill(10, ybin->second);
318  if (m_apvError & 2) m_DQMUnpackerHisto->Fill(11, ybin->second);
319  if (m_apvError & 4) m_DQMUnpackerHisto->Fill(12, ybin->second);
320  if (m_apvError & 8) m_DQMUnpackerHisto->Fill(13, ybin->second);
321  }
322 
323  if (!m_apvMatch) m_DQMUnpackerHisto->Fill(14, ybin->second);
324  if (!m_fadcMatch) m_DQMUnpackerHisto->Fill(15, ybin->second);
325  if (m_upsetAPV) m_DQMUnpackerHisto->Fill(16, ybin->second);
326 
327  }
328  } //end Diagnostics loop
329 
330  if (m_changeFADCaxis) {
331  for (auto& iFADC : m_fadc_map) m_DQMUnpackerHisto->GetYaxis()->SetBinLabel(iFADC.second, to_string(iFADC.first).c_str());
332  }
333  if (m_badEvent) m_nBadEvents++;
334  m_errorFraction = 100 * float(m_nBadEvents) / float(m_nEvents);
335 
336  if (m_DQMEventFractionHisto != nullptr) {
337  TString histoFractionTitle = TString::Format("SVD bad events fraction: %f %%, Exp %d Run %d", m_errorFraction, m_expNumber,
338  m_runNumber);
339  m_DQMEventFractionHisto->SetTitle(histoFractionTitle.Data());
340  }
341 
342 
344 
345 } // end event function
346 
347 
349 {
350  // Summary report on SVD DQM monitor
351  if (m_nBadEvents) {
352  B2WARNING("=================== SVD DQM Data Format Statistics: =============");
353  B2WARNING(" We found " << m_nBadEvents << "/" << m_nEvents << " corrupted events, which is " << m_errorFraction <<
354  "%");
355  B2WARNING("=================================================================");
356  }
357 
358 }
Belle2::SVDUnpackerDQMModule::m_FADCs
std::unordered_set< unsigned char > * m_FADCs
FADC boards number.
Definition: SVDUnpackerDQMModule.h:128
Belle2::DBAccessorBase::hasChanged
bool hasChanged()
Check whether the object has changed since the last call to hasChanged of the accessor).
Definition: DBAccessorBase.h:92
Belle2::SVDUnpackerDQMModule::event
void event() override final
Module function event.
Definition: SVDUnpackerDQMModule.cc:207
Belle2::SVDUnpackerDQMModule::endRun
void endRun() override final
Module function endRun.
Definition: SVDUnpackerDQMModule.cc:348
Belle2::SVDUnpackerDQMModule::m_badMapping
bool m_badMapping
bad mapping error
Definition: SVDUnpackerDQMModule.h:119
Belle2::SVDUnpackerDQMModule::m_expNumber
int m_expNumber
experiment number
Definition: SVDUnpackerDQMModule.h:105
Belle2::Module::setDescription
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:216
Belle2::SVDUnpackerDQMModule::m_fadcNo
unsigned short m_fadcNo
fadc number
Definition: SVDUnpackerDQMModule.h:125
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::Module::c_ParallelProcessingCertified
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition: Module.h:82
Belle2::SVDUnpackerDQMModule::m_nEvents
unsigned int m_nEvents
event counter
Definition: SVDUnpackerDQMModule.h:109
Belle2::SVDUnpackerDQMModule::m_errorFraction
float m_errorFraction
fraction of events with any kind of error
Definition: SVDUnpackerDQMModule.h:111
Belle2::SVDUnpackerDQMModule::m_mapping
DBObjPtr< PayloadFile > m_mapping
channel map payload
Definition: SVDUnpackerDQMModule.h:97
Belle2::SVDUnpackerDQMModule::m_svdEventInfo
StoreObjPtr< SVDEventInfo > m_svdEventInfo
SVDEventInfo StoreObjectPointer.
Definition: SVDUnpackerDQMModule.h:80
Belle2::SVDUnpackerDQMModule::m_changeFADCaxis
bool m_changeFADCaxis
change FADC (y) axis
Definition: SVDUnpackerDQMModule.h:102
Belle2::SVDUnpackerDQMModule::m_upsetAPV
bool m_upsetAPV
upset APV error
Definition: SVDUnpackerDQMModule.h:118
Belle2::SVDUnpackerDQMModule::m_eventMetaData
StoreObjPtr< EventMetaData > m_eventMetaData
EvtMetaData StoreObjectPointer.
Definition: SVDUnpackerDQMModule.h:100
Belle2::SVDUnpackerDQMModule::m_ftbFlags
uint16_t m_ftbFlags
FTB flags container.
Definition: SVDUnpackerDQMModule.h:114
Belle2::SVDUnpackerDQMModule::m_missedTrailer
bool m_missedTrailer
missed Trailer error
Definition: SVDUnpackerDQMModule.h:123
Belle2::SVDUnpackerDQMModule::m_objTrgSummary
StoreObjPtr< TRGSummary > m_objTrgSummary
Trigger Summary data object.
Definition: SVDUnpackerDQMModule.h:83
Belle2::SVDUnpackerDQMModule::m_badEvent
bool m_badEvent
indicates if the particular event has any SVD error
Definition: SVDUnpackerDQMModule.h:108
Belle2::SVDUnpackerDQMModule::m_missedHeader
bool m_missedHeader
missed Header error
Definition: SVDUnpackerDQMModule.h:122
Belle2::SVDUnpackerDQMModule::m_badHeader
bool m_badHeader
bad header error
Definition: SVDUnpackerDQMModule.h:120
Belle2::Module::setPropertyFlags
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition: Module.cc:210
Belle2::SVDUnpackerDQMModule::m_ftbError
uint16_t m_ftbError
FTB error container.
Definition: SVDUnpackerDQMModule.h:113
Belle2::SVDUnpackerDQMModule::m_SVDEventInfoName
std::string m_SVDEventInfoName
SVDEventInfo name.
Definition: SVDUnpackerDQMModule.h:92
Belle2::SVDUnpackerDQMModule::beginRun
void beginRun() override final
Module function beginRun.
Definition: SVDUnpackerDQMModule.cc:152
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr
Type-safe access to single objects in the data store.
Definition: ParticleList.h:33
Belle2::SVDUnpackerDQMModule::m_DQMnSamplesHisto2
TH2F * m_DQMnSamplesHisto2
TH2F histogram showing number of samples in data VS daqMode (2bins only)
Definition: SVDUnpackerDQMModule.h:136
Belle2::SVDUnpackerDQMModule::m_fadc_map
std::unordered_map< unsigned short, unsigned short > m_fadc_map
FADC board number map.
Definition: SVDUnpackerDQMModule.h:129
Belle2::SVDUnpackerDQMModule::m_runNumber
int m_runNumber
run number
Definition: SVDUnpackerDQMModule.h:106
Belle2::SVDUnpackerDQMModule::m_map
std::unique_ptr< SVDOnlineToOfflineMap > m_map
mapping implementation
Definition: SVDUnpackerDQMModule.h:95
Belle2::SVDUnpackerDQMModule::m_DQMnSamplesHisto
TH2F * m_DQMnSamplesHisto
TH2F histogram showing number of samples in data VS daqMode.
Definition: SVDUnpackerDQMModule.h:135
Belle2::SVDUnpackerDQMModule::m_shutUpNoData
bool m_shutUpNoData
shut up if no data comes
Definition: SVDUnpackerDQMModule.h:103
Belle2::SVDUnpackerDQMModule::m_badTrailer
bool m_badTrailer
bad trailer error
Definition: SVDUnpackerDQMModule.h:121
Belle2::SVDUnpackerDQMModule::m_DQMtrgQuality
TH2F * m_DQMtrgQuality
TH2F histogram showing number of samples in data VS Trigger Quality.
Definition: SVDUnpackerDQMModule.h:137
Belle2::Module::addParam
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition: Module.h:562
Belle2::SVDUnpackerDQMModule::initialize
void initialize() override final
Module function initialize.
Definition: SVDUnpackerDQMModule.cc:140
Belle2::SVDUnpackerDQMModule::m_svdDAQDiagnostics
StoreArray< SVDDAQDiagnostic > m_svdDAQDiagnostics
SVDDAQDiagnostic StoreArray.
Definition: SVDUnpackerDQMModule.h:99
Belle2::SVDUnpackerDQMModule::m_histogramDirectoryName
std::string m_histogramDirectoryName
Name of the histogram directory in ROOT file.
Definition: SVDUnpackerDQMModule.h:73
Belle2::SVDUnpackerDQMModule::m_nBadEvents
unsigned int m_nBadEvents
counter of events with any kind of error
Definition: SVDUnpackerDQMModule.h:110
Belle2::SVDUnpackerDQMModule::m_DQMEventFractionHisto
TH1F * m_DQMEventFractionHisto
TH1F histogram showing the fraction of events affected by errors.
Definition: SVDUnpackerDQMModule.h:134
Belle2::SVDUnpackerDQMModule::m_apvError
uint16_t m_apvError
APV error container.
Definition: SVDUnpackerDQMModule.h:115
Belle2::SVDUnpackerDQMModule::m_ShaperDigitName
std::string m_ShaperDigitName
SVDShaperDigits StoreArray name.
Definition: SVDUnpackerDQMModule.h:86
Belle2::HistoModule
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Belle2::SVDUnpackerDQMModule::m_vec_fadc
std::vector< unsigned short > m_vec_fadc
vector of FADC boards
Definition: SVDUnpackerDQMModule.h:130
Belle2::SVDUnpackerDQMModule::m_DQMUnpackerHisto
TH2F * m_DQMUnpackerHisto
TH2F histogram with Unpacking errors.
Definition: SVDUnpackerDQMModule.h:133
Belle2::SVDUnpackerDQMModule::m_apvMatch
bool m_apvMatch
apv match error
Definition: SVDUnpackerDQMModule.h:116
Belle2::SVDUnpackerDQMModule::defineHisto
void defineHisto() override final
Histogram definitions such as TH1(), TH2(), TNtuple(), TTree()....
Definition: SVDUnpackerDQMModule.cc:65
Belle2::SVDUnpackerDQMModule::m_fadcMatch
bool m_fadcMatch
fadcc match error
Definition: SVDUnpackerDQMModule.h:117
Belle2::SVDUnpackerDQMModule::m_SVDDAQDiagnosticsName
std::string m_SVDDAQDiagnosticsName
SVD diagnostics module name.
Definition: SVDUnpackerDQMModule.h:89