Skip to content
Snippets Groups Projects
  • Pierre-Alain Loizeau's avatar
    baa426cd
    [MQ] Improve FairMQ channels usage in unpack-buil-sink chain · baa426cd
    Pierre-Alain Loizeau authored and Pierre-Alain Loizeau's avatar Pierre-Alain Loizeau committed
    - Switch Sampler-Unpackers connection from Push-Pull to Rep-Req! lower sample memory usage and better load-balancing performances (first ready first served)!
    - Use single channel for all histograms exchanges (objects but also configs)... to be cross-checked as some warnings
    - In CbmMQTsSamplerRepReq, fix logic for emission of missing TS list when first missing is index 1
    - In CbmMQTsSamplerRepReq, add case of missing TS 0 to same logic (starting processing after beginning of a run)
    - In CbmMQTsSamplerRepReq, fix the stop execution when reaching max TS nb condition
    baa426cd
    History
    [MQ] Improve FairMQ channels usage in unpack-buil-sink chain
    Pierre-Alain Loizeau authored and Pierre-Alain Loizeau's avatar Pierre-Alain Loizeau committed
    - Switch Sampler-Unpackers connection from Push-Pull to Rep-Req! lower sample memory usage and better load-balancing performances (first ready first served)!
    - Use single channel for all histograms exchanges (objects but also configs)... to be cross-checked as some warnings
    - In CbmMQTsSamplerRepReq, fix logic for emission of missing TS list when first missing is index 1
    - In CbmMQTsSamplerRepReq, add case of missing TS 0 to same logic (starting processing after beginning of a run)
    - In CbmMQTsSamplerRepReq, fix the stop execution when reaching max TS nb condition
runDigiEventSink.cxx 1.71 KiB
/* Copyright (C) 2021 Facility for Antiproton and Ion Research in Europe, Darmstadt
   SPDX-License-Identifier: GPL-3.0-only
   Authors: Pierre-Alain Loizeau [committer] */

#include "CbmDeviceDigiEventSink.h"

#include <iomanip>
#include <string>

#include "runFairMQDevice.h"

namespace bpo = boost::program_options;
using namespace std;

void addCustomOptions(bpo::options_description& options)
{
  options.add_options()("StoreFullTs", bpo::value<bool>()->default_value(false),
                        "Store digis vectors with full TS in addition to selected events if true");
  options.add_options()("OutFileName", bpo::value<std::string>()->default_value("mcbm_digis_events.root"),
                        "Name (full or relative path) of the output .root file ");
  options.add_options()("EvtNameIn", bpo::value<std::string>()->default_value("events"),
                        "MQ channel name for built events");
  options.add_options()("FillHistos", bpo::value<bool>()->default_value(false),
                        "Fill histograms and send them to histo server if true");

  options.add_options()("PubFreqTs", bpo::value<uint32_t>()->default_value(100), "Histo publishing frequency in TS");
  options.add_options()("PubTimeMin", bpo::value<double_t>()->default_value(1.0),
                        "Minimal time between two publishing");
  options.add_options()("PubTimeMax", bpo::value<double_t>()->default_value(10.0),
                        "Maximal time between two publishing");
  options.add_options()("ChNameIn", bpo::value<std::string>()->default_value("histogram-in"),
                        "MQ channel name for histos");
}

FairMQDevicePtr getDevice(const FairMQProgOptions& /*config*/) { return new CbmDeviceDigiEventSink(); }