Recent Releases of fairroot

fairroot - v19.0.0

Breaking Changes

  • CMake

    • Dropped our custom FindROOT.cmake by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1050
    • Using the native CMake package of ROOT, see https://root.cern/manual/integraterootintomycmake_project/,
    • ROOT targets MUST BE prefixed with ROOT:: now, see https://root.cern/manual/integraterootintomycmake_project/#full-example-event-project
    • Explicitely include(ROOTMacros) after your find_package2(... ROOT ...) now
    • Dropped ROOT_VERSION_NUMBER, use ROOT_VERSION (which is the dotted version number) and VERSION_GREATER/etc instead
    • Dropped ROOTSYS so use ROOT CMake targets instead, a change by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1118
    • Some CMake macros have been factored out into the FairCMakeModules project which is required by FairRoot, change by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1059
    • FairSoft apr21 and later ship it (see alternative installation methods)
    • find_package2 has moved to FairFindPackage2. To use it in your code, perform something like this: cmake find_package(FairCMakeModules 1.0 REQUIRED) include(FairFindPackage2)
    • Dropped Color Codes and pad(), use FairFormattedOutput from FairCMakeModules instead, a change by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1064
      • Note that fair_pad() needs the width argument to be incremented by 1, and the COLOR option takes no argument
    • Dropped Generate_Exe_Script(), it was never meant for external use, by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1110
    • Dropped GENERATE_TEST_SCRIPT(), replace it with a locally maintained solution, by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1110
    • Consider using source @FairRoot_BINDIR@/FairRootConfig.sh -p
    • Dropped Generate_Version_Info() by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1377
    • If you just need to generate some files with your version number in it, use the standard configure_file CMake command.
    • Alternatively, consider creating a proper CMake Package with configure_package_config_file(), and write_basic_package_version_file().
    • If you need the "git version", use fair_get_git_version() from FairCMakeModules in addition.
    • Renamed our ROOT_GENERATE_DICTIONARY() to FAIRROOT_GENERATE_DICTIONARY(), by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1328
    • Dropped build switch BUILD_UNITTESTS, it was in conflict with the CMake standard switch BUILD_TESTING from the CTest module
  • C++

    • fEvtHeader member variable now is a private unique pointer owned by FairRun. To access the event header, use the public member function GetEventHeader() by @YanzhaoW in https://github.com/FairRootGroup/FairRoot/pull/1254.
    • Dropped headers @rbx in https://github.com/FairRootGroup/FairRoot/pull/1340:
    • basemq/baseMQtools/baseMQtools.h
    • basemq/policies/Sampler/FairMQFileSource.h
    • basemq/policies/Sampler/FairSourceMQInterface.h
    • basemq/policies/Sampler/SimpleTreeReader.h
    • basemq/policies/Serialization/BinaryBaseClassSerializer.h
    • basemq/policies/Storage/BinaryOutFileManager.h
    • basemq/policies/Storage/BoostDataSaver.h
    • basemq/policies/Storage/RootOutFileManager.h
    • basemq/policies/Storage/TriviallyCopyableDataSaver.h
    • basemq/policies/Serialization/IOPolicy.h
    • The following files/classes have been moved to the example where they are used and renamed by @rbx in https://github.com/FairRootGroup/FairRoot/pull/1349:
    • basemq/devices/FairMQProcessor.h -> examples/advanced/Tutorial3/MQ/processor.cxx
    • basemq/devices/FairMQSampler.h -> examples/advanced/Tutorial3/MQ/sampler.cxx
    • basemq/tasks/FairMQProcessorTask.h -> examples/advanced/Tutorial3/MQ/processorTask/ProcessorTask.h
    • basemq/tasks/FairMQSamplerTask.h -> examples/advanced/Tutorial3/MQ/samplerTask/SamplerTask.h
    • FairTimeStamp change by @TobiasStockmanns in https://github.com/FairRootGroup/FairRoot/pull/1526
    • virtual bool operator<(const FairTimeStamp* rValue) const changed to bool operator<(const FairTimeStamp& rValue) const

Deprecations

If you think you really require a deprecated API, please file an issue.

  • Deprecated MbsAPI by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1056
    • We plan to remove it completely in the next major release
    • Disabled by default, enable via -DBUILD_MBS=ON
  • Deprecated Proof related classes by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1235
  • Deprecated FairEventBuilder and FairEventBuilderManager by @karabowi in https://github.com/FairRootGroup/FairRoot/pull/1414
    • Disabled by default, enable via -DBUILD_EVENT_BUILDER=ON
  • Deprecated FairRun::SetEventHeader(FairEventHeader*), use FairRun::SetEventHeader(std::unique_ptr<FairEventHeader> EvHeader) instead, a change by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1423
    • Clarified ownership semantics by @YanzhaoW in https://github.com/FairRootGroup/FairRoot/pull/1254
  • Deprecated FairRunAna::Run(Long64_t entry), use FairRunAna::RunSingleEntry(Long64_t entry) instead, a change by @karabowi in https://github.com/FairRootGroup/FairRoot/pull/1426
    • Semantics were unclear due to dubious Run(int) and Run(long)

Other Notable Changes

  • Restructured the source tree by moving all public components to the new '/fairroot' folder
  • Consider calling fairroot_check_root_cxxstd_compatibility() in your CMakeLists.txt by @ChristianTackeGSI in https://github.com/FairRootGroup/FairRoot/pull/1060
  • fairsoft-config isn't searched for and not needed any more, a change by https://github.com/FairRootGroup/FairRoot/pull/1071

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.8.2...v19.0.0

- C++
Published by karabowi about 2 years ago

fairroot - v18.8.2

Bug fixes

  • Fix wrong init order in eventdisplay by @DanielWielanek in e723e58ce67ce106967b7d2fc8581da4f0a099f8
  • Fix GeoAssembly bounding box after alignment by @PALoizeau in e0a1514ca0bcf4dcbc62fd4f440b611fb75da0a4
  • Fix to obtain initial random seed from TRandom::GetSeed() by @fuhlig1 in 4cd6215fbcd773a570747890755ab146d961aba7, 92a0261b48f4c50eab1ce9b905b2d0e726326773
  • Adopt new software versions by @fuhlig1 @ktf :
    • Fix FindROOT.cmake to work with ROOT v6.30.00 in db27083b7
    • Adopt CMake policies up to 3.27 in 45f6e8791
    • Support yaml-cpp 0.8+ in 52a89713e
    • Fix runtime error with XCode 13.3+ in b4d6a5e19

Add software recognition configs:

  • codemeta.json for ESCAPE by @ChristianTackeGSI
  • .zenodo.json for zenodo.org by @karabowi

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.8.1...v18.8.2

- C++
Published by karabowi over 2 years ago

fairroot - v18.6.10

Bug fixes

  • Apply ROOT expert patch to GeoAssembly bounding box after alignment by @PALoizeau, @fuhlig1 in ed6446e51277a1923efd644345191c5761d12390
  • Store proper random seed after ROOT changed the return value of the GetSeed function of TRandom3 by @fuhlig1 in #1412

Other

  • FairRun: Remove fTask from Browsables by @ChristianTackeGSI in f6928ee732e1a52527ca30ea4f442c44699c5523
  • Added support for CMake 3.27 in 35769f252071b83e45555f3473f91321d80dd322, ROOT 6.30 in 2fedfd5887dc50a788f8a59a800bc67335397b9a, yaml-cpp 0.8 in e62b1e5512ad2bfa7fc67b964dd5282b01fdfb84, Protobuf 22 in 9f1b365036899932cf2fa8640f551dec5f17e7e2, by @fuhlig1, @dennisklein, @ktf
  • Add config files for ZENODO by @karabowi

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.6.9...v18.6.10

- C++
Published by karabowi over 2 years ago

fairroot - v18.8.1

Feature

  • Add CONTRIBUTING.md by @dennisklein @ChristianTackeGSI in d1c872ce28ec5285715a24f5610ad4e3b3bc9ef1, 93dfc5612f7755b33cd22cbf1f680b8ac0d76f26
  • Rename *LinkDef.h to LinkDef.h by @ChristianTackeGSI in 0cba033138a77981424ae770967d9a630f96fa6a,
  • Fix the FairRoot targets by @fuhlig1 in a2695984bbe5eba4630d497e6a230335ed8db02e
  • Allow running FairRun without sink by @karabowi in e0807d9a8c2ad82cfdc60283e208a2903ba1bc56 ## Bugfix
  • Fix Ex1Processor by @ChristianTackeGSI in edb765742d48111c78282938c60c5c1f45ae0c22 (issue #1286) ## Clean-up
  • FairEventHeader by @ChristianTackeGSI in cb629747409432d9f55fbf94ae22c796186d1b57
  • FairRun by @ChristianTackeGSI in 3aae2bc2cf2b4d527896e2c0ab4eba6bdaf5686e
  • parbase by @ChristianTackeGSI in 393178b931b4c20133deaed8e46571ab12c12251, 65b643437e76b5290c2b8ffe764ce0cbd8342053, ec643c9f9520209c8695eed9beaca4effca8543c
  • FairRunSim by @ChristianTackeGSI in b68c70124e5f68d6eca125701a77d75985fca879, cd604e63dcf7e9a904726076f3f9d1a7000c8503, 925099e3f9e1a3cf92e917da9144027ccc8891df
  • Serialization example by @rbx in ff43868873485b45c1a7f1a1afcaa0706383e579, 676d34b423da00631626480fd0f84a3ecb8b1b2d, 2180b564e455238f5ff794baeacb8b1eaa6d979a, b33bc048efdce2761f2efa334e01dcae8224c5a7, aee515b0a3ab19b1c85e28eac1542717c3e3646b

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.8.0...v18.8.1

- C++
Published by karabowi over 3 years ago

fairroot -

Features

  • Added Alignment handler (04527abb0618f80b4e2a801de12c47e8399ab802 9d8010e68982bbc11fe3c278c3c5dd587edb7d13)
  • Implemented FairGenerator::Finish() function (d59e2aadf2bf68ba7acff28aed796280d0c6cf63)
  • Added new test which checks if the correct unit system is set in FairRun (95a3868dc74858cddc45236bdb5de40c33fee1a4)
  • Introduced base class for Fair{File,Mixed}Source (23b1c99266e8f15505bbe91349a89c97d4192057 59b93524ab1f11a8995be1aeffcefb7b61697f8d 2bbf5f551b4f5ed5039d0d2e387b86d0c55485fe)
  • Reworked the Doxygen documentation (83e40751ea0fda9623f9c615a6cde010f21b7985)

Breaking Changes

  • Move online related code into the new Online library (e61a0e7b4eaf364caeab9c3c87c22f022a948765)
    • The special steering class FairRunOnline was moved from the Base into the Online library.
    • Also the MBS/LMD related source classes were moved to the new Online library.
    • If one of these classes are used in your code, you need to link against new target FairRoot::Online.
  • Dropped CheckCXX11Features (This was also released in 18.6.8 and 18.4.8) (34ca7e6c35f5e59513df2f0dae166a5b3e159a99)
    • FairRoot assumes a recent compiler that fully supports C++17. (e6003d0e19a6aec6642e768e21b422dd8b77c6dd)
    • Remove the following things from your CMakeLists.txt:
    • cmake Set(CheckSrcDir "${FAIRROOTPATH}/share/fairbase/cmake/checks")`
    • cmake include(CheckCXX11Features)
    • cmake IF(HAS_CXX11_SHAREDPOINTER) Add_Definitions(-DHAS_SHAREDPOINTER) ENDIF(HAS_CXX11_SHAREDPOINTER)
    • If your C++ code depends on HAS_SHAREDPOINTER being set, rewrite it accordingly.
    • If any of your CMake code depends on HAS_CXX11_* being set, rewrite it accordingly.
    • If your code has specific C++ needs, consider CMake's target_compile_features().
  • Dropped CHECK_EXTERNAL_PACKAGE_INSTALL_DIR (1d0e5b0dac3a3b8e2264753ba6b00b789c1163c1)
    • Just remove it from your CMakeLists.txt.
  • Dropped USE_PATH_INFO CMake option. It was an anti-pattern. Don't use it! (21c7535b616042ba779e9b04cf97f12a00f4860a)
  • Dropped ROOT_GENERATE_ROOTMAP. It was used on ROOT 5.x. (e7f2a968f3baca48631bf8fb07f0e7704775d639)
    • Rewrite your build system, if you still use it.
  • FairRootManager::Get{Tree,Folder}Name() now return const char *. (585e1a8c36745305b92b3e26dae67de5c7ce5811) Do NOT delete the returned pointer!
  • FairRunSim::SetSimulationConfig() now takes a unique_ptr instead of a raw pointer with unknown ownership. (43536bf74c059e3f9fb2573f813321c30209b307)
  • Some headers were cleaned up and now #include fewer other headers. You might have to add some #includes in your code.
  • Added a new build switch BUILD_BASEMQ for controlling whether FairRoot::BaseMQ and dependent targets are built (FairRoot::FairMQ and FairRoot::ParMQ). It is enabled by default and will now require its external package dependencies FairMQ and Boost. (00a9b9c5babd84984be5d8a655e2b88272d1ab10 7b1547b8adb99f7bedce342862ef12ca9009dcca eb8cf04cdb9ed4d4d3a5fee01d38cf532ae79301)
  • Boost serialization support for FairTimeStamp, FairHit, and FairMCPoint has been moved to the FairRoot::BaseMQ target to have FairRoot::Base no longer depend on Boost.Serialization. The user must opt-in to the previously baseline Boost serialization support by including one of the new headers, e.g. for FairHit: cpp #include <FairHit.h> #include <FairHitBoostSerializationSupport.h> There is also a convenience header <FairBoostSerializationSupport.h> which includes all class-based support headers currently offered. (d40f9d9e4e3cea08c612064ab956ef486bcaa318)
  • Removed USE_DB_METHOD define and dependent code (c56a1f7e68fd0e4ee121134ff91370a2f85caec7)

Deprecations

This release of FairRoot deprecates many APIs for various reasons. If you think you really require some API, please file an issue, so that we can see how to handle this.

  • Deprecating MbsAPI (a5587bb401a744a405dc88746ec7506e2236e1d7 812b1cc81338c5761765b8cf5d093c94721770ab 3c43363073cfe1fde3eafbbf3b99d3ddb39ceebf)
    • This release deprecates MbsAPI.
    • It will be disabled by default in FairRoot 19.
    • We plan to remove it completely in FairRoot 20.
    • If you need it, speak up NOW.
  • Deprecate some singleton-like APIs:
    • FairRunAnaProof::Instance() - keep a pointer to the object after instantiating it in your code. (29b7cbf6fd634113662b0968e8376dd891c6e6fb)
    • FairRadGridManager::Instance() - Consider using the GetRadGridMan() method on FairMCApplcation. (e59550791fabd5fa9558897f8466bf854e230cc5)
    • FairRadMapManager::Instance, FairRadLenManager::Instance (cd8452184d1d1fcc7b8e29201df21b719fc774ca)
    • FairGeaneApplication::Instance (9c6ac00ccc5857c61c3b7464fa408641a77741b3)
  • Deprecated some other APIs
    • FairGeoVector::round was nonfunctional and never did anything. (3c7305dcac9604183cb3a487991d46a46bc2e8d6)
    • FairTask::*InputPersistance: (b6cbd8ecdac8b927d1d12a87d00d8c00f4b72624) There's no getter for fInputPersistance, no other code in FairRoot uses the setters, we're not aware of anyone using it.
    • FairFieldFactory::fCreator points to this. (444622376840d68faeb5f9ac632bf64a7be62a5a)
    • FairRootManager::FillEventHeader is only a wrapper around FairSource::FillEventHeader. (b46784a7ebe819e7780e05f9a1944b9b1dfd8235)
    • FairModule::ConstructASCIIGeometry(T*, TString, U*), use FairModule::ConstructASCIIGeometry(TString) instead. (bde97a4eadd3fdfecce866d44498ad268ac22e27)
    • FairRootManager::RunWithTimeStamps() (cb78b4e4d76f7c4325700a5d9f58827aba71b7ff)
  • Many items were already deprecated in prior versions. Marked them with proper C++14 deprecation warnings. Scheduled them for removal in v20. (f386f3b30e407726b846c633df4e1136c6c54d66 9459446d14542d24000c36e07ec9e53dbada2d65)
  • Deprecated DataMatch library (8a75c8bc32cbadb73bc649020aa6c9b91b731d8e)
    • Contact the developers should you need it.
    • Scheduled to remove without replacement in a future major release of FairRoot.
  • Added option to disable deprecated PROOF support (024660d433efed30d73141ffacc9db2c846452d4)

Other Notable Changes

  • Added CHANGELOG.md to trace important changes (50c7c2b05b1d6b602e3242138597bdc636cb8f9a)
  • CMake targets for libraries are now exported. (dc9001bd06742e6d4816088e90f1cc403e1942eb bc8282bb8b09723eb9670967247008b386b5a721 ebf61b4af96c7cf0fa33580cbf54c80b1cc2d3dc e2f3f0a627e73c6bfdd376fc521a32d155893b1d 59fe7ca39cc6720f79d97d6879f6d0ea2096fb59) Some have names different from the filesystem library name.

| Old Library Name | Target Name | | --- | --- | | TrkBase | FairRoot::TrackBase | | FairDataMatch | FairRoot::DataMatch | | FairTools | FairRoot::Tools | | FairFastSim | FairRoot::FastSim | | FairMCStepLogger | FairRoot::MCStepLogger | | Gen | FairRoot::Generators |

All those not listed here have the library name prefixed with FairRoot:: as the target name. * Note that the library filesystem name is scheduled to be changed in 19.2 to a fairroot-trackbase style naming. For those using the targets this change will not be visible. * Use override to mark overriden methods (b7102b253edee2d7d7ae316ad8a3148ab803406c ceb98ea3e9586ed9cd0d1c7bc7ffd9c451fb6ed2 3e591d01c9b9090ce3927e744f50b5f391516510 731a6f8a7412fa7046638fa433b34df376de1860 51783a0bc44098f96e4508a3ee4b2026df7c3f2d 224598b7e648a1566bd7f4d472801c0fcffe3ed8 1292f9d203a755a0beff91b9c9c4a9692e7aaf17 b1146c76446dcc00ad8dc94d97b9236cc4dc67e0) * Tests using Geant3 have been disabled by default, because those tests have a probability > 0 for failing. If you want to run them anyways, pass -DENABLE_GEANT3_TESTING=ON to CMake. (829ccc423a6b033280a4fef9356c9bd337e051b7) * Moved many tests default simulation engine from TGeant3 to TGeant4 (e88cbc6d5957346b4ea493af412eb3f01789ae94 e5197e1ff3e55fe13e23fe64136c0f06186502ec fb444d485fc5a6dc730f34c7b6e858dd7f68de3a) * Use Fixtures instead of Depends in test orchestration (5bcc5b8d29c41282ee697ba977a0eb0c3fe94fb9 7997124721816502ad0a0c1b4133c97de2eb1f57) * Undeprecate FairRootManager::GetOut{File,Tree} It has been deprecated since 18.0.0. (e342df3b704138109f66f17077c998fb82c0d26b)

- C++
Published by karabowi over 3 years ago

fairroot - v18.6.9

Feature

  • Make AddObject virtual in FairRunOnline by @karabowi, @MohammadAlTurany, @klenze in #1226 ## Bugfix
  • Fix -DBUILD_MBS=OFF by @ChristianTackeGSI in 50ec03f3d0a50355e752ffa9e658052972367d3f, a17aeefa7dc52b686564093b2f287f94e9d7b563

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.6.8...v18.6.9

- C++
Published by karabowi over 3 years ago

fairroot - v18.4.9

Bugfix

  • Fix -DBUILD_MBS=OFF by @ChristianTackeGSI in b433086477a6523af56f72f8e23c168dfd2ae422, 9f38a9fa8fa9235e1b3037d4fecee1c7cd64edaa

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.4.8...v18.4.9

- C++
Published by dennisklein over 3 years ago

fairroot - v18.6.8

Maintenance release

  • Add SetTreeName and SetFolderName setters (https://github.com/FairRootGroup/FairRoot/pull/1151)
  • Remove obsolete Cxx11 feature checks (c95fddc28, ffde06e10)
  • Backport forward compatibility patches (https://github.com/FairRootGroup/FairRoot/pull/1171)
    • FairLogger v1.10+
    • FairMQ v1.5
    • ROOT v6.26

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.6.7...v18.6.8

- C++
Published by dennisklein about 4 years ago

fairroot - v18.4.8

Maintenance release

  • Add SetTreeName and SetFolderName setters (https://github.com/FairRootGroup/FairRoot/pull/1152)
  • Remove obsolete Cxx11 feature checks (0de115184, 59e6f25e1)
  • Backport forward compatibility patches (https://github.com/FairRootGroup/FairRoot/pull/1170)
    • FairLogger v1.10+
    • FairMQ v1.5
    • ROOT v6.26

Full Changelog: https://github.com/FairRootGroup/FairRoot/compare/v18.4.7...v18.4.8

- C++
Published by dennisklein about 4 years ago

fairroot - v18.6.7

Bugfix

  • Fix TGeo unit system to be the ROOT one (a476338991df4f909c7a640ada6d324fb6b489df)

- C++
Published by dennisklein over 4 years ago

fairroot - v18.6.6

Maintenance release

Improvements for using with FairSoft apr21p2.

- C++
Published by dennisklein over 4 years ago

fairroot - v18.4.7

Maintenance release

Improvements for using with FairSoft apr21p2.

- C++
Published by dennisklein over 4 years ago

fairroot - v18.6.5

Bugfixes

  • Alignment: Add missing streamer (a47ec600c)
  • Fix initialization order of AlignGeometry() (067e7d852)

Buildsystem

  • Drop Unrelated Variables from FairRootConfig.sh (d668c54418ceff286d49ad2f0e43b4cde56625ce)
  • Add library dependency needed on macosx12 (42a8ef64d)

- C++
Published by dennisklein over 4 years ago

fairroot - v18.6.4

Bugfix

  • Make Rtdb IO backends user-extensible again (#1093)

- C++
Published by dennisklein over 4 years ago

fairroot - v18.4.6

Bugfix

  • Make Rtdb IO backends user-extensible again (#1093)

- C++
Published by dennisklein over 4 years ago

fairroot - v18.6.3

Bugfix

  • Avoid mandatory Fatal in FairRunOnline if no Sink defined. (6848f09fd2789e400dd4cfcb20c68fcdfd415a1f)

- C++
Published by dennisklein about 5 years ago

fairroot - v18.4.5

Bugfix

  • Avoid mandatory Fatal in FairRunOnline if no Sink defined. (451ce30b02688283ccd32b1cdcfdd98f57959f86)

- C++
Published by dennisklein about 5 years ago

fairroot - v18.6.2

Buildsystem

  • Pass global -std flag from fairsoft-config into CMAKE_CXX_STANDARD variable (1a4a3f9c43100e4558066a07b8533eb29b560b63) This fixes a problem that was seen so far on recent macOS systems (see FairRootGroup/FairMQ#339 for details)

- C++
Published by dennisklein about 5 years ago

fairroot - v18.4.4

Buildsystem

  • Pass global -std flag from fairsoft-config into CMAKE_CXX_STANDARD variable (a2d71618bc436064a18d13c4df5e6cd46ce97912) This fixes a problem that was seen so far on recent macOS systems (see FairRootGroup/FairMQ#339 for details)

- C++
Published by dennisklein about 5 years ago

fairroot - v18.6.1

Bugfix

  • Use correct flag for post init configuration (485a31b535c53f6f4de6b68e11c6c90608a82fad)

Buildsystem

  • Do not build some examples in headless mode (8e06d3026da07b60d5a7e9ffd45b177d89dd728c)

- C++
Published by dennisklein about 5 years ago

fairroot - v18.4.3

Bugfixes

  • Fix time setting for EventHeader in FairFileSource (299f0ecdad0c907cd0c5f66e991ab09337442be2)
  • Fix in FairMCApplication: Do not call PreTrack() twice (41bdfe52bb8479347c8a3ff0faffd79ecbab5b6b)
  • Fix a conversion from TString to string in Tutorial4 (bdd47724ee197e2b9b423e868e94a055ada11742)

Buildsystem

  • Add search path for lib64 to FindFairRoot.cmake (65823424c21f15a84350e353ffae8761d2d8d6f3)
  • Drop check for "-std=*" in CXX_FLAGS (8abd097e9bcd7e8eee5c097c889e05799065b6d2)

- C++
Published by dennisklein about 5 years ago

fairroot - v18.6.0

Features

  • Improved and extended event display (#1000, #1029)
  • Introduce the gConfig PostInit in the configuration of MC simulation (e7dfa6a3a, 737af01ce)

Bugfixes

  • Fix the bug in FairIon::SetMass function (#1007)
  • Fix time setting for EventHeader in FairFileSource (197187c33)
  • Fix for the missing magnetic field in the event display (4a6777e1f)
  • Fix in FairMCApplication: Do not call PreTrack() twice (add58d590)
  • Fix a convertion from TString to string in Tutorial4 (9d5587897)
  • Fix ex_MQ_pixel_simulation and pixelSplitDDS examples (#1026, 04736182f)

Examples

  • Extend the propagator example with TrackFinder (#987)
  • Reinstate the DDS-based pixelSimSplit test (6c337bab9, bcf73f666)

Buildsystem

  • Support standalone CLHEP installations (#1015, #1018)
  • Remove obsolete compiler flags on macOS (6e2619927)
  • Set C/C++ compiler to clang/clang++ by default on macOS (371dc7791)
  • Relax compiler check when using common compiler wrappers (e21d430bf)
  • Refine condition for yaml-cpp workaround (a57dea74a)
  • Add search path for lib64 to FindFairRoot.cmake (da50303dc)
  • Drop check for "-std=*" in CXX_FLAGS (adeea3d90)

- C++
Published by dennisklein about 5 years ago

fairroot -

Bugfixes

  • Fix the bug in FairIon::SetMass function (492a0539a1afeb14b565194febdabafea95ce1d5, #1007)

Buildsystem

  • Support standalone CLHEP installations (2390a913d, 95adeb6b8)
  • Remove obsolete compiler flags on macOS (808b3cbe3)
  • Set C/C++ compiler to clang/clang++ by default on macOS (8fe45e5131c422ee109a1883edd08d67b31e8f99)
  • Relax compiler check when using common compiler wrappers (544ea3cc743c87498298186d8d44738eef7edb72)
  • Refine condition for yaml-cpp workaround (b49705684ae25b74a10d0826dfbf10cb1469b1fb)

- C++
Published by dennisklein over 5 years ago

fairroot - v18.4.0

Features

  • Improve the fast simulation by adding the possibility to create secondaries in the FastSim medium.
  • Introduce a new particle generator : This generator generates particles by using 2D histogram with distribution of Y (x-axis) and pt (y-axis).

Examples

  • Introduce a new propagator example (including Geane)

Removed

  • Stop Go Support and remove the Go example

Misc

  • Modernized CMake code
  • New target-based root dictionary macro fairroot_target_root_dictionary()
  • Enforced code formatting policy. It is required to apply git-clang-format on your PRs from now on.

- C++
Published by dennisklein almost 6 years ago

fairroot - First patch of FairRoot release v18.2

The patch release contain the following changes compared to v18.2.0

Allow compilation of FairRoot with a FairSoft installation without the simulation tools like Geant3 and Geant4. Properly setup the RUNPATH information in libraries and executables.

- C++
Published by fuhlig1 almost 7 years ago

fairroot - Eighth patch of FairSoft release v18.0

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

Fix a problem which occurred with newer CMake version.

- C++
Published by fuhlig1 almost 7 years ago

fairroot - v18.2.0

New Features:

  • New Alignment module: Handle the misalignment of individual detector components and give the user a simple interface to create misalignment matrices and apply them to the current working geometry in a simulation session. for more details see alignment/README.md

  • Redesign of the VMC simulation configuration:

    • Move loading and execution of the configuration macro to FairGenericVMCConfig (in preparation to remove this option)
    • Use yaml-cpp in fairtools/MCConfigurator/FairYamlVMCConfig (derives from FairGenericVMCConfig) to parse gconfig yaml files to setup Geant transport.
    • The final derived class of FairGenericVMCConfig is FairVMCConfig located in examples/common/gconfig/ which configures the actual instance of the FairStack.
    • Create g3Config.yaml and g4Config.yaml with corresponding transport setup.
  • Use Geant4 multithreaded if available

  • New implementation of MCStepLogger to monitor stepping calls in VMC (Originally developed by Sandro Wenzel for AliceO2)

  • Improve CMake output: Find report only on errors, the output of find is summarized at the end

  • Specify output folder for simulation and reconstruction name in simulation through config/rootmanager.dat file

  • Improve FairPrimaryGenerator

    • Change order of creating the vertex and the beam angle.
    • Make the functions MakeVertex() and MakeBeamAngle() virtual to allow the user to change them in the derived classes.
  • Implement FastSimulation

    • Users may create detectors with parametrized particle transport.

New examples:

  • Histogram server: A device sending multiple histograms to the generic server. Server publishes the histograms using THttpServer.
  • Fast Simulation Tutorial1 in examples/simulation include also a parametrised detector

- C++
Published by MohammadAlTurany almost 7 years ago

fairroot - Sixth patch of FairRoot release v18.0

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

  • Adopt to Geant4 10.5
  • Adopt to changes in FairMQChannel API
  • Fix error with matrix operations when using ROOT >= 6.14
  • Add boost component “container”.

All listed changes only ensure compatibility with the FairSoft release jun19.

- C++
Published by MohammadAlTurany almost 7 years ago

fairroot - Sixth patch of FairRoot realease v18.0

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

  • Work around a problem that creating a TCanvas in FairMonitor invalidates the gFile pointer which in the end results in a crash of the FairRoot session.

- C++
Published by fuhlig1 over 7 years ago

fairroot - Fifth patch of FairRoot v18

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

  • Fix a problem with the initialization order of FairSink and FairSource in FairRunOnline

- C++
Published by fuhlig1 over 7 years ago

fairroot - Release v18.0.0

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*)

- C++
Published by fuhlig1 over 7 years ago

fairroot - First patch of FairRoot release v18

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

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

- C++
Published by fuhlig1 over 7 years ago

fairroot - Second patch of FairRoot release v18

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.

- C++
Published by fuhlig1 over 7 years ago

fairroot - Third patch of FairRoot release v18

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.

- C++
Published by fuhlig1 over 7 years ago

fairroot - Forth patch of FairRoot v18

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

- C++
Published by fuhlig1 over 7 years ago

fairroot - Fourth patch of FairRoot release v-17.10

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

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

- C++
Published by dennisklein over 7 years ago

fairroot - Third patch of FairRoot release v-17.10

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.

- C++
Published by fuhlig1 almost 8 years ago

fairroot - Second patch of FairRoot release v-17.10

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.

- C++
Published by fuhlig1 over 8 years ago

fairroot - First patch of FairRoot release v-17.10

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

- C++
Published by fuhlig1 over 8 years ago

fairroot - v-17.10

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

- C++
Published by MohammadAlTurany over 8 years ago

fairroot - First patch of FairRoot release v-17.03

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.

- C++
Published by fuhlig1 almost 9 years ago

fairroot - Third patch of FairRoot release v-16.06

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.

- C++
Published by fuhlig1 almost 9 years ago

fairroot -

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 ZMQdeprecated. Accepts ZEROMQ_ROOT hint variable (aliBuild/alienv integration).
  • Many small fixes, improvements and code cleanups.

- C++
Published by MohammadAlTurany about 9 years ago

fairroot - Second patch of FairRoot release v-16.06

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.

- C++
Published by fuhlig1 over 9 years ago

fairroot - First patch of FairRoot release v-16.06

The patch release contain the following changes compared to v-16.06. 1. Fix the FairLogger. With this new version the output is done correctly again.

- C++
Published by fuhlig1 over 9 years ago

fairroot - Sixth patch of FairRoot release v-15.11

The patch release contain the following changes compared to v-15.11e. 1. 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.

- C++
Published by fuhlig1 over 9 years ago

fairroot - 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(Intt NStart=0 ,Intt 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.

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

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

- C++
Published by fuhlig1 almost 10 years ago

fairroot - Fifth patch of FairRoot release v-15.11

The patch release contain the following changes compared to v-15.11d. 1. 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. 2. 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.

- C++
Published by fuhlig1 almost 10 years ago

fairroot - Fourth patch of FairRoot release v-15.11

The patch release contain the following changes compared to v-15.11c. 1. Correctly setup the environment when using GENERATETESTSCRIPT 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.

- C++
Published by fuhlig1 almost 10 years ago

fairroot - Third patch of FairRoot release v-15.11

The patch release contain the following changes compared to v-15.11b. 1. 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. 2. Add possibility to skip writing an event to tree. 3. 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. 4. Fix linking error with Xcode 7.3.

- C++
Published by fuhlig1 about 10 years ago

fairroot - Second patch of FairRoot release v-15.11

The patch release contain the following changes compared to v-15.11a. 1. Allow to use parameters in FairUnpackers.
2. Unify data members of different run classes. 3. Create new class for online sources.
4. Avoid reading the first event in case of online source.

A more detailed description can be found in the log message.

- C++
Published by fuhlig1 about 10 years ago

fairroot - First patch of FairRoot release v-15.11

The main reason for this patch was to correct a problem with TF1 when using ROOT6.

In FairRoot a TF1 was used which was created out of a TString definition of an expression which was put together on the fly. This was done to easily change a parameter of the expression from the macro.

The old definition of the time distribution between two events was found 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.

- C++
Published by fuhlig1 over 10 years ago

fairroot - Second patch of FairRoot release v-15.07

The main reason for this patch was to correct a problem with TF1 when using ROOT6.

In FairRoot a TF1 was used which was created out of a TString definition of an expression which was put together on the fly. This was done to easily change a parameter of the expression from the macro.

The old definition of the time distribution between two events was found 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.

Also two minor issues have been fixed. - Add one more environment variable which is needed for ROOT6. The variable defines the location of the needed header files and was missing when the environment is defined for scripts which should run at test time. The problem was already fixed in case a root macro is executed. - Backport FairMonitor. The class can't be used in this release but is needed in order to compile some macro from the CBM experiment properly when using ROOT6.

- C++
Published by fuhlig1 over 10 years ago

fairroot - FairRoot release November 2015

Release info:

New Features

  • Redesign the FairRoot IO manager
  • Introduce FairSource as base class for different sources
  • Extend the FairRunOnline functionality to support THttpServer
  • New FairMonitor to monitor the task execution time
  • New MQ front end of the parameter manager (ParameterMQServer)

Improvements

FairMQ

  • Add possibility to poll on multiple channels.
  • Include command channel when polling on blocking calls (for unblocking without termination).
  • Add new Send/Receive methods with smart pointers and no flag checks.
  • Add methods to FairMQChannel to set timeout on blocking Send/Receive
  • Add ExpectsAnotherPart() method to check if another msg part is expected (old approach still works).
  • Add orthogonal OK/ERROR states. Entering ERROR state will leave the executable running to allow easier debugging.
  • Move signal handler from run-files to the FairMQDevice class (call FairMQDevice::CatchSignals() in the main function).
  • Add thread-safe 'bool CheckCurrentState(statename)' (instead of 'GetCurrentState() == statename' that cannot be thread safe).
  • Add 'InteractiveStateLoop()' method that can be used to change states from the command line.
  • Add automatic transition to IDLE state if Run() exits without an external event.
  • Implement reset of FairMQDevice.
  • Add FairMQ tests (PUB-SUB, PUSH-PULL, REQ-REP).
  • Use same executable for bin/boost/protobuf/root data format, configured now via --data-format <binary/boost/protobuf/tmessage> command line parameter.
  • FairMQStateMachine: improve feedback on invalid transitions (more readable).
  • Add a logger for FairMQ based on Boost.Log v2
  • Refactor the generic MQ devices
  • Add CRTP base class for (de)serialization, source, task, and file sink policies, which can be used as guideline for the policies of the generic MQ devices
  • Add template functions to use simple interactive or non-interactive state machine sequence.
  • Add helper functions for the FairProgramOptions

Base/MQ :

  • Add a serializeMsg function member in boost serializer policy that take a pointer to the data type
  • Add FairRoot-like directory structure in root files produced by the RootOutputManager storage policy
  • Add FairMQFileSource, an interface to the FairFileSource, which can be used as policy for the generic sampler device
  • Add FairMQLmdSampler device to read Lmd file and send binary to another device (most likely an unpacker)
  • Add FairMQUnpacker device which take an Unpacker as template parameter

Examples

  • Simplify the Tutorial7 and add an example of using FairMQFileSource policy. Use FairProgramOptions to configure the data generator.
  • Add an usage example of FairMQLmdSampler and FairMQUnpacker using the data of tutorial8
  • Restructure the examples directory and add new documentation
  • New: MBS data unpacking from LMD file and corresponding test.
  • New: Dynamic configuration of devices with DDS.
  • New: Multiplicating data with zero copy and push pattern.
  • New: Working with multiple channels in FairDevices
  • New: Sending multipart messages.
  • New: Using ParameterMQServer

Bug fixes:

  • FairRunAnaProof for the ROOT6
  • Various smaller bug fixes and error handling in FairMQ
  • ReadEvent with time stamps 102
  • Return value of FairRootManager::ReadEvent() 101
  • FairRoot dev does not compile on SL6 90

- C++
Published by MohammadAlTurany over 10 years ago

fairroot - First patch of FairRoot release v-15.07

The patch release contain 3 changes compared to v-15.07. 1. Increase maximum test time since with the old setting the tests often run in timeouts when running with ROOT6. ROOT6 compiles the macros at startup which results in some extra time. 2. Add some fix in the build system which is needed when compiling with gcc 5.x. 3. Change the bash scripts for setup and testing. This change was necessary because ROOT6 needs an additional environment variable to be able to find the header files which are needed for the compilation of the macros.

For all users not using gcc 5.x or testing ROOT6 support no update of FairRoot is needed.

- C++
Published by fuhlig1 over 10 years ago

fairroot - FairRoot release July 2015

Release info:

Move data base interface (FairDB) to a separate repository

  • Remove dbase directory from FairRoot tree
  • Update the Readme.MD file with instructions how to build with FairDB support
  • default build is now without FairDB

General

  • Fix many coverity issues
  • Small fixes needed for ROOT6
  • Add the header files to the xcode project navigation list
  • Rename FairMemory to FairSystemInfo. All macros now have a unified block at the end which extracts the maximal used memory and calculates the CPU usage. Both values are formated in a way that they are CTest compliant and can be send to the CDash server.

FairMQ

  • Update FairMQStateMachine & introduce FairMQChannels
  • Organize sockets as a map of vectors of FairMQChannels.
  • Update FairMQStateMachine by removing SETTINGINPUT, SETTINGOUTPUT, BIND and CONNECT states and by adding INITIALIZINGTASK, RESETTINGTASK and RESETTING_DEVICE states. Run states functions in their own thread.
  • Move fairmq json parser to fairmq/options
  • Add FairMQProgOptions for configuring MQDevices
  • Increase maximum number of zeromq sockets and improve output on errors.
  • Reduce amount of output when finding port from a range.
  • Stop the Device when socket creation fails and output an error.

- C++
Published by MohammadAlTurany almost 11 years ago

fairroot - First patch of release v-15.03

Add one function in FairRunOnline which is needed by the CBM experiment.

- C++
Published by fuhlig1 about 11 years ago

fairroot - FairRoot release March 2015

Release information:

Solve problem with crashes of FairRoot when running Geant3 simulations on 32bit machines. The database interface FairDb is not build by default. One has to switch on the option -DWITH_DB=TRUE. Add script fairroot-config which return information about the used Compilers, SIMPATH and FairRoot version. Some bug fixes in config.sh and config.csh scripts. Several fixes in the build system. Remove dynamic casts at several places where they are not needed to improve performance. Re-organize base/MQ directory, change library name FairMQSampler to BaseMQ, and link tutorial 3,6,7 accordingly. Implemented optional modular build. Add generic MQ-devices (Sampler, Processor, and FileSink) in fairmq. Remove warnings. Reorganization of IO classes to make use of the new FairSource class. Start porting classes to use multi-threading in Geant4.

- C++
Published by fuhlig1 about 11 years ago

fairroot - FairRoot release November 2014

Release notes:

Bug fixes Support new Linux and MAC releases Use Boost program options for managing command line options of executables Add ROUTER/DEALER/PEAR sockets to FairMQ interface Add REQ/REP sockets to FairMQ interface New Tutorial Add Project template

- C++
Published by MohammadAlTurany over 11 years ago