Releases: FairRootGroup/FairRoot
Third patch of FairRoot release v-16.06
The patch release contain the following changes compared to v-16.06b.
- Allow to pass extra parameters to the THttpServer in FairRunOnline.
- Fix problem when an empty list of parameter files is used for the ascii parameter io.
First patch of FairRoot release v-17.03
The patch release contain the following changes compared to v-17.03
- Fix problem when an empty list of parameter files is used for the ascii parameter io.
v-17.03
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
The patch release contain the following changes compared to v-16.06a.
- Fix Travis configuration.
- Allow access to ThttpServer from user code using a getter in FairRunOnline.
- Allow to start server on a defined port.
Sixth patch of FairRoot release v-15.11
The patch release contain the following changes compared to v-15.11e.
- Fix memory leak due to undeleted temporary event header object. Since the event header object is rather small the problem becomes only relevant when running millions of events.
First patch of FairRoot release v-16.06
The patch release contain the following changes compared to v-16.06.
- Fix the FairLogger. With this new version the output is done correctly again.
FairRoot release June 2016
In the following there is a not complete list of changes since the last release. The complete list of log messages between this release and the previous one can be extracted using the following command
git log v-15.11..v-16.06
List of changes
Core FairRoot
- Fix many warnings and Coverity issues.
- Cleanup of run managers.
- Allow to use parameters in FairUnpackers.
- Unify data members of different run classes.
- Create new class for online sources.
- Avoid reading the first event in case of online source.
- Remove global pointer (gMC)
- Use the static TVirualMC::GetMC() method instead of the global pointer
- Added explanation of histogram server.
- Added possibility to merge proof output files. The event order in the output merged file is not restored.
- Don't run rootcint directly when generating the dictionary.
Instead create a shell script when running cmake which is
executed to generate the dictionary. This two step procedure is needed because with cteat_launchers the needed environment
variables are not present when generating the dictionary but only when running cmake. - Added default values to FairRunAnaProof::Run(Int_t NStart=0 ,Int_t NStop=0)
- Correct definition of TF1 for ROOT6:
- The former definition of the time distribution between two events was only working
with Root5. With Root6 the defintion of the function was somehow brocken and the
returned random value was allways infinity. The new version of functions doesn't
use a TString any longer but a inline expression using standard C++ functions.
- The former definition of the time distribution between two events was only working
FairMQ
- Remove obsolete classes in FairMQ.
- Update multi-part features (nanomsg) and various fixes
- Implement nanomsg multipart with MessagePack.
- Use the MessagePack from FairSoft and handle not found case.
- Include device ID in the zeromq socket identity: For request sockets in ZeroMQ the socket identity must be unique, otherwise multiple clients will be rejected.
- Extend the multipart API to allow sending vectors of messages (either directly or via FairMQParts API). See example in examples/MQ/8-multipart.
- Remove compile time transport interface switch for FairMQ
-
Remove the compile time check of the transport implementation.
The transport (zeromq/nanomsg) can be chosen at run time with:device.SetTransport("zeromq"); // possible values are "zeromq" and "nanomsg"
.
For devices that use FairMQProgOptions, the transport can be configured via cmd option:
--transport zeromq
or--transport nanomsg
. Default values is "zeromq".
The device receives the configured value with:
device.SetTransport(config.GetValue<std::string>("transport"));
-
- Add an abstract Serialization interface in FairMQDevice (c.f.
winckler-ALICE-Offline-Week-2016.pdf)
Simulation
- Allow to define the name of the output Tree: The name of the simulation output tree is now taken from VMCWORKDIR/gconfig/rootmanager.dat (Default name is cbmsim).
- Implement the possibility to modify the ideal geometry.
- Add a call to InitParContainers of the modules: This is needed to read parameters to modify the ideal geometry. Also call the ModifyGeometry function of the modules. In the module specific implementation of the function the modifications to the ideal geometry can be defined. It is possible to use parameters from a parameter container. At the end of the simulation the geometry is reverted back to the ideal geometry which is then saved in the parameter file.
- Add new GEANT4 environment variable.
- Geant4 10.02.p01 needs the environment variable G4ENSDFSTATEDATA to run. Find the corresponding data files in FindGEANT4DATA.cmake and set the needed environment variable in all scripts.
- Fix memory problem.
- Add possibility to store information about coordinate system.
- Allow to save MCPoints in local or global coordinates.
- Store random seed in the base parameter container. The usage is shown in Tutorial2.
- Fixing an efficiency gap in FairWriteoutBuffer.
Build and test systems
- Add new test which simply loads all libraries to correctly determine the code coverage.
- Correctly setup environment when using GENERATE_TEST_SCRIPT macro.
- Add possibility to switch of the file layout check when adding files to chain.
- Configuration and DDS example/tools updates
- Change the FairRoot build system to be able to use the AlfaBuild installation.
- Use variables for Boost libraries instead of explicit names
- Add Continuous integration using TravisCI.
- Change compiler flags for nightly and profile tests on Mac OSX.
- Switch on Wall and Wextra compiler warnings when running build type 'Nightly' or 'Profile' on Mac OSX.
- Add test of the serialisation examples.
- Switch on Wall and Wextra compiler warnings when running build type 'Nightly' or 'Profile' on Mac OSX.
Event Display
- Fix errors in eventdisplay macro.
- New draw class to draw MCPoints in local and global coordinates correctly.
- Projections added to event dipsplay
Examples
- New shared memory transport example for FairMQ in examples/MQ/SharedMemory
- Added new example MQ-9-Pixel that shows how to use FairTasks in FairMQ.
- Major update of Tutorial4.
- New "go" example to show how to use different languages with FairMQ.
- Add FlatBuffers & MessagePack examples
- Add FlatBuffers serialization example to Tutorial 3
- Add MessagePack serialization example to Tutorial 3
- Add serialisation examples for single and multipart messages in FairRoot/examples/MQ/serialization directory
Fifth patch of FairRoot release v-15.11
The patch release contain the following changes compared to v-15.11d.
-
Correctly setup the runtime environments to work with FairSoft may16.
Add missing environment variable which is needed for the latest Geant4
version whch comes with FairSoft may16.
Change scripts to work with Dash. -
Allow to switch of the file layout check when adding files to chain.
This is needed because if ROOT automatically split files some branches are
only written in the first file. This results in an exit of the program.
Fourth patch of FairRoot release v-15.11
The patch release contain the following changes compared to v-15.11c.
-
Correctly setup the environment when using GENERATE_TEST_SCRIPT macro.
The used template was completely outdated which results in broken tests when using ROOT6 (found by CBM).
Remove distinction between Linux and Mac OSX. All variables are now defined in one template.
Third patch of FairRoot release v-15.11
The patch release contain the following changes compared to v-15.11b.
-
Allow to change the name of the output tree.
Read the name of the output tree from VMCWORKDIR/config/rootmanager.dat.
If no file is present the default name is cbmsim.
Add instructions on how to change treename to main README. -
Add possibility to skip writing an event to tree.
-
Change the handling of Sources and Unpackers.
Move function SetParContainers for unpackers to FairSource base class.
Avoid dynamic cast in FairRunOnline.
Add ReInit to the Unpacker class. Call ReInitUnpackers from FairRunOnline.
Call fSource->Close() in the Finish method of FairRunOnline.
Set the run ID using source. -
Fix linking error with Xcode 7.3.