-
Notifications
You must be signed in to change notification settings - Fork 20
Make sure you built ROOT with external lzma/xz and zlib libraries enabled.
Install the development packages for zlib and liblzma and use -Dbuiltin_lzma=OFF -Dbuiltin_zlib=OFF
for cmake when building ROOT.
There is a limited list of locations that are searched for Pluto. See PLUTO_SEARCHPATH
variable in cmake/Modules/FindPluto.cmake
and place your Pluto directory there. Or set the environment variable PLUTOSYS
to point to the Pluto directory.
Yes. ROOT6 is supported as well as ROOT5. One thing you have to be careful with is which Pluto version you use. If you use ROOT6, you have to use a migrated Pluto6 version which can be found here: https://github.com/A2-Collaboration/pluto6
There's currently a bug in ROOT6 which affects storing own classes, even derived from ROOT classes, nested in a STL container in a tree, like std::vector<ant::TSimpleParticle>
. If you try to do something like this, you might get errors starting with Fatal in <TBranchElement::InitializeOffsets>: ...
by Ant. This bug is known and reported here: ROOT-9450. If you get those errors, try to avoid nesting your objects in a container and store them individually instead, at least as long as the bug is not fixed.
Another bug in ROOT6 affects reading derived classes from TH2Poly back in from a file, e.g. if you use the cbtaps_display classes like TH2CB or TH2TAPS while running calibrations. The bug is triggered for example when calling Ant-hadd on files including those detector display histograms where they need to be read in. This bug is reported as well: ROOT-9741. Note: It has been finally fixed starting with the release of 6.20/00. If you're affected by this, either apply the patch yourself or update to a fixed ROOT version.
Ant works singe-threaded by design. Writing multi-threaded programs that work correctly and reliably is orders of magnitude more complicated then the single-threaded approach. In most use-cases the work can be parallelized on the file level by running multiple instances of Ant, each processing one input file at a time and merging the output afterwards.
No. Use blaster or GNU parallel to run Ant on each input file and merge the output. See the tool AntSubmit
, linked into your build/bin
from the extra
folder.
Ant stores the detector and experiment configuration and running conditions as source code inside C++ classes, called Setups. See files below src/expconfig
.
Everytime you push something to the master branch of Ant, an automated build and test of the code is triggered. For more information see Tests. If you introduced something which is not supported by older compilers (current requirement is GCC 4.9.2 should be able to build the code) or which breaks the expected behaviour of Ant, the compiling of the code itself or the subsequently run tests might fail. If this happens, the green "build passing" badge in the top section of the Readme turns into a red "build failing" badge.
Unfortunately there's no proper way to detect if a run file was taken while the transition to or from daylight saving time (DST) took place. This needs to be done within the acqu::FileFormatBase::GetTimeStamp()
method in the unpacker/detail/UnpackerAcqu_detail.cc
file. If the transition MEST->MET or the other way round happened during your beamtime, you need to add the run number with the year and if the time of the file is DST or not to the vector manual_dsts
.