Skip to content
Snippets Groups Projects
CbmDeviceMonitorPsd.cxx 13.82 KiB
/* Copyright (C) 2021 Institute for Nuclear Research, Moscow
   SPDX-License-Identifier: GPL-3.0-only
   Authors: Nikolay Karpushkin [committer] */

/**
 * CbmDeviceMonitorPsd.cxx
 *
 * @since 2021-02-17
 * @author N. Karpushkin
 * @comment based on CbmDeviceMonitorT0 by F. Uhlig
 */

#include "CbmDeviceMonitorPsd.h"

#include "CbmFlesCanvasTools.h"
#include "CbmMQDefs.h"
#include "CbmMcbm2018MonitorAlgoPsd.h"

#include "StorableTimeslice.hpp"

#include "FairMQLogger.h"
#include "FairMQProgOptions.h"  // device->fConfig
#include "FairParGenericSet.h"

#include "TCanvas.h"
#include "TFile.h"
#include "TH1.h"
#include "TList.h"
#include "TNamed.h"

#include "BoostSerializer.h"
#include <boost/archive/binary_iarchive.hpp>
#include <boost/serialization/utility.hpp>

#include <array>
#include <iomanip>
#include <stdexcept>
#include <string>

#include "RootSerializer.h"
struct InitTaskError : std::runtime_error {
  using std::runtime_error::runtime_error;
};

using namespace std;

CbmDeviceMonitorPsd::CbmDeviceMonitorPsd()
  : fbIgnoreOverlapMs {false}
  , fsChannelNameDataInput {"psdcomponent"}
  , fsChannelNameHistosInput {"histogram-in"}
  , fsChannelNameHistosConfig {"histo-conf"}
  , fsChannelNameCanvasConfig {"canvas-conf"}
  , fuPublishFreqTs {100}
  , fdMinPublishTime {0.5}
  , fdMaxPublishTime {5.0}
  , fuHistoryHistoSize {3600}
  , fviHistoChargeArgs(3, 0)
  , fviHistoAmplArgs(3, 0)
  , fviHistoZLArgs(3, 0)
  , fsAllowedChannels {fsChannelNameDataInput}
  , fParCList {nullptr}
  , fulNumMessages {0}
  , fulTsCounter {0}
  , fLastPublishTime {std::chrono::system_clock::now()}
  , fMonitorAlgo {new CbmMcbm2018MonitorAlgoPsd()}
  , fArrayHisto {}
  , fvpsHistosFolder {}
  , fvpsCanvasConfig {}
{
}