Third patch of FairRoot release v-17.10

@fuhlig1 fuhlig1 released this Jun 7, 2018 · 192 commits to master since this release

The patch release contain the following changes compared to v-17.10b

Add a missing environment variable to template of root run script. The environment variable FAIRROOTPATH which is needed by some projects was missing.

Don't require SIMPATH when using MODULAR_BUILD. When using the modular build mode which allows to use dependencies (like ROOT, GEANT3, ...) installed at different directories, don't require that the environment SIMPATH is set.

Allow to switch off the writing of an event to the output file in case of a simulation run. A task running after the simulation in FairRunSim events loop can set the flag to false which skips writting the whole event to the output file.

Second patch of FairRoot release v-17.10

@fuhlig1 fuhlig1 released this Dec 14, 2017 · 192 commits to master since this release

The patch release contain the following changes compared to v-17.10a

Add correct version numbers all over the place. There have been still places were the version numbers haven't been correct.

First patch of FairRoot release v-17.10

@fuhlig1 fuhlig1 released this Oct 23, 2017 · 192 commits to master since this release

The patch release contain the following changes compared to v-17.10

Add correct version numbers. The release still contains the information for v-17.03

v-17.10

@MohammadAlTurany MohammadAlTurany released this Oct 22, 2017 · 193 commits to master since this release

CMake

  • Bump minimum required cmake version to 3.9.4
  • Fix overlinking of libFairMQ
  • Add new FairMQFull, FairMQAll, FairMQInstall, and FairMQTests targets, see comments.
  • Add gtest, cotire, and FindPStreams modules
  • Link FairMQLogger into libFairMQ instead of its own shared library.
  • Add many comments

FairMQ

  • [breaking change] FairMQ headers are now installed to $CMAKE_INSTALL_PREFIX/include/fairmq.
  • [new feature] Introduce FairMQShmMonitor for shared memory monitoring & cleanup.
  • [new feature] Introduce FairMQUnmanagedRegion for allocating memory via transport (filled, transfered from and cleaned up by the user).
  • [new feature] Introduce fair::mq::PluginManager for loading fair::mq::Plugins from shared libraries. See the example plugin.
  • [new feature] Introduce fair::mq::PluginServices APIs to give FairMQ plugins the ability to control and configure the device.
  • [new feature] Introduce fair::mq::DeviceRunner helper as a more flexible alternative to the fairmq/runFairMQDevice.h header.
  • [bugfix] Fix monitor not cleaning up more than one region.
  • [bugfix] Avoid using placement new for allocating shm meta header that caused problems on some systems.
  • [bugfix] Fix example/advanced/Region being built only if Geant is found.
  • [bugfix] Fixed example9 memory leak.
  • [bugfix] Fix rate limiting in benchmarkSampler.
  • [enhancement] Refactor the transport interface:
    • Give transports Initialize() method with access to device config.
    • Avoid using global context in the transport.
    • Simplify shutdown procedure (no need for extra thread).
    • Move New*Message APIs up to the TransportFactory and provide facades at FairMQChannel and FairMQDevice.
  • [enhancement] Stop device if binding was unsuccessful (both static and dynamic).
  • [enhancement] FairMQDevice::InitTask runs now in the worker thread (same as other state handlers).
  • [enhancement] Extend shared memory transport configuration: segment size & name.
  • [enhancement] Refactor unit tests (googletest) and extend test coverage
  • [enhancement] Extend documentation
  • [enhancement] STL iterator interface for FairMQParts
  • [enhancement] FairMQDevice can generate an ID, if none provided.
  • [enhancement] Refactor FairMQEventManager to fair::mq::EventManager to support multiple subscribers.
  • [misc] Cleanup examples: serialization, Lmd.

General

  • IO Manager :
    Enabling the user to register branches based on arbitrary types. In particular, it is now possible to register stl containers as branch entries, extending the current TObject* or TCollection* APIs. (See Example/simulation/Tutorial2)
  • Fixed FairRootManager to return correct event time.

Simulation

  • Migration of G4 simulation to multi-threading
  • Make FairLink not inherit from TObject
    -- reduce memory footprint for FairLinks by removing
    inheritance from TObject (which is not needed)
    -- remove virtual keyword from operators
    -- overall this will gain 24bytes per FairLink
    -- other smaller improvements: default destructor, inline trivial constructors
  • Remove data members / virtual functions from FairMultiLinkedData_Interface
    -- remove fVerbose data member which was not used
    -- remove fInserHistory member which is duplicated behind the link pointer
    -- make accessor to link pointer not virtual
  • Remove FairLink member + remove virtual functions from FairTimeStamp
  • Reduce size of FairLink to 15 byte
  • Avoid InheritsFrom function from ROOT
    -- This seemingly cosmetic change saves a lot of CPU time because ROOT triggered a lot of internal TClass generation stuff
    -- It is also not needed since the dynamic cast does the same job

First patch of FairRoot release v-17.03

@fuhlig1 fuhlig1 released this Jun 30, 2017 · 409 commits to master since this release

The patch release contain the following changes compared to v-17.03

  1. Fix problem when an empty list of parameter files is used for the ascii parameter io.

Third patch of FairRoot release v-16.06

@fuhlig1 fuhlig1 released this Jun 30, 2017 · 543 commits to master since this release

The patch release contain the following changes compared to v-16.06b.

  1. Allow to pass extra parameters to the THttpServer in FairRunOnline.
  2. Fix problem when an empty list of parameter files is used for the ascii parameter io.

v-17.03

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

General

  • 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.

Examples

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

FairMQ

NEW

  • 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.

Fixes

  • 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.

Misc

  • 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.

Second patch of FairRoot release v-16.06

@fuhlig1 fuhlig1 released this Nov 8, 2016 · 543 commits to master since this release

The patch release contain the following changes compared to v-16.06a.

  1. Fix Travis configuration.
  2. Allow access to ThttpServer from user code using a getter in FairRunOnline.
  3. Allow to start server on a defined port.