diff --git a/MQ/histoServer/CbmMqHistoServer.cxx b/MQ/histoServer/CbmMqHistoServer.cxx index ce1a89611041a9c5519e7262d00724e375bcef71..21009b9f8963e22ffbfa8b90346b6a8a897e23ff 100644 --- a/MQ/histoServer/CbmMqHistoServer.cxx +++ b/MQ/histoServer/CbmMqHistoServer.cxx @@ -35,19 +35,7 @@ Bool_t bMqHistoServerSaveHistos = kFALSE; */ CbmMqHistoServer::CbmMqHistoServer() : FairMQDevice() - , fsChannelNameHistosInput("histogram-in") - , fsChannelNameHistosConfig("histo-conf") - , fsChannelNameCanvasConfig("canvas-conf") - , fsHistoFileName("MqHistos.root") - , fuHttpServerPort(8098) , fArrayHisto() - , fvpsHistosFolder() - , fvpsCanvasConfig() - , fvHistos() - , fvCanvas() - , fNMessages(0) - , fServer(nullptr) - , fStopThread(false) { } @@ -308,8 +296,10 @@ void CbmMqHistoServer::UpdateHttpServer() void CbmMqHistoServer::PostRun() { + SaveHistograms(); fStopThread = true; fThread.join(); + SaveHistograms(); } template<class HistoT> diff --git a/MQ/histoServer/CbmMqHistoServer.h b/MQ/histoServer/CbmMqHistoServer.h index b2cd3c0cb145996e7f29b2a36f1152a84610a31f..5cbd8cdf0876564f7dbeae08b29bcdfe86a54af5 100644 --- a/MQ/histoServer/CbmMqHistoServer.h +++ b/MQ/histoServer/CbmMqHistoServer.h @@ -42,37 +42,37 @@ protected: private: /// Parameters - std::string fsChannelNameHistosInput; - std::string fsChannelNameHistosConfig; - std::string fsChannelNameCanvasConfig; - std::string fsHistoFileName; - uint32_t fuHttpServerPort; + std::string fsChannelNameHistosInput = "histogram-in"; + std::string fsChannelNameHistosConfig = "histo-conf"; + std::string fsChannelNameCanvasConfig = "canvas-conf"; + std::string fsHistoFileName = "MqHistos.root"; + uint32_t fuHttpServerPort = 8098; /// Array of histograms with unique names TObjArray fArrayHisto; /// Vector of string with ( HistoName, FolderPath ) to send to the histogram server - std::vector<std::pair<std::string, std::string>> fvpsHistosFolder; + std::vector<std::pair<std::string, std::string>> fvpsHistosFolder = {}; /// Vector of string pairs with ( CanvasName, CanvasConfig ) to send to the histogram server /// Format of Can config is "Name;Title;NbPadX(U);NbPadY(U);ConfigPad1(s);....;ConfigPadXY(s)" /// Format of Pad config is "GrixX(b),GridY(b),LogX(b),LogY(b),LogZ(b),HistoName(s),DrawOptions(s)" - std::vector<std::pair<std::string, std::string>> fvpsCanvasConfig; - std::vector<bool> fvbCanvasReady; - bool fbAllCanvasReady; + std::vector<std::pair<std::string, std::string>> fvpsCanvasConfig = {}; + std::vector<bool> fvbCanvasReady = {}; + bool fbAllCanvasReady = false; - std::vector<std::pair<TNamed*, std::string>> fvHistos; //! Vector of Histos pointers and folder path - std::vector<bool> fvbHistoRegistered; - bool fbAllHistosRegistered; - std::vector<std::pair<TCanvas*, std::string>> fvCanvas; //! Vector of Canvas pointers and folder path - std::vector<bool> fvbCanvasRegistered; - bool fbAllCanvasRegistered; + std::vector<std::pair<TNamed*, std::string>> fvHistos = {}; //! Vector of Histos pointers and folder path + std::vector<bool> fvbHistoRegistered = {}; + bool fbAllHistosRegistered = false; + std::vector<std::pair<TCanvas*, std::string>> fvCanvas = {}; //! Vector of Canvas pointers and folder path + std::vector<bool> fvbCanvasRegistered = {}; + bool fbAllCanvasRegistered = false; /// Internal status - int fNMessages; + int fNMessages = 0; - THttpServer* fServer; + THttpServer* fServer = nullptr; std::thread fThread; - bool fStopThread; + bool fStopThread = false; template<class HistoT> bool ReadHistogram(HistoT* pHist);