Skip to content
Snippets Groups Projects
  1. Apr 24, 2008
    • Rene Brun's avatar
      From Axel: · b22a1dd7
      Rene Brun authored
      there is a bug in GCC 4.3.0 that makes roottest/root/hist/operator/runsparse.C fail in the error calculation part. Funny enough it fails because TH3 messes up its errors (not THnSparse  :-) .
      
      The problem stems from TH1::GetBinError():
         if (fSumw2.fN) return TMath::Sqrt(fSumw2.fArray[bin]);
      does not get evaluated properly - it has _horribly_ wrong values, e.g.
        -5063: 0.42
        +5063: 0.648074
      ("-" is GCC 3.4.6, "+" is GCC 4.3.0)
      after scaling a bin with a single entry by 0.42. So this is a real issue. It's possibly connected to the new math compiler intrinsics + pushing their results onto the stack.
      
      Attached patch fixes this, by introducing a temporary.
      
            Double_t err2 = fSumw2.fArray[bin];
            return TMath::Sqrt(err2);
      
      The patch also fixes THnSparse::Scale() - it was also scaling the entries.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@23533 27541ba8-7e3a-0410-8455-c3a389f83636
      b22a1dd7
  2. Apr 23, 2008
  3. Apr 21, 2008
  4. Apr 17, 2008
  5. Apr 11, 2008
  6. Apr 10, 2008
    • Lorenzo Moneta's avatar
      from Axel: · 9206b39e
      Lorenzo Moneta authored
      Implement THnSparse::RebinnedAdd(hnsparse, c), which adds hnsparse*c to this, 
      ignoring different bin sizes. 
      Can be used to rebin a THnSparse: create a new THnSparse with the binning you want, 
      and add the THnSparse with the old binning to it using RebinnedAdd(old).
      Also fixes an issue with Rebin() accessing an out-of-bound bin.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@23127 27541ba8-7e3a-0410-8455-c3a389f83636
      9206b39e
  7. Apr 09, 2008
  8. Apr 05, 2008
    • Philippe Canal's avatar
      Use the DirectoryAutoAdd facility for the classes: · 70fc8753
      Philippe Canal authored
              TTree, TH1, TEventList, TEntryList, TGraph2D
      (and hence their derived classes).
      
      The instances of those classes are now added automatically 
      to the current directory only when Constructe'd with arguments or Clone'd
      and to the directory they are read from when their are stored
      directly in a TKey. [Note: the default constructor never adds
      the object to the current directory]
      
      The directory auto add can still be disabled for instance
      of TH1 and TGraph2D by setting TH1::AddDirectory.
      
      Additionally one can disable the directory auto add for
      a specific class by doing:
      
          TClass::GetClass("myclass")->SetDirectoryAutoAdd(0)
      
      However you might want to also be able to restore the
      behavior in which case you ought to do:
      
          TClass *cl = TClass::GetClass("myclass");
          ROOT::DirAutoAdd_t func = cl->GetDirectoryAutoAdd();
          cl->SetDirectoryAutoAdd(0);
      
      TROOT::ReadingObject is marked as deprecated.. It is still
      set (as it was) but is no longer used by the above mention
      classes.
      
      NOTE:  One side effect of this change, is that instnace 
      of TTree, TH1, TEventList, TEntryList, TGraph2D that are
      retrieved from a TMessage (i.e. from a socket) no longer
      auto register themselves to the current ROOT directory.
      
      Add a new optional parameter to TDirectory::Append: 'replace'
      If replace is true (the default is false), the Append will
      first remove from the directory any existing object and
      print the message:
      
         Replacing existing OldClass: thename (Potential memory leak).
      
      Add a new option parameter to TDirectory::CloneObject: 'autoadd'
      If autoadd is true (the default), CloneObject will call the
      object 'DirectoryAutoAdd' function (if any)
      
      In TDirectory::CloneObject add support for multiple inheritance
      from TObject where TObject is not the left most base class.
      
      Fix memory leak in TGraph2D::operator= (and add TGraph2D::Clear)
      
      Cleanup some documentation
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@22992 27541ba8-7e3a-0410-8455-c3a389f83636
      70fc8753
  9. Apr 04, 2008
    • Rene Brun's avatar
      Add more options to TH2::Smooth · 73573fc6
      Rene Brun authored
         // Smooth bin contents of this 2-d histogram using kernel algorithms
         // similar to the ones used in the raster graphics community.
         // Bin contents in the active range are replaced by their smooth values.
         // If Errors are defined via Sumw2, they are scaled.
         // 3 kernels are proposed k5a, k5b and k3a.
         // k5a and k5b act on 5x5 cells (i-2,i-1,i,i+1,i+2, and same for j)
         // k5b is a bit more stronger in smoothing
         // k3a acts only on 3x3 cells (i-1,i,i+1, and same for j).
         // By default the kernel "k5a" is used. You can select the kernels "k5b" or "k3a"
         // via the option argument.
         // If TAxis::SetRange has been called on the x or/and y axis, only the bins
         // in the specified range are smoothed.
         // In the current implementation if the first argument is not used (default value=1).
         //
         // implementation by David McKee (dmckee@bama.ua.edu). Extended by Rene Brun
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@22986 27541ba8-7e3a-0410-8455-c3a389f83636
      73573fc6
  10. Apr 03, 2008
  11. Mar 31, 2008
  12. Mar 28, 2008
  13. Mar 26, 2008
  14. Mar 25, 2008
  15. Mar 19, 2008
  16. Mar 17, 2008
  17. Mar 12, 2008
  18. Mar 10, 2008
  19. Mar 08, 2008
  20. Mar 07, 2008
  21. Mar 03, 2008
    • Rene Brun's avatar
      From Federico: · 01e63fa1
      Rene Brun authored
      Changes to support the gcc -weffc++ compiler option.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@22428 27541ba8-7e3a-0410-8455-c3a389f83636
      01e63fa1
    • Fons Rademakers's avatar
      From Andrew Savchenko: · f304eff5
      Fons Rademakers authored
      ROOT can not be compiled with gcc-4.3.
      Some ROOT source files doesn't contain required #include directives,
      for example, they use strlen(), but #include <string.h> is missed or
      malloc() is used and #include <stdlib.h> is missed. 
      
      Earlier versions of gcc allowed some headers to be included implicitly,
      but issued a warning (-Wimplicit-function-declaration). Newer one,
      gcc-4.3 denies such silly behaviour: all required headers must be explicitly
      included. 
      
      Attached patch fixes this. Also it fixes another issue, which disallows
      ROOT to compile under gcc-4.3: C functions don't belong to namespace std,
      so expressions like std::memcpy() are no longer valid and plain memcpy()
      should be used instead.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@22419 27541ba8-7e3a-0410-8455-c3a389f83636
      f304eff5
  22. Feb 29, 2008
  23. Feb 22, 2008
Loading