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