17#include "FairParGenericSet.h"
18#include "FairRootManager.h"
20#include "FairRunOnline.h"
21#include "FairRuntimeDb.h"
25#include "TClonesArray.h"
26#include "THttpServer.h"
43 , fbEtofFeeIndexing(kTRUE)
44 , fsHistoFileName(
"data/HistosMonitorPulser.root")
50 , fuHistoryHistoSize(1800)
53 , fMonitorPulserAlgo(nullptr)
62 LOG(info) <<
"CbmStar2019MonitorPulserTask::Init";
63 LOG(info) <<
"Initializing eTOF 2019 Monitor task";
70 LOG(info) <<
"Setting parameter containers for " << GetName();
74 for (Int_t iparC = 0; iparC <
fParCList->GetEntries(); ++iparC) {
75 FairParGenericSet* tempObj = (FairParGenericSet*) (
fParCList->At(iparC));
78 std::string sParamName {tempObj->GetName()};
79 FairParGenericSet* newObj =
80 dynamic_cast<FairParGenericSet*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(sParamName.data()));
82 if (
nullptr == newObj) {
83 LOG(error) <<
"Failed to obtain parameter container " << sParamName <<
", for parameter index " << iparC;
94 LOG(info) <<
"Init parameter containers for " << GetName();
98 dynamic_cast<CbmStar2019TofPar*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(
"CbmStar2019TofPar"));
99 if (
nullptr == pUnpackPar) {
100 LOG(error) <<
"Failed to obtain parameter container CbmStar2019TofPar";
123 THttpServer* server = FairRunOnline::Instance()->GetHttpServer();
124 if (
nullptr != server) {
125 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
128 server->Register(Form(
"/%s", vHistos[uHisto].second.data()), vHistos[uHisto].first);
131 for (UInt_t uCanv = 0; uCanv < vCanvases.size(); ++uCanv) {
134 server->Register(Form(
"/%s", vCanvases[uCanv].second.data()),
135 gROOT->FindObject((vCanvases[uCanv].first)->GetName()));
138 server->RegisterCommand(
"/Reset_Pulser_Hist",
"bStar2019MonitorPulserTaskResetHistos=kTRUE");
139 server->RegisterCommand(
"/Save_Pulser_Hist",
"bStar2019MonitorPulserTaskSaveHistos=kTRUE");
141 server->Restrict(
"/Reset_Moni_Hist",
"allow=admin");
142 server->Restrict(
"/Save_Pulser_Hist",
"allow=admin");
150 LOG(info) <<
"ReInit parameter containers for " << GetName();
164 LOG(info) <<
"Reset Monitor histos ";
170 LOG(info) <<
"Save Monitor histos & canvases";
176 LOG(error) <<
"Failed processing TS " << ts.index() <<
" in unpacker algorithm class";
210 TDirectory* oldDir = NULL;
211 TFile* histoFile = NULL;
217 if (
nullptr == histoFile)
return kFALSE;
220 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
222 TString sFolder = vHistos[uHisto].second.data();
223 if (
nullptr == gDirectory->Get(sFolder)) gDirectory->mkdir(sFolder);
224 gDirectory->cd(sFolder);
227 vHistos[uHisto].first->Write();
232 for (UInt_t uCanvas = 0; uCanvas < vCanvas.size(); ++uCanvas) {
234 TString sFolder = vCanvas[uCanvas].second.data();
235 if (
nullptr == gDirectory->Get(sFolder)) gDirectory->mkdir(sFolder);
236 gDirectory->cd(sFolder);
239 vCanvas[uCanvas].first->Write();
ClassImp(CbmConverterManager)
Bool_t bStar2019MonitorPulserTaskResetHistos
Bool_t bStar2019MonitorPulserTaskSaveHistos
std::vector< std::pair< TNamed *, std::string > > GetHistoVector()
std::vector< T > & GetVector()
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)
Control flags.
std::vector< std::pair< TCanvas *, std::string > > GetCanvasVector()
void ClearVector()
For unpacker algos.
Bool_t ProcessTs(const fles::Timeslice &ts)
void SetUpdateFreqTs(UInt_t uFreq=100)
void SetPulserChannel(UInt_t uChan)
Bool_t ReInitContainers()
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
void SetEtofFeeIndexing(Bool_t bFlagIn=kTRUE)
Bool_t CreateHistograms()
void SetSectorIndex(Int_t iSector=-1)
void SetPulserTotLimits(UInt_t uMin, UInt_t uMax)
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Temp until we change from CbmMcbmUnpack to something else.
TString fsHistoFileName
User settings parameters.
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)
Algo settings setters.
virtual Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
CbmStar2019MonitorPulserAlgo * fMonitorPulserAlgo
Processing algo.
Bool_t fbEtofFeeIndexing
Control flags.
virtual ~CbmStar2019MonitorPulserTask()
CbmStar2019MonitorPulserTask()
Bool_t ReInitContainers()
TList * fParCList
Parameters management.
uint64_t fulTsCounter
Statistics & first TS rejection.