Releases: FairRootGroup/FairRoot
v19.0.0
Breaking Changes
-
CMake
- Dropped our custom
FindROOT.cmake
by @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
ROOTSYS
so 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
apr21
and later ship it (see alternative
installation methods) find_package2
has 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()
, useFairFormattedOutput
from FairCMakeModules
instead, a change by @ChristianTackeGSI in #1064- Note that
fair_pad()
needs the width argument to be incremented by 1, and theCOLOR
option
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_TESTING
from the CTest module
- Dropped our custom
-
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 #1254.- Dropped headers @rbx in #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 #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 #1526
virtual bool operator<(const FairTimeStamp* rValue) const
changed 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
FairEventBuilder
andFairEventBuilderManager
by @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.txt
by @ChristianTackeGSI in #1060 fairsoft-config
isn'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
: RemovefTask
fromBrowsables
by @ChristianTackeGSI in f6928ee- Added support for
CMake 3.27
in 35769f2,ROOT 6.30
in 2fedfd5,yaml-cpp 0.8
in e62b1e5,Protobuf 22
in 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.md
by @dennisklein @ChristianTackeGSI in d1c872c, 93dfc56 - Rename
*LinkDef.h
toLinkDef.h
by @ChristianTackeGSI in 0cba033, - Fix the
FairRoot targets
by @fuhlig1 in a269598 - Allow running
FairRun
withoutsink
by @karabowi in e0807d9
Bugfix
- Fix
Ex1Processor
by @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
Alignment
handler (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
FairRunOnline
was moved from
theBase
into theOnline
library. - Also the MBS/LMD related source classes were moved to
the newOnline
library. - 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_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
(1d0e5b0)- Just remove it from your
CMakeLists.txt
.
- Just remove it from your
- Dropped
USE_PATH_INFO
CMake 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 NOTdelete
the returned pointer!FairRunSim::SetSimulationConfig()
now takes a
unique_ptr
instead of a raw pointer with unknown
ownership. (43536bf)- Some headers were cleaned up and now
#include
fewer
other headers. You might have to add some#include
s
in your code. - Added a new build switch
BUILD_BASEMQ
for controlling whetherFairRoot::BaseMQ
and
dependent targets are built (FairRoot::FairMQ
andFairRoot::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
, andFairMCPoint
has been
moved to theFairRoot::BaseMQ
target to haveFairRoot::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. 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_METHOD
define 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::round
was 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::fCreator
points tothis
. (4446223)FairRootManager::FillEventHeader
is 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
PROOF
support (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::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
withFairRoot::
as the target name. -
Note that the library filesystem name is scheduled to be
changed in 19.2 to afairroot-trackbase
style naming.
For those using the targets this change will not be visible. -
Use
override
to 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=ON
to CMake. (829ccc4) -
Use
Fixtures
instead ofDepends
in test orchestration (5bcc5b8 7997124) -
Undeprecate
FairRootManager::GetOut{File,Tree}
It has been deprecated since 18.0.0. (e342df3)
v18.6.9
Feature
- Make
AddObject
virtual inFairRunOnline
by @karabowi, @MohammadAlTurany, @klenze in #1226
Bugfix
- Fix
-DBUILD_MBS=OFF
by @ChristianTackeGSI in 50ec03f, a17aeef
Full Changelog: v18.6.8...v18.6.9
v18.4.9
Bugfix
- Fix
-DBUILD_MBS=OFF
by @ChristianTackeGSI in b433086, 9f38a9f
Full Changelog: v18.4.8...v18.4.9