Skip to content

Releases: FairRootGroup/FairRoot

Forth patch of FairRoot v18

01 Nov 08:39
Compare
Choose a tag to compare

The patch release contain the following changes compared to v18.0.3:

  • Correct dictionary generation such that header files are included in the dictionaries. This is needed to properly compile ROOT macros using FairRoot classes when only the FairRoot installation directory is available.

  • add a missing include statement and fix a wrong namespace to be able to compile the release with FairMQ versions larger than 1.3.2

Third patch of FairRoot release v18

01 Nov 08:42
v18.0.3
4151e72
Compare
Choose a tag to compare

The patch release contain the following changes compared to v18.0.2:

  • Fix an ambiguous function call to make the call unique.
  • Fix some memory leaks.
  • Run some tests only serial do to errors when running the parallel.

Second patch of FairRoot release v18

01 Nov 08:46
v18.0.2
8c2a009
Compare
Choose a tag to compare

The patch release contain the following changes compared to v18.0.1:

  • Allow to build FairRoot with C++17.
  • Reintroduce a removed interface since it is used by derived projects.
  • Correct bug in FairTrajFilter.

Fourth patch of FairRoot release v-17.10

26 Sep 14:37
v-17.10d
610d161
Compare
Choose a tag to compare

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

  • Fix ambiguous method call in BaseMQFileSink (did not build with GCC 8).

First patch of FairRoot release v18

01 Nov 08:49
Compare
Choose a tag to compare

The patch release contain the following changes compared to v18.0.0:

  • Add the Geant3 include directory to the environment variable ROOT_INCLUDE_PATH. Without this change it could come to errors when compiling ROOT macros using Geant3 classes.

Release v18.0.0

01 Nov 12:36
Compare
Choose a tag to compare

General

With this release there comes a change in the versioning scheme. Instead of a version number denoting the year and month of the release (e.g. v-17.10) the version now denotes major, minor and patch version as numbers (e.g. 18.0.0). To avoid possible conflicts with the old versioning scheme the first major version was chosen to be 18. So all scripts which extracts the year from the old version scheme as a version number will work as before.

FairMQ

The FairMQ related code was extracted from FairRoot and is now a project on its own. The code is availble from https://github.com/FairRootGroup/FairMQ.
The change was done since it allows to use FairMQ without FairRoot. It also allows to decouple the development of FairRoot and FairMQ.

FairLogger

Also the logger classes have been put to a separate project. This was necessary since the logger is used by FairMQ as well as by FairRoot.

CMake

  • Require external FairLogger installation
  • Require at least ROOT 6.10.00
  • Add find_package for FairMQ (at least 1.2.0)
  • Remove several find_package since they are dependencies of FairMQ
  • Use exported FairMQ::FairMQ target

Base

  • Correct copyright information

  • Use new external logger to unify the logging

  • make the folder name in output file configurable (cbmroot/cbmout)

  • Add new class FairPrintFairLinks to print all FairLinks of a given branch to the scren

  • Add new base class FairPropagator and use it in already existing propagators

  • Add new base class FairSink

  • Use FairRootFileSink instead of output files

  • Store also subtasks to FairFileHeader's task list

  • Allow user to decide if an event is saved after the simulation. The default is still to save all events. To disable the saving of one event after the simulation a task running after the simulation is needed which take the decision and call rootmgr->SetSaveCurrentEvent(kFALSE);

  • Allow to place a TGeoVolume when using FairModule::ConstructRootGeometry(TGeoMatrix*)

Third patch of FairRoot release v-17.10

07 Jun 08:35
Compare
Choose a tag to compare

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

14 Dec 08:27
Compare
Choose a tag to compare

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

23 Oct 13:24
Compare
Choose a tag to compare

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

22 Oct 04:13
Compare
Choose a tag to compare

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