o RooAbsArg

    - Allow clone() to take null-ptr as argument (implies same object name)
      Save on CPU performance in string manipulation when cloning object trees.

    - Make setExpensiveObjectCache() virtual so that it can be overloaded in RooRealVar
      [ fixes JIRA-5502 ]

    - Make copy ctor accept null-ptr as name argument

    - In redirectServers() change algorithm to prevent proxy self-reference to not longer
      use temporary sets - this saves enormously in the complexity of tree cloning operations
      as redirectServers() is N^2 operation in tree cloning
  o RooAbsCollection

    - In RooAbsCollection::remove() by name, use comparison of
      unique TNamed* pointers instead of string comparison
      to match names.
  o RooAbsOptTestStatistic

    - Trim verbosity of reporting on cached or cache-and-tracked nodes: if there are
      more than 20, just report the total number

    - Remove some obsolete code that was already commented out
  o RooAbsPdf

    - Cosmetics
  o RooAbsTestStatistic

    - Add code that identifies binned probability models of the form created by HistFactory
      (a RooRealSum of RooHistFuncs, optionally multiplied with one or more subsidiary models)
      and allow optionally calculate these as a fully binned likelihood calculation.
      To trigger this calculation each identified model must additional carry a Boolean
      attribute "BinnedLikelihood". This code is introduced as a transition to proper
      modeling of binned likelihoods and probabilities in RooFit 4.0

    - Add flag to create() virtual copy ctor to indicate binned likelihood calculation mode
  o RooArgProxy

    - Implement protection against cyclical reference to object owner here
      [ moved from RooAbsArg::redirectServers() ]
  o RooChi2Var, RooDataWeightedAverage, RooXYChi2Var

    - Follow interface change in create()
  o RooHashTable

    - Don't use nptr comparison in bucket lists as that causes unwanted recursion
  o RooHistFunc

    - Add workspaceStreamerHook() and modify Streamer() to forcibly load embbeded RooDataHist object
      as embedded dataset in the workspace. This makes the embedded histogram visible to the user
      and automatically take are of expensive object cache redirections of these objects
  o RooNLLVar

    - Add code that reintreprets pdfs marked as 'binned likelihood' as yield
      vectors (divided by bin-width) for a Poisson product model and evaluates the log-L in the corresponding
      approach. In this approach no explicit normalization of the 'binned pdf'
      needs to be calculated, saving time and logistics.
  o RooStats::HistFactory::FlexibleInterpVar

    - Performance optimization: replace chained if() with a switch,
      replace .at() with [] to avoid repeated bounds-checking

    - Remove largs swaths of commented out obsolete code
  o RooStats::HistFactory::PiecewiseInterpolation

    - Performance optimization: replace chained if() with a switch,
      replace .at() with [] to avoid repeated bounds-checking

    - Remove largs swaths of commented out obsolete code

    - Performance tuning of icode=4 algorithm: avoid unnecessary
      multiplications by contracting these in precalculated constants,
      calculate higher powers of x in terms of previously calculated
      powers, improve internal if() chain to converge faster
      Add comment to NOT touch this code --> this segment of code
      dominates HistFactory CPU performance in many use cases.
  o RooLinkedList

    - Add option to use name-ptr comparison for lookup-by-name instead
      of using TString::Compare() [ this is much faster ]. This option
      should only be used if all contained elements are of type RooAbsArg
  o RooRealSumPdf

    - Declare selfNormalized() if attribute BinnedLikelihood is set
      (this will prevent any attempt at normalization calculation,
      which are not needed when interpreted as yield vector
      for binned likelihoods)
  o RooRealVar

    - Overload setExpensiveObjectCache() so that a RRV will never have one
      (it is not needed and saves a ton of pointers that would otherwise
       need to be persisted in workspace)
  o RooVectorDataStore

    - In RealVector::addReal() use nptr comparison for name
      matching to make it faster
  o RooWorkspace

    - Add separate storage area for 'embedded data', i.e. RooDataHist and RooDataSet
      elements attached to RooAbsArgs (such a RooHistFunc/Pdf) these are then explicitly
      accessible through the embeddedData() method and visible with Print()

    - When importing data objects, explicitly iterate over buffer objects and
      associate their expensive object cache with that of the workspace
  o RooHistPdf

    - Modify importWorkspaceHook() such that associated data objects are now
      stored in the 'embedded data' store rather than in the main store
  o RooListProxy, RooSetProxy

    - Prevent self-reference to owner here (moved from RooAbsArg::redirectServers())
Merge branch 'v5-34-00-patches' of https://root.cern.ch/git/root into v5-34-00-patches