ROOT Version v5-34-00 Patch Release Notes

A new production version ROOT v5-34-05 has been released Feb 14, 2013.

The AFS version of v5-34-05 for many different platforms and compilers can be found at:

/afs/cern.ch/sw/lcg/app/releases/ROOT/5.34.05/

The complete source tree for all systems (54 MB) is available here:

   ftp://root.cern.ch/root/root_v5.34.05.source.tar.gz

Alternatively get the source from Subversion using:

   svn co http://root.cern.ch/svn/root/tags/v5-34-05 root

After obtaining the source read the file README/INSTALL (in short just do: cd root; ./configure; make).

To get the source of the head of the v5-34-00-patches branch do:

   svn co http://root.cern.ch/svn/root/branches/v5-34-00-patches root

Changes in head of v5-34-00-patches branch

  • TTree
    • Correct the behavior when attempting to create a branch with split level zero with an object that requires the use a TBranchObject (for example TVector3). See the ROOT Forum #15975

Changes in version v5-34-05 (Feb 14, 2013)
Binary Incompatible

  • Core
    • Updated the class checksum calculation to be more platform independent. Notably this changes the value of checksum for classes that inherit from STL collections.
  • I/O
    • Fix compilation errors with castor 2.1.13-6 (DLL_DECL is not defined in Castor anymore)
    • Remove a race condition in the asynchronous TFile prefetecher. This fixes the Savannah report
    • Added possibility to merge only a list of objects/folders from the input files, specified by name,
      or to skip them from merging. This is fully integrated with the new PartialMerge(flags) schema.

Usage:
The names of the objects to be merged or skipped have to be specified using the interface:

    TFileMerger::AddObjectNames(const char *names)
This method can be called several times to add object names. Several names can be added with one
call separated by single blancs (no blanc at the end). Directory names are accepted, applying the
merging selection to all content. Two new options are being supported for partial merging:

    TFileMerger::PartialMerge(flags | kOnlyListed)
This will merge only the objects in the files having the names in the specified list. If a folder is
specified, it whole content will be merged

     TFileMerger::PartialMerge(flags | kSkipListed)

This will skip merging for the specified objects. If a folder is specified, its whole content will be skipped

Important note: The kOnlyListed and kSkipListed flags have to be bitwise OR-ed
on top of the merging defaults: kAll | kIncremental (as in the example $ROOTSYS/tutorials/io/mergeSelective.C)

  • Graphics
    • Implement #backslash in TLatex.
    • Add the optional parameter "alpha" to TColor::SetPalette. The default value is 1. (opaque palette). Any value between 0. and 1 define the level of transparency. 0. being fully transparent and 1. fully opaque.
    • Implement transparency for GL in Pad (gStyle->SetCanvasPreferGL(1)).
    • Fix a problem with the option SAME.
  • Proof
    • Correctly set the PROOF internal protocol value to the level required by the new dataset staging request functionality.
    • Import patch #48355 with important fixes in TDataSetManagerAliEn.
    • Import patch #48439 with fixes/modifications in xpdtest, setxrd.sh and installXrootd.sh.
  • Eve
    • Added a few extra class members to TEveRecTrackT needed by ALICE.

Changes in version v5-34-04 (Jan 10, 2013)
Binary Incompatible

  • Core
    • Fixes two thread safety issues affecting accessing TClonesArray objects in more than one thread (see revision #47726).
    • Import patch #48132 fixing an issue in TUnixSystem::RedirectOutput; this resolves the Savannah report #96935.
  • I/O
    • Prevent a segmentation fault at the time a TFile is closed and/or deleted if it contains a TTree that is stored in a subdirectory.
    • Prevent infinite loop when encountering unzipping error. This resolves the Savannah report #99523.
    • Import patch #48115 in TFileMerger basically skipping, for non-mergeable objects, the check on recurrent names. This should fix the Savannah report #99015.
  • Proof
    • Import patch #46864 fixing a crash in TStatus::Add in the case of missing files. This was a regression introduced by branch patch #45751 (import of #45283).
    • Import patch #46992 addressing a possible crash after finalisation.
    • Import patch #47067 fixing possible (random) failure of test 22.
    • Import patch #47235 fixing a file permission issue in afdsmgrd.
    • Import patch #47238 fixing a few issues preventing proper cleaning of the 'data' directory when running stressProof in Proof-Lite.
    • Import patch #47251 fixing an issue with unexpected settings in TStatus::fBits.
    • Import patch #47270 adding notification of the estimated time left (and, at the end, of the processing time) also when running in batch mode.
    • Import patch #47367 fixing an issue with TDSet::Validate.
    • Import patch #47444 to not print all progress messages during the merging phase in non-tty mode (avoid filling up the logs with useless info).
    • Import patch #47451 to add flexibility in defining directories for PAR packages.
    • Import patches #47528 and #47573 to support specifying the check version option in TProof::EnablePackage.
    • Import patch #47664 fixing an undefined variable in TSelEventGen (proofbench PAR package).
    • Import patch #47729 fixing a backward incompatibility introduced by patch #45751.
    • Import patch #47832 to make sure that the fSlaves list contains always ALL workers, even those which did not initially startup; this way GetListOfSlaveInfos can be used to find out which workers had problems starting up.
    • Import patch #47833 to make sure that the XrdProofClient instance is always defined when calling MapClient. This was not done for example when using the weak authentication protocol 'host', or similar protocols not requiring a real authentication token.
    • Import patches #48060 and #48239 introducing an improved dataset management model where the PROOF (ROOT) dataset manager is a light frontend to the experiment file catalogs; TDataSetManagerFile is still used as local cache of the experiment information or to store the work-in-progress status of the dataset manager daemon. This model is expected to solve the scalability issues observed currently at AAFs. The patches include the new class TDataSetManagerAliEn with the first concrete implementation of experiment catalog interface and a new version of afdsmgrd able to cope with the new dataset model.
    • Import patch #48063 fixing fixing possible deadlock in session startup.
    • Import patch #48068 fixing some issues in TProofBench.
    • Import patches #48086 and #48099 fixing some building issues.
    • Import patch #48104 fixing fixes failure in TProofBench.
    • Import patch #48122 turning-off role checking for localhost connections (not required and limiting daemon test applications).
    • Import patches #48016 and #48127 with several fixes in xproofd.
    • Import patch #48130 adding the executable 'ptest' which can be used to test the status of the daemon.
    • Import patches #48130 and #48141 to support building ROOT using an untagged xrootd (e.g. the trunk).
    • Import patch #48166 reducing verbosity during merge of TProofOutputFile in no debug mode.
    • Import patches #48211 and #48226 to fix possible deadlocks associated with the handling of asynchronous timers.
  • Tree
    • Import patch #47057 in TTree::Merge to make sure that things are really written out to disk before attempting any reading; solves an issue in TFileMerger when the merged file is written to a xrootd backend.
    • TTree::ReadFile and TTree::ReadStream now skip empty lines and commented out line (starting with #) before looking for a description. (This fixes the most recent part of the Savannah report #28084).
    • In TTree::ReadFile and TTree::ReadStreama allow colon (:) as the separator for the list of branch and types even in the case of a comma separated file. This resolves the Savannah report #99528.
  • Graphics
    • Import the TMathText class.
    • In the following example the white spaces were ignored.
      	   TFileMerger::AddObjectNames(const char *names)
      	
    • Fit parameters with very long names destroyed the stats display.
    • Import new palettes from the trunk.
    • New drawing option "SC" for TPie to draw the labels with the slices' colours.
    • Modify the Clear function in order to be able to reuse a TGraph2D after a Clear is performed.
    • In TGraph2D::GetHistogram() the lower and higher axis limits are always different.
  • PyROOT
    • Reworked GIL release to be as close to the C++ call as possible
  • Hist
    • Fix a bug in fitting TGraphAsymErrors when including error in x (see Forum #15564)
    • Improve TAxis::SetRange with the possibility to include/exclude also underflow and overflow bins (see issue #97331)  
    • Fix a bug in re-using the stored fit function in the histogram for fitting a second time
  • Minuit
    • Fix a problem in TMinuitMinimizer when all parameters are fixed (see #99058)
  • RooFit
    • Fix a bug,introduced in 5.34.01, when generating the correct number of events when using the Extended() option (#98832)
    • Import in RooPoisson the implementation of the analytical integral for the mean
  • RooStats
    • Fix an issue in FactorizePdf (see Forum #15694)
    • Fix a memory leak in SPlot (#99400)
    • Add functions in RooStatsUtils to factorize the pdf and to remove constraint terms. Speed-up the SimpleLikelihoodRatio evaluation by avoiding to evaluate the constraints
    • Fix the AsymptoticCalculator to try to use same binning for Asimov data set as observed data
    • Add support for generating same toys for alternate hypothesis at each point to get more stable bands
  • HistFactory

Changes in version v5-34-03 (Oct 25, 2012)
Binary Incompatible

  • Build System
    • Fix in ACliC for builds with --enable-soversion on MacOS X.
  • IO
    • Fix for reloading TClass via Cintex (This fixes Savannah issue #97765.
  • TTree
    • In the case where the content of STL collection has one of its member removed, avoid mistakenly trying to read if SetAddress is called more than once on that branch.
    • In TTreeSQL prevent a spurrious duplicate column error (Fixes Savannah issues #98126.
  • RooFit
    • Fix a bug in level-2 optimization of likelihoods involving pdfs containing products of conditional pdfs 
    • Import weight variable of imported dataset if no weight variable is specified (Savannah #95641)

    • When importing TH1s in a RooDataHist omit 'average bin density' correction factor as that
      proves to be very uninuitive (Savannah #96153)

    • In RooStreamParser fix parsing issue for variables starting with an 'i' (Savannah #82458)

    • Allow to import RooPlots in workspace with crashing (Savannah #94239)

    • Fix crash in reading of RooVectorDataStore of variabes with weights stored (Savannah #94908)

    • RooProduct and RooAddition now accept multiple copies of the same input argument, e.g. a*a or a+a (Savannah #94925)

    • In fitTo() only invoke SUMW2 afterburner if there are >0 free parameters (Savannah #92332)

    • Fix documentation of RooFormulaVar (Savannah #93498)

    • In RooAbsData::splot() don't add extra weight variable when split()-ting binned datasets (Savannah #93867)

    • Fix dynamic updated of mapped binning of RooLinearVar (Savannah #82087)

  • RooStats

    • Fix a bug in re-defining the same set in ModelConfig::DefineSetInWS
    • Fix a memory leak in using the test statistics detailed output
    • Fix the computation of p-values in ProfileLikelihoodCalculator::GetHypoTest for multi-dimensional models (with more than one parameter of interest)
  • FFTW
    • Fix bug #97707 in TFFTComplexReal::SetPoint(ipoint, c)
  • MathCore
    • Fix a bug in the Fitter class in setting a different error scale for likelihood fits (see post #15368)
  • Graphics
    • Implementation of MacOS X back-end finished.
    • When GetX(YZ)axis were called on a TGraph2D, the frame limit and plotting options were changed.
    • Thick dashed lines were not correct in TASImage files
  • GL
    • Make sure to pass identity matrix to TGeoCompositeShape::PaintComposite() when transformation is not included in boolean operation.
    • Enable automatic scaling of surface normals when transformation matrix is a scaling transformation.
    • Add option preventing GL viewer to disregard very small objects. Call TGLLogicalShape::SetIgnoreSizeForCameraInterest(kTRUE);
    • Fix a bug in CSG operations that manifested with gcc-4.7 (only with optimization on).
    • Move enums from global namespace:
      • EOverlap moved to Rgl namespace;
      • EClipType moved into class TGLClip as EType;
      • EPosition and EManip type were not used and have been removed.
    • Fix a bug in arc-ball camera rotation mode (when camera center was moved from window center).
  • EVE
    • Fix an issue in Eve shutdown sequence.

Changes in version v5-34-02 (Sept 21, 2012)
Binary Incompatible

  • Build System
    • When checking if "-std=c++11" compiler option exists use the compiler that is selected via --with-cxx.
  • Thread
    • In Thread::Join, avoid a dead lock/race condition that sometimes prevented the TFilePrefetcher from properly finishing.
  • Meta
    • Making sure that when we lookup for an existing entry we look for an exact match (as oppose to doing a lookup of the unqualified name) to avoid unrelated nested typedef/names to over-ride global scope classes that are marked for autoloading (r42421).
  • I/O
    • Avoid spurious error message when reading an existing file with a class inheriting from std::string (r45117)
    • Corrected the calculation of the number of read calls in TRFIOFile (See the forum post on the subject. Fixed by revision 45140).
    • Add protection against corrupted ROOT File (wrong length stored in the file header) (Revision 45170).
    • Fix file->Get("Lumi/physics;2") to properly retrieve the 2nd cycle (revision 45243).
    • Implement TChain::RemoveFriend to avoid leaving the TChain in an unstable state (See the forum post on the subject.  Fixed by revision 46069).
  • Proof
    • Import patches #45846, #45847 and #45849 fixing a few consistency issues (honoring 'workers=N' when passed as option in PROOF-Lite, parallel dataset verification when PROOF is sequential).
    • Import patches #45876, #45823 and #45827 fixing, in stressProof, sandbox cleaning and adding some switches to better control log saving an path in case of failures. The patch also adds the correct switches in test/CMakeList.txt for cmake -based test running.
    • Import patch #45759 fixing possible double delete in TProofDraw.
    • Import patches #45283, #45289, #45318, #45348, #45367, #45570, #45610, #45614, #45615, #45632, #45634, #45282, #45696, #45697, #45718 and #45740 automatizing the usage of file-based technology to handle outputs (see Handling Outputs).
    • Import patch #45664 fixing an issue with afdsmgrd build in the case a '--prefix=' was passed.
    • Import patches #45283 (parts), #45318, #45607, #45610, #45613, #45614 (parts), #45630, #45632 (parts) and #45643 fixing several issues:
      - consolidation of username definition in the automatic LOCALDATASERVER setting (by xproofd);
      - fix for TProof::GetUser (Savannah issue #92533)
      - use of LOCALDATASERVER in ProofAux.C, fixing potential failures of stressProof
      - fix for potential segv in the destructors of TPacketizerUnit and TVirtualPacketizer
      - fix issue with merging elements in ProcFileElements which was causing spurious failures in stressProof, test #19
    • Import patches #45568 and #45597 fixing a few issues in PROOF-Lite.
    • Import patches #45092 and #45093 adding functions to retrieve environment information from the nodes, typically from the master (datadir or some env settings).
      Warning: This change in binary incompatible.
    • Import patch #45181 fixing a crash in xproofd when using security.
  • Graphics
    • The time axis behavior should now be correct along time zone and summer saving time. A fix has been done with the of Philippe Gras (CEA Saclay. IRFU/SEDI) and Julian Sitarek (IFAE). Time axis transported from a time zone to an other in a ROOT file are correct too. A new example test have been introduced to test the time axis (timeonaxis3.C)
  • GUI
    • Prevent the use of a global by TGLabel before it is initialized (revision #46073
  • EVE
    • Avoid crash in TEveTrack::TEveTrack(TEveMCTrack*) constructor when PDG code is unknown. fCharge is set to 0 in this case.
    • Add support for asymmetric calorimeters in TEveCalo classes (Christian Pulvermacher).
  • RooFit
    • Fix a bug in RooBernsteing for degree 1 polynomial (#97190)
  • RooStats
    • Fix a bug in using the correct one-sided test statistics in the AsymptoticCalculator (see corresponding discussion on RooStats mailing list)
    • Fix a bug in SimpleInterval
    • Improve LikelihoodIntervalPlot for drawing 2D contours
    • Fix the evaluation of the likelihood  for ConditionalObservables
    • Fix setting a second time the nuisance pdf in the ToyMCSampler. This bug affect the HybridCalculator when using different nuisance pdf's for the null and alternate models.
    • Fix generation of AsymptoticCalculator::GenerateAsimovData  for counting models containing several observables  
  • HistFactory
    • Import changes described in revision 45703
    • Import changes to have model built without a data tag selected 
  • Hist
    • Update projection methods to re-set binning on a previously existing histogram (#94101 and #95808)
  • Minuit
    • Apply some fixes in TMInuitMinimizer: fix resetting the configuration in a second Minos run and fix the number of contour points.

Changes in version v5-34-01 (July 13, 2012)
Binary Incompatible

  • Core
    • Avoid risk of executing the tear down routines twice at process termination when -q is used and there is no input file descriptor. (revision 44838).
    • Fix linking of qtcint.dll when explicitly linking is required (see the related forum post).
  • I/O
    • Fail gracefully instead of segfaulting on broken files in GetStreamerInfoList (Fixes Savannah #5439).
    • Avoid seg fault when deleting a reseted TMemFile (revision 44749).
    • Avoid seg in I/O operation if you change the prefetch settings after the cache is created (revision 44755).
    • Add an explicit 'Close' for the read cache so that we can insure that all the (concurrent) outstanding connection/use of the TFile are closed before closing the file.
  • TTree
    • Restore support for the TTreeCache use case where the lifetime of the TTreeCache is explicitly managed by the user and detach from the TFile/TTree via a call to: file.SetCacheRead(0);
    • Fixes issue in TChainIndex that made reading the first entry of the 2nd and subsequent files in the TChain not beeing properly reading when using the index. (Fixes Savannah #94910).
    • Avoid an unnecessary flushing of the TTreeCache after the first time it filled (revision 44750)
  • Proof
    • Import patch #44606 adding support for gcc4.7 in afdsmgrd (version 1.0.3).
    • Import patch #44701 with several important fixes in xproofd. Patch is server side only; only the upgrade of xproofd (or libXrdProofd) are required.
  • RooFit
    • Fix bug in binned generation of extended pdf (patch #44630 )
  • HistFactory
    • Fix a problem for pyroot and an issue in creating directory (patch #44579 ).
  • Hist
    • Fix bug in merging histograms and profile when first histogram to merge is empty (bug #95190 and #94295)
    • Enable TBrowser to access THnSparse with more than 16 axes (r44827).
  • THtml
    • Set ROOTSYS in makehtml by calling root instead of root.exe (bug #95635, r44726)
  • OpenGL
    • If creation of frame-buffer object for saving of a screenshot fails, fallback to using back-buffer. This can be disabled via the following rootrc setting:
        OpenGL.SavePictureFallbackToBB: off
      Latest SLC5, SLC6 intel/mesa drivers seem to often lie that they support FBOs and then fail when asked to provide it.
    • Provide switching between standard and arc-ball rotation in TGLViewer (keybinding 'a').
    • Allow setting of non-standard coordinate systems (arbitrary up and forward direction) via new function TGLViewer::ReinitializeCurrentCamera().
  • EVE
    • Add new type of track path-mark - TEvePathMatk::kLineSegment. This is to be used for silicon strip detectors rec-hits, especially for low pT tracks where searching for closest point of approach to a line segment is more robust that searching for intersection with a plane.
    • Add support for somewhat continuous energy loss along track propagation. This only makes sense if many path-marks are set for a given track, see TEveTrack::fDpDs.

Changes in v5-34-00 (June 5, 2012)

  • TTree
    • Repair the plotting of string histogram by TTree::Draw
  • Net
    • Fix in TWebFile reading using https (via TSSLSocket).
  • IO
    • Optimization in TFileMerger for the case where there is only one file to 'merge' (patch #44533).
  • Proof
    • Import patches #44411 and #44425 fixing a problem in handling local files in TDataSetManager::ScanFile;
    • Import version 1.0.2 of afdsmgrd (patches #44243, #44292 and #44332) with several important fixes for PEAC and AAFs and the integration in the cmake build
    • Import patch #44397 changing the default merging procedure used histograms to cover correctly all the cases.
    • Import patches for Coverity-related issues
  • THtml
    • Also check for modifications in headers (bug #94695, r44323).
  • Textinput
    • Always move to right after prompt before writing text (bug #91752, r44337).
    • Implement ^G: abort an incremental search and restore the original line (r44337).
  • CINT
    • genreflex: fix an issue with base classes defining operator new() (bug #94981, r44403).
  • Misc
    • Remove using namespace declarations (bug #94452, r44342-44352, r44368).