Releases: FairRootGroup/FairRoot
v19.0.0
Breaking Changes
-
CMake
- Dropped our custom
FindROOT.cmakeby @ChristianTackeGSI in #1050- Using the native CMake package of ROOT, see https://root.cern/manual/integrate_root_into_my_cmake_project/,
- ROOT targets MUST BE prefixed with
ROOT::now, see
https://root.cern/manual/integrate_root_into_my_cmake_project/#full-example-event-project - Explicitely
include(ROOTMacros)after yourfind_package2(... ROOT ...)now - Dropped
ROOT_VERSION_NUMBER, useROOT_VERSION(which is the dotted
version number) andVERSION_GREATER/etc
instead - Dropped
ROOTSYSso use ROOT CMake targets instead, a change by @ChristianTackeGSI in #1118
- Some CMake macros have been factored out into the
FairCMakeModules
project which is required by FairRoot, change by @ChristianTackeGSI in #1059- FairSoft
apr21and later ship it (see alternative
installation methods) find_package2has moved toFairFindPackage2.
To use it in your code, perform something like this:find_package(FairCMakeModules 1.0 REQUIRED) include(FairFindPackage2)
- Dropped Color Codes and
pad(), useFairFormattedOutputfrom FairCMakeModules
instead, a change by @ChristianTackeGSI in #1064- Note that
fair_pad()
needs the width argument to be incremented by 1, and theCOLORoption
takes no argument
- Note that
- FairSoft
- Dropped
Generate_Exe_Script(), it was never meant for external use, by @ChristianTackeGSI in #1110 - Dropped
GENERATE_TEST_SCRIPT(), replace it with a locally maintained solution, by @ChristianTackeGSI in #1110- Consider using
source @FairRoot_BINDIR@/FairRootConfig.sh -p
- Consider using
- Dropped
Generate_Version_Info()by @ChristianTackeGSI in #1377- If you just need to generate some files with your version number in it,
use the standardconfigure_file
CMake command. - Alternatively, consider creating a proper CMake Package
withconfigure_package_config_file(), andwrite_basic_package_version_file(). - If you need the "git version", use
fair_get_git_version()from FairCMakeModules
in addition.
- If you just need to generate some files with your version number in it,
- Renamed our
ROOT_GENERATE_DICTIONARY()toFAIRROOT_GENERATE_DICTIONARY(), by @ChristianTackeGSI in #1328 - Dropped build switch
BUILD_UNITTESTS, it was in conflict with the CMake
standard switchBUILD_TESTINGfrom the CTest module
- Dropped our custom
-
C++
fEvtHeadermember variable now is a private unique pointer owned by
FairRun. To access the event header, use the public member function
GetEventHeader()by @YanzhaoW in #1254.- Dropped headers @rbx in #1340:
basemq/baseMQtools/baseMQtools.hbasemq/policies/Sampler/FairMQFileSource.hbasemq/policies/Sampler/FairSourceMQInterface.hbasemq/policies/Sampler/SimpleTreeReader.hbasemq/policies/Serialization/BinaryBaseClassSerializer.hbasemq/policies/Storage/BinaryOutFileManager.hbasemq/policies/Storage/BoostDataSaver.hbasemq/policies/Storage/RootOutFileManager.hbasemq/policies/Storage/TriviallyCopyableDataSaver.hbasemq/policies/Serialization/IOPolicy.h
- The following files/classes have been moved to the example where they are used and renamed by @rbx in #1349:
basemq/devices/FairMQProcessor.h->examples/advanced/Tutorial3/MQ/processor.cxxbasemq/devices/FairMQSampler.h->examples/advanced/Tutorial3/MQ/sampler.cxxbasemq/tasks/FairMQProcessorTask.h->examples/advanced/Tutorial3/MQ/processorTask/ProcessorTask.hbasemq/tasks/FairMQSamplerTask.h->examples/advanced/Tutorial3/MQ/samplerTask/SamplerTask.h
- FairTimeStamp change by @TobiasStockmanns in #1526
virtual bool operator<(const FairTimeStamp* rValue) constchanged tobool operator<(const FairTimeStamp& rValue) const
Deprecations
If you think you really require a deprecated API, please
file an issue.
- Deprecated MbsAPI by @ChristianTackeGSI in #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 #1235
- Proof was deprecated in ROOT 6.26
- Disabled by default, enable via
-DBUILD_PROOF_SUPPORT=ON
- Deprecated
FairEventBuilderandFairEventBuilderManagerby @karabowi in #1414- Disabled by default, enable via
-DBUILD_EVENT_BUILDER=ON
- Disabled by default, enable via
- Deprecated
FairRun::SetEventHeader(FairEventHeader*), use
FairRun::SetEventHeader(std::unique_ptr<FairEventHeader> EvHeader)instead, a change by @ChristianTackeGSI in #1423 - Deprecated
FairRunAna::Run(Long64_t entry), use
FairRunAna::RunSingleEntry(Long64_t entry)instead, a change by @karabowi in #1426- Semantics were unclear due to dubious
Run(int)andRun(long)
- Semantics were unclear due to dubious
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 yourCMakeLists.txtby @ChristianTackeGSI in #1060 fairsoft-configisn't searched for and not needed any more, a change by #1071
Full Changelog: v18.8.2...v19.0.0
v18.8.2
Bug fixes
- Fix wrong init order in eventdisplay by @DanielWielanek in e723e58
- Fix GeoAssembly bounding box after alignment by @PALoizeau in e0a1514
- Fix to obtain initial random seed from TRandom::GetSeed() by @fuhlig1 in 4cd6215, 92a0261
- Adopt new software versions by @fuhlig1 @ktf :
Add software recognition configs:
- codemeta.json for ESCAPE by @ChristianTackeGSI
- .zenodo.json for zenodo.org by @karabowi
Full Changelog: v18.8.1...v18.8.2
v18.6.10
Bug fixes
- Apply ROOT expert patch to GeoAssembly bounding box after alignment by @PALoizeau, @fuhlig1 in ed6446e
- Store proper random seed after ROOT changed the return value of the GetSeed function of TRandom3 by @fuhlig1 in #1412
Other
FairRun: RemovefTaskfromBrowsablesby @ChristianTackeGSI in f6928ee- Added support for
CMake 3.27in 35769f2,ROOT 6.30in 2fedfd5,yaml-cpp 0.8in e62b1e5,Protobuf 22in 9f1b365, by @fuhlig1, @dennisklein, @ktf - Add config files for ZENODO by @karabowi
Full Changelog: v18.6.9...v18.6.10
v18.8.1
Feature
- Add
CONTRIBUTING.mdby @dennisklein @ChristianTackeGSI in d1c872c, 93dfc56 - Rename
*LinkDef.htoLinkDef.hby @ChristianTackeGSI in 0cba033, - Fix the
FairRoot targetsby @fuhlig1 in a269598 - Allow running
FairRunwithoutsinkby @karabowi in e0807d9
Bugfix
- Fix
Ex1Processorby @ChristianTackeGSI in edb7657 (issue #1286)
Clean-up
- FairEventHeader by @ChristianTackeGSI in cb62974
- FairRun by @ChristianTackeGSI in 3aae2bc
- parbase by @ChristianTackeGSI in 393178b, 65b6434, ec643c9
- FairRunSim by @ChristianTackeGSI in b68c701, cd604e6, 925099e
- Serialization example by @rbx in ff43868, 676d34b, 2180b56, b33bc04, aee515b
Full Changelog: v18.8.0...v18.8.1
v18.8.0
Features
- Added
Alignmenthandler (04527ab 9d8010e) - Implemented
FairGenerator::Finish()function (d59e2aa) - Added new test which checks if the correct unit system is set in
FairRun(95a3868) - Introduced base class for
Fair{File,Mixed}Source(23b1c99 59b9352 2bbf5f5) - Reworked the Doxygen documentation (83e4075)
Breaking Changes
- Move online related code into the new Online library (e61a0e7)
- The special steering class
FairRunOnlinewas moved from
theBaseinto theOnlinelibrary. - Also the MBS/LMD related source classes were moved to
the newOnlinelibrary. - If one of these classes are used in your code, you need
to link against new targetFairRoot::Online.
- The special steering class
- Dropped
CheckCXX11Features(This was also released in 18.6.8 and 18.4.8) (34ca7e6)- FairRoot assumes a recent compiler that fully supports C++17. (e6003d0)
- Remove the following things from your
CMakeLists.txt:-
Set(CheckSrcDir "${FAIRROOTPATH}/share/fairbase/cmake/checks")`
-
include(CheckCXX11Features) -
IF(HAS_CXX11_SHAREDPOINTER) Add_Definitions(-DHAS_SHAREDPOINTER) ENDIF(HAS_CXX11_SHAREDPOINTER)
-
- If your C++ code depends on
HAS_SHAREDPOINTERbeing 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(1d0e5b0)- Just remove it from your
CMakeLists.txt.
- Just remove it from your
- Dropped
USE_PATH_INFOCMake option. It was an anti-pattern. Don't use it! (21c7535) - Dropped
ROOT_GENERATE_ROOTMAP. It was used on ROOT 5.x. (e7f2a96)- Rewrite your build system, if you still use it.
FairRootManager::Get{Tree,Folder}Name()now returnconst char *. (585e1a8)
Do NOTdeletethe returned pointer!FairRunSim::SetSimulationConfig()now takes a
unique_ptrinstead of a raw pointer with unknown
ownership. (43536bf)- Some headers were cleaned up and now
#includefewer
other headers. You might have to add some#includes
in your code. - Added a new build switch
BUILD_BASEMQfor controlling whetherFairRoot::BaseMQand
dependent targets are built (FairRoot::FairMQandFairRoot::ParMQ). It is enabled
by default and will now require its external package dependencies FairMQ and Boost. (00a9b9c 7b1547b eb8cf04) - Boost serialization support for
FairTimeStamp,FairHit, andFairMCPointhas been
moved to theFairRoot::BaseMQtarget to haveFairRoot::Baseno 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. forFairHit:There is also a convenience header#include <FairHit.h> #include <FairHitBoostSerializationSupport.h>
<FairBoostSerializationSupport.h>which includes all
class-based support headers currently offered. (d40f9d9) - Removed
USE_DB_METHODdefine and dependent code (c56a1f7)
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 (a5587bb 812b1cc 3c43363)
- 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.
- This release deprecates MbsAPI.
- Deprecate some singleton-like APIs:
FairRunAnaProof::Instance()- keep a pointer to the
object after instantiating it in your code. (29b7cbf)FairRadGridManager::Instance()- Consider using the
GetRadGridMan()method onFairMCApplcation. (e595507)FairRadMapManager::Instance,FairRadLenManager::Instance(cd84521)FairGeaneApplication::Instance(9c6ac00)
- Deprecated some other APIs
FairGeoVector::roundwas nonfunctional and never did anything. (3c7305d)FairTask::*InputPersistance: (b6cbd8e)
There's no getter forfInputPersistance,
no other code in FairRoot uses the setters,
we're not aware of anyone using it.FairFieldFactory::fCreatorpoints tothis. (4446223)FairRootManager::FillEventHeaderis only a wrapper around
FairSource::FillEventHeader. (b46784a)FairModule::ConstructASCIIGeometry(T*, TString, U*), use
FairModule::ConstructASCIIGeometry(TString)instead. (bde97a4)FairRootManager::RunWithTimeStamps()(cb78b4e)
- Many items were already deprecated in prior versions.
Marked them with proper C++14 deprecation warnings.
Scheduled them for removal in v20. (f386f3b 9459446) - Deprecated DataMatch library (8a75c8b)
- Contact the developers should you need it.
- Scheduled to remove without replacement in a future major release of FairRoot.
- Added option to disable deprecated
PROOFsupport (024660d)
Other Notable Changes
-
Added CHANGELOG.md to trace important changes (50c7c2b)
-
CMake targets for libraries are now exported. (dc9001b bc8282b ebf61b4 e2f3f0a 59fe7ca)
Some have names different from the filesystem library name.Old Library Name Target Name TrkBase FairRoot::TrackBaseFairDataMatch FairRoot::DataMatchFairTools FairRoot::ToolsFairFastSim FairRoot::FastSimFairMCStepLogger FairRoot::MCStepLoggerGen FairRoot::GeneratorsAll those not listed here have the library name prefixed
withFairRoot::as the target name. -
Note that the library filesystem name is scheduled to be
changed in 19.2 to afairroot-trackbasestyle naming.
For those using the targets this change will not be visible. -
Use
overrideto mark overriden methods (b7102b2 ceb98ea 3e591d0 731a6f8 51783a0 224598b 1292f9d b1146c7) -
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=ONto CMake. (829ccc4) -
Use
Fixturesinstead ofDependsin test orchestration (5bcc5b8 7997124) -
Undeprecate
FairRootManager::GetOut{File,Tree}
It has been deprecated since 18.0.0. (e342df3)
v18.6.9
Feature
- Make
AddObjectvirtual inFairRunOnlineby @karabowi, @MohammadAlTurany, @klenze in #1226
Bugfix
- Fix
-DBUILD_MBS=OFFby @ChristianTackeGSI in 50ec03f, a17aeef
Full Changelog: v18.6.8...v18.6.9
v18.4.9
Bugfix
- Fix
-DBUILD_MBS=OFFby @ChristianTackeGSI in b433086, 9f38a9f
Full Changelog: v18.4.8...v18.4.9