16#include "FairParGenericSet.h"
17#include "FairRootManager.h"
19#include "FairRunOnline.h"
20#include "FairRuntimeDb.h"
22#include "THttpServer.h"
60 LOG(info) <<
"CbmMcbm2018MonitorTaskBmon::Init";
61 LOG(info) <<
"Initializing mCBM Bmon 2019 Monitor";
68 LOG(info) <<
"Setting parameter containers for " << GetName();
72 for (
Int_t iparC = 0; iparC < parCList->GetEntries(); ++iparC) {
73 FairParGenericSet* tempObj = (FairParGenericSet*) (parCList->At(iparC));
74 parCList->Remove(tempObj);
76 std::string sParamName {tempObj->GetName()};
77 FairParGenericSet* newObj =
78 dynamic_cast<FairParGenericSet*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(sParamName.data()));
80 if (
nullptr == newObj) {
81 LOG(error) <<
"Failed to obtain parameter container " << sParamName <<
", for parameter index " << iparC;
85 parCList->AddAt(newObj, iparC);
92 LOG(info) <<
"Init parameter containers for " << GetName();
96 dynamic_cast<CbmMcbm2018TofPar*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(
"CbmMcbm2018TofPar"));
97 if (
nullptr == pUnpackPar) {
98 LOG(error) <<
"Failed to obtain parameter container CbmMcbm2018TofPar";
125 std::vector<std::pair<TNamed*, std::string>> vHistos =
fMonitorAlgo->GetHistoVector();
127 std::vector<std::pair<TCanvas*, std::string>> vCanvases =
fMonitorAlgo->GetCanvasVector();
130 THttpServer* server = FairRunOnline::Instance()->GetHttpServer();
131 if (
nullptr != server) {
132 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
135 server->Register(Form(
"/%s", vHistos[uHisto].second.data()), vHistos[uHisto].first);
138 for (UInt_t uCanv = 0; uCanv < vCanvases.size(); ++uCanv) {
141 server->Register(Form(
"/%s", vCanvases[uCanv].second.data()),
142 gROOT->FindObject((vCanvases[uCanv].first)->GetName()));
145 server->RegisterCommand(
"/Reset_MoniBmon_Hist",
"bMcbm2018MonitorTaskBmonResetHistos=kTRUE");
146 server->Restrict(
"/Reset_MoniBmon_Hist",
"allow=admin");
154 LOG(info) <<
"ReInit parameter containers for " << GetName();
162 fMonitorAlgo->AddMsComponentToList(component, usDetectorId);
168 LOG(info) <<
"Reset Bmon Monitor histos ";
174 LOG(error) <<
"Failed processing TS " << ts.index() <<
" in unpacker algorithm class";
179 std::vector<CbmTofDigi> vDigi =
fMonitorAlgo->GetVector();
193 std::vector<std::pair<TNamed*, std::string>> vHistos =
fMonitorAlgo->GetHistoVector();
196 TFile* oldFile = gFile;
197 TDirectory* oldDir = gDirectory;
199 TFile* histoFile =
nullptr;
206 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
208 TString sFolder = vHistos[uHisto].second.data();
209 if (
nullptr == gDirectory->Get(sFolder)) gDirectory->mkdir(sFolder);
210 gDirectory->cd(sFolder);
213 vHistos[uHisto].first->Write();
228 UInt_t uChan4, UInt_t uChan5, UInt_t uChan6, UInt_t uChan7)
230 fMonitorAlgo->SetChannelMap(uChan0, uChan1, uChan2, uChan3, uChan4, uChan5, uChan6, uChan7);
ClassImp(CbmConverterManager)
Bool_t bMcbm2018MonitorTaskBmonResetHistos
CbmMcbm2018MonitorAlgoBmon * fMonitorAlgo
Processing algo.
UInt_t fuOffSpillCountLimitNonPulser
UInt_t fuHistoryHistoSize
Switch ON the filling of a additional set of histograms.
virtual ~CbmMcbm2018MonitorTaskBmon()
void SetChannelMap(UInt_t uChan0, UInt_t uChan1, UInt_t uChan2, UInt_t uChan3, UInt_t uChan4, UInt_t uChan5, UInt_t uChan6, UInt_t uChan7)
Double_t fdSpillCheckInterval
virtual Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
CbmMcbm2018MonitorTaskBmon()
Bool_t ReInitContainers()
uint64_t fulTsCounter
Statistics & first TS rejection.
UInt_t fuOffSpillCountLimit
Bool_t fbMonitorMode
Control flags.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Temp until we change from CbmMcbmUnpack to something else.