Skip to content
Snippets Groups Projects
Commit e4ef7bda authored by Lorenzo Moneta's avatar Lorenzo Moneta
Browse files

new version of TUnfold from S. Schmitt.

Changes in detail: 


Changes to the TUnfold class from v6 to v11
===========================================

tutorials/math/testUnfold1.C
tutorials/math/testUnfold2.C
----------------------------
 * print-out of both chi**2 contributions and the number of degrees of freedom
 

hist/hist/inc/TUnfold.h
-----------------------
 new or changed functionality:
   * new members
       fNDf
       GetNdf()
       GetNpar()
   * return codes [error count] rather than excessive printout for
       RegularizeSize()
       RegularizeDerivative()
       RegularizeCurvature()
       RegularizeBins()
       RegularizeBins2D()
   * additional argument and return code
       SetInput()

 matrix operation:
   * remove method CreateSparseMatrix and use TMatrixDSparse::SetMatrixArray()
      instead
   * add methods for matrix operations, replacing corresponding calls to
     TMatrixD or TMatrixDSparse methods for any of the following reasons
      (a) better performance (multiple matrix operations required when using
                              TMatrixDSparse or TMatrixD)
         MultiplyMSparseTranspMSparse()
         MultiplyMSparseM()
         MultiplyMSparseMSparse()
         MultiplyVecMSparseVec()
      (b) work-around for a bug in TMatrixDSparse (bug #45415)
         MultiplyMSparseTranspMSparse()
         MultiplyMSparseM()
         MultiplyMSparseMSparse()
         MultiplyVecMSparseVec()
      (c) improved performance for matrices with a certain structure
         InvertMSparse()

hist/hist/inc/TUnfold.cxx
-------------------------
changes to existing methods

 Double_t TUnfold::DoUnfold(void)
  * use internal matrix manipulation methods
  * try to avoid TMatrixDSparse::operator+=(TMatrixDSparse const &)
     because it creates a memory leak (bug #45502)

 void TUnfold::CalculateChi2Rho(void)
  * use internal matrix manipulation methods

 TUnfold::TUnfold(TH2 const *hist_A, EHistMap histmap, ERegMode regmode)
  * reduce the amount of printout for rejected bins
  * use TMatrixDSparse::SetMatrixArray()
       instead of TUnfold::CreateSparseMatrix()

 Int_t TUnfold::RegularizeSize()
 Int_t TUnfold::RegularizeDerivative()
 Int_t TUnfold::RegularizeCurvature()
  * return the number of errors rather than doing a lot of printout

 Int_t TUnfold::RegularizeBins()
 Int_t TUnfold::RegularizeBins2D()
  * return the number of errors    

 Int_t TUnfold::SetInput()
  * third argument for user specific treatment of bins with zero error.
     By default, bins with zero error are now skipped
     (old version: the error was set to 1)
  * return value: the number of bins which have zero error

 Int_t TUnfold::ScanLcurve()
  * the outermost points of the L-curve may have ill-defined curvature,
     so they are now excluded from the scan

 TH1D *TUnfold::GetOutput()
 TH2D *TUnfold::GetRhoIJ()
 TH2D *TUnfold::GetEmatrix()
  * remove some dead code

 TH1D *TUnfold::GetInput()
  * use internal matrix manipulation methods

 TUnfold::GetLcurveX()
  * bug fix in the definition of chi**2

 new methods
  TUnfold::MultiplyVecMSparseVec()
  TUnfold::MultiplyMSparseMSparse()
  TUnfold::MultiplyMSparseTranspMSparse()
  TUnfold::MultiplyMSparseM()
  TUnfold::InvertMSparse()
  TUnfold::GetNdf(void)
  TUnfold::GetNpar(void)

 removed methods
  TUnfold::CreateSparseMatrix()


git-svn-id: http://root.cern.ch/svn/root/trunk@27114 27541ba8-7e3a-0410-8455-c3a389f83636
parent 8b66668c
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment