11 #include "svd/modules/svdDQM/SVDUnpackerDQMModule.h"
12 #include <svd/online/SVDOnlineToOfflineMap.h>
14 #include <framework/datastore/StoreObjPtr.h>
15 #include <framework/datastore/StoreArray.h>
17 #include <svd/dataobjects/SVDDAQDiagnostic.h>
19 #include <TDirectory.h>
40 std::string SVDUnpackerDQMModule::m_xmlFileName = std::string(
"SVDChannelMapping.xml");
42 SVDUnpackerDQMModule::SVDUnpackerDQMModule() :
HistoModule(), m_mapping(m_xmlFileName), m_FADCs(nullptr)
48 std::string(
"SVDUnpacker"));
57 SVDUnpackerDQMModule::~SVDUnpackerDQMModule()
69 TDirectory* oldDir = gDirectory;
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;
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;
90 m_DQMUnpackerHisto =
new TH2F(
"DQMUnpackerHisto",
"SVD Data Format Monitor", nBits, 1, nBits + 1, 52, 1, 53);
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);
112 TString Xlabels[nBits] = {
"EvTooLong",
"TimeOut",
"doubleHead",
"badEvt",
"errCRC",
"badFADC",
"badTTD",
"badFTB",
"badALL",
"errAPV",
"errDET",
"errFrame",
"errFIFO",
"APVmatch",
"FADCmatch",
"upsetAPV",
"EVTmatch",
"missHead",
"missTrail",
"badMapping"};
114 TString Ysamples[2] = {
"3",
"6"};
115 TString Xsamples[3] = {
"3 samples",
"6 samples",
"3/6 mixed"};
117 TString Xquality[4] = {
"coarse",
"fine",
"super fine",
"no TRGSummary"};
120 for (
unsigned short i = 0; i < nBits; i++)
m_DQMUnpackerHisto->GetXaxis()->SetBinLabel(i + 1, Xlabels[i].Data());
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());
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());
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());
196 unsigned short ifadc = 0;
211 B2WARNING(
"There are no SVDDAQDiagnostic objects saved by the Unpacker! SVD Data Format Monitoring disabled!");
218 B2WARNING(
"There is no SVDEventInfo object saved by the Unpacker! SVD Data Format Monitoring disabled!");
245 unsigned short bin_no = 0;
246 gStyle->SetOptStat(0);
248 for (
unsigned short i = 0; i < nDiagnostics; i++) {
352 B2WARNING(
"=================== SVD DQM Data Format Statistics: =============");
355 B2WARNING(
"=================================================================");