@MohammadAlTurany MohammadAlTurany released this Mar 27, 2017 · 444 commits to dev since this release

Assets 2


  • Improvement in precision and stability of implementation of the Runge Kutta algorithm. Calculate track length during propagation. Use common units for magnetic field, momentum and length in this implementation.
  • Online histogram server: introduce possibility to add canvases and folders with histograms. Added option to start on a different port number. Added public accessor to THttpServer object in FairRunOnline.
    Improve reliability of the parser for ASCII parameter files.
  • Possibility to register input objects (TObject) in FairRootManager.


  • Example of FairRoot data analysis using FairMQ in examples/MQ/9-PixelDetector.
  • FairRoot data transfer optimisation (binary data format) in examples/MQ/9a-PixelDetector.



  • Shared memory transport (using boost::interprocess).
  • Adding multiple transports support (one transport per channel).
  • Example for using multiple transports examples/MQ/multiple-transports.
  • Callback-based API (OnData()) to simplify common use cases.
  • Subscription mechanism for configuration (Nicolas Winckler).
  • Prototype plugin system for config & control functionality (with DDS as first plugin for both).
  • Support multiple endpoints per socket (Mikolaj Krzewicki).
  • Configurable rate logging interval per channel.
  • Provide easier access to socket metrics (msg/MB:tx/rx) via channel API.

API Changes

  • Convert transport factories to return smart pointers.
  • Remove SendPart APIs, all multipart now via FairMQParts.
  • Require std::move when adding existing message to FairMQParts.


  • Incorrect calculation of transfer rate for multipart.
  • Compatibility with ZeroMQ 4.2.1 (changed default option value).
  • Eliminate race condition in the state machine & channel.


  • Avoid polling when only one input channel is used (higher performance for small messages).
  • Avoid waiting in the socket rate logger thread when there is nothing to log (faster init/shutdown).
  • Findnanomsg.cmake: Only search for the shared nanomsg library.
  • Simplify logger filtering options, fix log error double printing issues (Nicolas Winckler).
  • Apply standard-conform format to JSON files (Sebastien Binet).
  • Test nanomsg transport only when nanomsg library is found.
  • FairMQSampler: use RuntimeDB only if parameter file is provided.
  • Get default network interface from the default route.
  • FindZeroMQ.cmake: Prefix of defined variables matches package name (ZeroMQ_). Old prefix ZMQ_deprecated. Accepts ZEROMQ_ROOT hint variable (aliBuild/alienv integration).
  • Many small fixes, improvements and code cleanups.