Changeset 1511


Ignore:
Timestamp:
09/02/02 15:58:52 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r1509 r1511  
    11                                                                  -*-*- END -*-*-
     2
     3 2002/09/02: Thomas Bretz
     4
     5   * mhist/MHMatrix.[h,cc]:
     6     - added GetIndexdOfSortedColumn
     7     - added SortMatrixByColumn
     8
     9   * mhist/HistIncl.h:
     10     - added TArrayI.h (for MHMatrix.h)
     11
     12
    213
    314 2002/08/19: Thomas Bretz
     
    2839     - added comments
    2940     - added another sanity check in SetBinning(TH1*,TH1*)
     41
    3042
    3143
  • trunk/MagicSoft/Mars/mhist/HistIncl.h

    r846 r1511  
    22
    33#include <TF1.h>
     4#include <TArrayI.h>
    45
    56#endif // __CINT__
  • trunk/MagicSoft/Mars/mhist/MHMatrix.cc

    r1500 r1511  
    4949
    5050#include <TList.h>
     51#include <TArrayF.h>
    5152#include <TArrayD.h>
    5253#include <TArrayI.h>
     
    482483            out << "   " << GetUniqueName() << ".AddColumn(\"" << (*fData)[i].GetRule() << "\");" << endl;
    483484}
     485
     486const TArrayI MHMatrix::GetIndexOfSortedColumn(Int_t ncol, Bool_t desc) const
     487{
     488    TMatrixColumn col(fM, ncol);
     489
     490    const Int_t n = fM.GetNrows();
     491
     492    TArrayF array(n);
     493
     494    for (int i=0; i<n; i++)
     495        array[i] = col(i);
     496
     497    TArrayI idx(n);
     498    TMath::Sort(n, array.GetArray(), idx.GetArray(), desc);
     499
     500    return idx;
     501}
     502
     503void MHMatrix::SortMatrixByColumn(Int_t ncol, Bool_t desc)
     504{
     505    TArrayI idx = GetIndexOfSortedColumn(ncol, desc);
     506
     507    const Int_t n = fM.GetNrows();
     508
     509    TMatrix m(n, fM.GetNcols());
     510    for (int i=0; i<n; i++)
     511    {
     512        TVector vold(n);
     513        vold = TMatrixRow(fM, idx[i]);
     514
     515        TMatrixRow rownew(m, i);
     516        rownew = vold;
     517    }
     518
     519    fM = m;
     520}
  • trunk/MagicSoft/Mars/mhist/MHMatrix.h

    r1489 r1511  
    99#endif
    1010
     11class TArrayI;
    1112class MDataArray;
    1213
     
    5960    void Reassign();
    6061
     62    const TArrayI GetIndexOfSortedColumn(Int_t ncol=0, Bool_t desc=kTRUE) const;
     63    void SortMatrixByColumn(Int_t ncol=0, Bool_t desc=kTRUE);
     64
    6165    ClassDef(MHMatrix, 1) // Multidimensional Matrix to store events
    6266};
Note: See TracChangeset for help on using the changeset viewer.