18#include "FairParGenericSet.h"
19#include "FairRootManager.h"
21#include "FairRunOnline.h"
22#include "FairRuntimeDb.h"
26#include "THttpServer.h"
43 , fbMonitorMode(kTRUE)
44 , fbDebugMonitorMode(kFALSE)
45 , fuHistoryHistoSize(1800)
46 , fviHistoChargeArgs(3, 0)
47 , fviHistoAmplArgs(3, 0)
48 , fviHistoZLArgs(3, 0)
49 , fsHistoFileName(
"data/HistosMonitorPsd.root")
51 , fMonitorAlgo(nullptr)
60 LOG(info) <<
"CbmMcbm2018MonitorTaskPsd::Init";
61 LOG(info) <<
"Initializing mCBM Psd 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<CbmMcbm2018PsdPar*
>(FairRun::Instance()->GetRuntimeDb()->getContainer(
"CbmMcbm2018PsdPar"));
97 if (
nullptr == pUnpackPar) {
98 LOG(error) <<
"Failed to obtain parameter container CbmMcbm2018PsdPar";
132 THttpServer* server = FairRunOnline::Instance()->GetHttpServer();
133 if (
nullptr != server) {
134 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
137 server->Register(Form(
"/%s", vHistos[uHisto].second.data()), vHistos[uHisto].first);
140 for (UInt_t uCanv = 0; uCanv < vCanvases.size(); ++uCanv) {
143 server->Register(Form(
"/%s", vCanvases[uCanv].second.data()),
144 gROOT->FindObject((vCanvases[uCanv].first)->GetName()));
147 server->RegisterCommand(
"/Reset_MoniPsd_Hist",
"bMcbm2018MonitorTaskPsdResetHistos=kTRUE");
156 LOG(info) <<
"ReInit parameter containers for " << GetName();
170 LOG(info) <<
"Reset Psd Monitor histos ";
176 LOG(error) <<
"Failed processing TS " << ts.index() <<
" in unpacker algorithm class";
198 TFile* oldFile = gFile;
199 TDirectory* oldDir = gDirectory;
201 TFile* histoFile =
nullptr;
208 for (UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto) {
210 TString sFolder = vHistos[uHisto].second.data();
211 if (
nullptr == gDirectory->Get(sFolder)) gDirectory->mkdir(sFolder);
212 gDirectory->cd(sFolder);
215 vHistos[uHisto].first->Write();
ClassImp(CbmConverterManager)
Bool_t bMcbm2018MonitorTaskPsdResetHistos
void SetZLHistoArgs(std::vector< Int_t > inVec)
void SetMonitorFitMode(Bool_t bFlagIn=kTRUE)
Bool_t ReInitContainers()
Bool_t CreateHistograms()
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
void SetAmplHistoArgs(std::vector< Int_t > inVec)
void SetMonitorWfmMode(Bool_t bFlagIn=kTRUE)
Bool_t ProcessTs(const fles::Timeslice &ts)
void SetMonitorChanMode(Bool_t bFlagIn=kTRUE)
void SetHistoryHistoSize(UInt_t inHistorySizeSec=1800)
void SetChargeHistoArgs(std::vector< Int_t > inVec)
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Bool_t ResetHistograms(Bool_t bResetTime=kTRUE)
Bool_t fbMonitorMode
Control flags.
void SetIgnoreOverlapMs(Bool_t bFlagIn=kTRUE)
std::vector< Int_t > fviHistoZLArgs
virtual ~CbmMcbm2018MonitorTaskPsd()
CbmMcbm2018MonitorAlgoPsd * fMonitorAlgo
Processing algo.
Bool_t fbMonitorWfmMode
Switch ON the filling channelwise histograms.
uint64_t fulTsCounter
Statistics & first TS rejection.
UInt_t fuHistoryHistoSize
Switch ON the filling of a additional set of histograms.
std::vector< Int_t > fviHistoChargeArgs
std::vector< Int_t > fviHistoAmplArgs
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
Temp until we change from CbmMcbmUnpack to something else.
CbmMcbm2018MonitorTaskPsd()
Bool_t ReInitContainers()
Bool_t fbMonitorChanMode
Switch ON the filling of a minimal set of histograms.
virtual Bool_t DoUnpack(const fles::Timeslice &ts, size_t component)
Bool_t fbMonitorFitMode
Switch ON the filling waveforms histograms.
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.