16#include "FairParGenericSet.h"
17#include "FairRootManager.h"
19#include "FairRunOnline.h"
20#include "FairRuntimeDb.h"
23#include "THttpServer.h"
57 LOG(info) <<
"CbmMcbmSpillFindTask::Init";
58 LOG(info) <<
"Initializing mCBM Bmon 2019 Monitor";
65 LOG(info) <<
"Setting parameter containers for " << GetName();
69 for (
Int_t iparC = 0; iparC < parCList->GetEntries(); ++iparC) {
70 FairParGenericSet* tempObj = (FairParGenericSet*) (parCList->At(iparC));
71 parCList->Remove(tempObj);
73 std::string sParamName {tempObj->GetName()};
74 FairParGenericSet* newObj =
75 dynamic_cast<FairParGenericSet*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(sParamName.data()));
77 if (
nullptr == newObj) {
78 LOG(error) <<
"Failed to obtain parameter container " << sParamName <<
", for parameter index " << iparC;
82 parCList->AddAt(newObj, iparC);
89 LOG(info) <<
"Init parameter containers for " << GetName();
93 dynamic_cast<CbmMcbm2018TofPar*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(
"CbmMcbm2018TofPar"));
94 if (
nullptr == pUnpackPar) {
95 LOG(error) <<
"Failed to obtain parameter container CbmMcbm2018TofPar";
113 std::vector<std::pair<TNamed*, std::string>> vHistos =
fMonitorAlgo->GetHistoVector();
115 std::vector<std::pair<TCanvas*, std::string>> vCanvases =
fMonitorAlgo->GetCanvasVector();
118 THttpServer* server = FairRunOnline::Instance()->GetHttpServer();
119 if (
nullptr != server) {
120 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
123 server->Register(Form(
"/%s", vHistos[uHisto].second.data()), vHistos[uHisto].first);
126 for (UInt_t uCanv = 0; uCanv < vCanvases.size(); ++uCanv) {
129 server->Register(Form(
"/%s", vCanvases[uCanv].second.data()),
130 gROOT->FindObject((vCanvases[uCanv].first)->GetName()));
133 server->RegisterCommand(
"/Reset_MoniBmon_Hist",
"bMcbmSpillFindResetHistos=kTRUE");
134 server->Restrict(
"/Reset_MoniBmon_Hist",
"allow=admin");
142 LOG(info) <<
"ReInit parameter containers for " << GetName();
150 fMonitorAlgo->AddMsComponentToList(component, usDetectorId);
156 LOG(info) <<
"Reset Bmon Monitor histos ";
162 LOG(error) <<
"Failed processing TS " << ts.index() <<
" in unpacker algorithm class";
167 std::vector<CbmTofDigi> vDigi =
fMonitorAlgo->GetVector();
183 std::vector<std::pair<TNamed*, std::string>> vHistos =
fMonitorAlgo->GetHistoVector();
186 TFile* oldFile = gFile;
187 TDirectory* oldDir = gDirectory;
189 TFile* histoFile =
nullptr;
196 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
198 TString sFolder = vHistos[uHisto].second.data();
199 if (
nullptr == gDirectory->Get(sFolder)) gDirectory->mkdir(sFolder);
200 gDirectory->cd(sFolder);
203 vHistos[uHisto].first->Write();
ClassImp(CbmConverterManager)
Bool_t bMcbmSpillFindResetHistos
Bool_t fbDebugMonitorMode
Switch ON the filling of a minimal set of histograms.
Bool_t ReInitContainers()
uint64_t fulTsCounter
Statistics & first TS rejection.
virtual ~CbmMcbmSpillFindTask()
Bool_t fbMonitorMode
Control flags.
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Temp until we change from CbmMcbmUnpack to something else.
virtual Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
CbmMcbmSpillFindAlgo * fMonitorAlgo
Processing algo.
UInt_t fuHistoryHistoSize
Switch ON the filling of a additional set of histograms.
UInt_t fuOffSpillCountLimit
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)
Double_t fdSpillCheckInterval