Changeset 9851 for trunk/Mars/mhbase


Ignore:
Timestamp:
08/12/10 09:43:02 (14 years ago)
Author:
tbretz
Message:
Changed MH::SetBinning and similar functions to take references instead of pointers as arguments. For convenience wrappers for the old style functions are provided.
Location:
trunk/Mars/mhbase
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/mhbase/MBinning.cc

    r9369 r9851  
    537537    }
    538538
    539     MH::SetBinning(&h, this);
     539    MH::SetBinning(h, *this);
    540540}
    541541
  • trunk/Mars/mhbase/MH.cc

    r9414 r9851  
    2020!   Author(s): Thomas Bretz  07/2001 <mailto:tbretz@astro.uni-wuerzburg.de>
    2121!
    22 !   Copyright: MAGIC Software Development, 2000-2008
     22!   Copyright: MAGIC Software Development, 2000-2010
    2323!
    2424!
     
    256256// labels.
    257257//
    258 void MH::SetBinning(TH1 *h, const MBinning *binsx)
     258void MH::SetBinning(TH1 &h, const MBinning &binsx)
    259259{
    260260    //
    261261    // Another strange behaviour: TAxis::Set deletes the axis title!
    262262    //
    263     TAxis &x = *h->GetXaxis();
     263    TAxis &x = *h.GetXaxis();
    264264
    265265#if ROOT_VERSION_CODE < ROOT_VERSION(3,03,03)
     
    278278    // TH1D::fNcells must be set correctly.
    279279    //
    280     h->SetBins(binsx->GetNumBins(), 0, 1);
     280    h.SetBins(binsx.GetNumBins(), 0, 1);
    281281
    282282    //
     
    284284    // in one of the two given histograms
    285285    //
    286     x.Set(binsx->GetNumBins(), binsx->GetEdges());
     286    x.Set(binsx.GetNumBins(), binsx.GetEdges());
    287287
    288288    // All this is reset by TAxis::Set
     
    292292#else
    293293    if (!x.GetLabels())
    294         h->SetBins(binsx->GetNumBins(), binsx->GetEdges());
     294        h.SetBins(binsx.GetNumBins(), binsx.GetEdges());
    295295#endif
    296296
     
    307307// the binning is set according to the labels.
    308308//
    309 void MH::SetBinning(TH2 *h, const MBinning *binsx, const MBinning *binsy)
    310 {
    311     TAxis &x = *h->GetXaxis();
    312     TAxis &y = *h->GetYaxis();
    313 
    314     const MBinning bx(GetBinningForLabels(x, binsx));
    315     const MBinning by(GetBinningForLabels(y, binsy));
     309void MH::SetBinning(TH2 &h, const MBinning &binsx, const MBinning &binsy)
     310{
     311    TAxis &x = *h.GetXaxis();
     312    TAxis &y = *h.GetYaxis();
     313
     314    const MBinning bx(GetBinningForLabels(x, &binsx));
     315    const MBinning by(GetBinningForLabels(y, &binsy));
    316316
    317317    //
     
    337337    // TH1D::fNcells must be set correctly.
    338338    //
    339     h->SetBins(bx.GetNumBins(), 0, 1,
    340                by.GetNumBins(), 0, 1);
     339    h.SetBins(bx.GetNumBins(), 0, 1,
     340              by.GetNumBins(), 0, 1);
    341341
    342342    //
     
    355355    y.SetTimeFormat(tfy);
    356356#else
    357     if (h->InheritsFrom(TProfile2D::Class()))
    358     {
    359         h->SetBins(bx.GetNumBins(), 0, 1,
    360                    by.GetNumBins(), 0, 1);
    361 
    362         h->SetBinsLength();
     357    if (h.InheritsFrom(TProfile2D::Class()))
     358    {
     359        h.SetBins(bx.GetNumBins(), 0, 1,
     360                  by.GetNumBins(), 0, 1);
     361
     362        h.SetBinsLength();
    363363
    364364        x.Set(bx.GetNumBins(), bx.GetEdges());
     
    366366    }
    367367    else
    368         h->SetBins(bx.GetNumBins(), bx.GetEdges(),
    369                    by.GetNumBins(), by.GetEdges());
     368        h.SetBins(bx.GetNumBins(), bx.GetEdges(),
     369                  by.GetNumBins(), by.GetEdges());
    370370#endif
    371371
     
    385385// the binning is set according to the labels.
    386386//
    387 void MH::SetBinning(TH3 *h, const MBinning *binsx, const MBinning *binsy, const MBinning *binsz)
     387void MH::SetBinning(TH3 &h, const MBinning &binsx, const MBinning &binsy, const MBinning &binsz)
    388388{
    389389    //
    390390    // Another strange behaviour: TAxis::Set deletes the axis title!
    391391    //
    392     TAxis &x = *h->GetXaxis();
    393     TAxis &y = *h->GetYaxis();
    394     TAxis &z = *h->GetZaxis();
    395 
    396     const MBinning bx(GetBinningForLabels(x, binsx));
    397     const MBinning by(GetBinningForLabels(y, binsy));
    398     const MBinning bz(GetBinningForLabels(z, binsz));
     392    TAxis &x = *h.GetXaxis();
     393    TAxis &y = *h.GetYaxis();
     394    TAxis &z = *h.GetZaxis();
     395
     396    const MBinning bx(GetBinningForLabels(x, &binsx));
     397    const MBinning by(GetBinningForLabels(y, &binsy));
     398    const MBinning bz(GetBinningForLabels(z, &binsz));
    399399
    400400#if ROOT_VERSION_CODE < ROOT_VERSION(3,03,03)
     
    422422    // TH1D::fNcells must be set correctly.
    423423    //
    424     h->SetBins(bx.GetNumBins(), 0, 1,
    425                by.GetNumBins(), 0, 1,
    426                bz.GetNumBins(), 0, 1);
     424    h.SetBins(bx.GetNumBins(), 0, 1,
     425              by.GetNumBins(), 0, 1,
     426              bz.GetNumBins(), 0, 1);
    427427
    428428    //
     
    462462// Applies given binning (the n+1 edges)  to the axis of a 1D-histogram
    463463//
    464 void MH::SetBinning(TH1 *h, const TArrayD &binsx)
     464void MH::SetBinning(TH1 &h, const TArrayD &binsx)
    465465{
    466466    MBinning bx;
    467467    bx.SetEdges(binsx);
    468     SetBinning(h, &bx);
     468    SetBinning(h, bx);
    469469}
    470470
     
    474474// 2D-histogram
    475475//
    476 void MH::SetBinning(TH2 *h, const TArrayD &binsx, const TArrayD &binsy)
     476void MH::SetBinning(TH2 &h, const TArrayD &binsx, const TArrayD &binsy)
    477477{
    478478    MBinning bx;
     
    480480    bx.SetEdges(binsx);
    481481    by.SetEdges(binsy);
    482     SetBinning(h, &bx, &by);
     482    SetBinning(h, bx, by);
    483483}
    484484
     
    488488// 3D-histogram
    489489//
    490 void MH::SetBinning(TH3 *h, const TArrayD &binsx, const TArrayD &binsy, const TArrayD &binsz)
     490void MH::SetBinning(TH3 &h, const TArrayD &binsx, const TArrayD &binsy, const TArrayD &binsz)
    491491{
    492492    MBinning bx;
     
    496496    by.SetEdges(binsy);
    497497    bz.SetEdges(binsz);
    498     SetBinning(h, &bx, &by, &bz);
     498    SetBinning(h, bx, by, bz);
    499499}
    500500
     
    504504// of a 1D-histogram
    505505//
    506 void MH::SetBinning(TH1 *h, const TAxis *binsx)
    507 {
    508     const Int_t nx = binsx->GetNbins();
     506void MH::SetBinning(TH1 &h, const TAxis &binsx)
     507{
     508    const Int_t nx = binsx.GetNbins();
    509509
    510510    TArrayD bx(nx+1);
    511     for (int i=0; i<nx; i++) bx[i] = binsx->GetBinLowEdge(i+1);
    512     bx[nx] = binsx->GetXmax();
     511    for (int i=0; i<nx; i++) bx[i] = binsx.GetBinLowEdge(i+1);
     512    bx[nx] = binsx.GetXmax();
    513513
    514514    SetBinning(h, bx);
     
    520520// two axis' of a 2D-histogram
    521521//
    522 void MH::SetBinning(TH2 *h, const TAxis *binsx, const TAxis *binsy)
    523 {
    524     const Int_t nx = binsx->GetNbins();
    525     const Int_t ny = binsy->GetNbins();
     522void MH::SetBinning(TH2 &h, const TAxis &binsx, const TAxis &binsy)
     523{
     524    const Int_t nx = binsx.GetNbins();
     525    const Int_t ny = binsy.GetNbins();
    526526
    527527    TArrayD bx(nx+1);
    528528    TArrayD by(ny+1);
    529     for (int i=0; i<nx; i++) bx[i] = binsx->GetBinLowEdge(i+1);
    530     for (int i=0; i<ny; i++) by[i] = binsy->GetBinLowEdge(i+1);
    531     bx[nx] = binsx->GetXmax();
    532     by[ny] = binsy->GetXmax();
     529    for (int i=0; i<nx; i++) bx[i] = binsx.GetBinLowEdge(i+1);
     530    for (int i=0; i<ny; i++) by[i] = binsy.GetBinLowEdge(i+1);
     531    bx[nx] = binsx.GetXmax();
     532    by[ny] = binsy.GetXmax();
    533533
    534534    SetBinning(h, bx, by);
     
    540540// three axis' of a 3D-histogram
    541541//
    542 void MH::SetBinning(TH3 *h, const TAxis *binsx, const TAxis *binsy, const TAxis *binsz)
    543 {
    544     const Int_t nx = binsx->GetNbins();
    545     const Int_t ny = binsy->GetNbins();
    546     const Int_t nz = binsz->GetNbins();
     542void MH::SetBinning(TH3 &h, const TAxis &binsx, const TAxis &binsy, const TAxis &binsz)
     543{
     544    const Int_t nx = binsx.GetNbins();
     545    const Int_t ny = binsy.GetNbins();
     546    const Int_t nz = binsz.GetNbins();
    547547
    548548    TArrayD bx(nx+1);
    549549    TArrayD by(ny+1);
    550550    TArrayD bz(nz+1);
    551     for (int i=0; i<nx; i++) bx[i] = binsx->GetBinLowEdge(i+1);
    552     for (int i=0; i<ny; i++) by[i] = binsy->GetBinLowEdge(i+1);
    553     for (int i=0; i<nz; i++) bz[i] = binsz->GetBinLowEdge(i+1);
    554     bx[nx] = binsx->GetXmax();
    555     by[ny] = binsy->GetXmax();
    556     bz[nz] = binsz->GetXmax();
     551    for (int i=0; i<nx; i++) bx[i] = binsx.GetBinLowEdge(i+1);
     552    for (int i=0; i<ny; i++) by[i] = binsy.GetBinLowEdge(i+1);
     553    for (int i=0; i<nz; i++) bz[i] = binsz.GetBinLowEdge(i+1);
     554    bx[nx] = binsx.GetXmax();
     555    by[ny] = binsy.GetXmax();
     556    bz[nz] = binsz.GetXmax();
    557557
    558558    SetBinning(h, bx, by, bz);
     
    564564// Both histograms must be of the same type: TH1, TH2 or TH3
    565565//
    566 void MH::SetBinning(TH1 *h, const TH1 *x)
    567 {
    568     if (h->InheritsFrom(TH3::Class()) && x->InheritsFrom(TH3::Class()))
    569     {
    570         SetBinning((TH3*)h, x->GetXaxis(), x->GetYaxis(), x->GetZaxis());
     566void MH::CopyBinning(const TH1 &x, TH1 &h)
     567{
     568    if (h.InheritsFrom(TH3::Class()) && x.InheritsFrom(TH3::Class()))
     569    {
     570        SetBinning(static_cast<TH3&>(h), *x.GetXaxis(), *x.GetYaxis(), *x.GetZaxis());
    571571        return;
    572572    }
    573     if (h->InheritsFrom(TH3::Class()) || x->InheritsFrom(TH3::Class()))
     573    if (h.InheritsFrom(TH3::Class()) || x.InheritsFrom(TH3::Class()))
    574574        return;
    575     if (h->InheritsFrom(TH2::Class()) && x->InheritsFrom(TH2::Class()))
    576     {
    577         SetBinning((TH2*)h, x->GetXaxis(), x->GetYaxis());
     575    if (h.InheritsFrom(TH2::Class()) && x.InheritsFrom(TH2::Class()))
     576    {
     577        SetBinning(static_cast<TH2&>(h), *x.GetXaxis(), *x.GetYaxis());
    578578        return;
    579579    }
    580     if (h->InheritsFrom(TH2::Class()) || x->InheritsFrom(TH2::Class()))
     580    if (h.InheritsFrom(TH2::Class()) || x.InheritsFrom(TH2::Class()))
    581581        return;
    582     if (h->InheritsFrom(TH1::Class()) && x->InheritsFrom(TH1::Class()))
    583     {
    584         SetBinning(h, x->GetXaxis());
     582    if (h.InheritsFrom(TH1::Class()) && x.InheritsFrom(TH1::Class()))
     583    {
     584        SetBinning(h, *x.GetXaxis());
    585585        return;
    586586    }
     
    652652// Scales the binning of one, two or three axis of a histogram by a float f
    653653//
    654 void MH::ScaleAxis(TH1 *h, Double_t fx, Double_t fy, Double_t fz)
    655 {
    656     if (h->InheritsFrom(TH3::Class()))
    657     {
    658         SetBinning((TH3*)h,
    659                    ScaleAxis(*h->GetXaxis(), fx),
    660                    ScaleAxis(*h->GetYaxis(), fy),
    661                    ScaleAxis(*h->GetZaxis(), fz));
     654void MH::ScaleAxis(TH1 &h, Double_t fx, Double_t fy, Double_t fz)
     655{
     656    if (h.InheritsFrom(TH3::Class()))
     657    {
     658        SetBinning(static_cast<TH3&>(h),
     659                   ScaleAxis(*h.GetXaxis(), fx),
     660                   ScaleAxis(*h.GetYaxis(), fy),
     661                   ScaleAxis(*h.GetZaxis(), fz));
    662662        return;
    663663    }
    664664
    665     if (h->InheritsFrom(TH2::Class()))
    666     {
    667         SetBinning((TH2*)h,
    668                    ScaleAxis(*h->GetXaxis(), fx),
    669                    ScaleAxis(*h->GetYaxis(), fy));
     665    if (h.InheritsFrom(TH2::Class()))
     666    {
     667        SetBinning(static_cast<TH2&>(h),
     668                   ScaleAxis(*h.GetXaxis(), fx),
     669                   ScaleAxis(*h.GetYaxis(), fy));
    670670        return;
    671671    }
    672672
    673     if (h->InheritsFrom(TH1::Class()))
    674         SetBinning(h, ScaleAxis(*h->GetXaxis(), fx));
     673    SetBinning(h, ScaleAxis(*h.GetXaxis(), fx));
    675674}
    676675
     
    683682// no binning is applied.
    684683//
    685 Bool_t MH::ApplyBinning(const MParList &plist, TString name, TH1 *h)
    686 {
    687     if (h->InheritsFrom(TH2::Class()) || h->InheritsFrom(TH3::Class()))
    688     {
    689         gLog << warn << "MH::ApplyBinning: '" << h->GetName() << "' is not a basic TH1 object... no binning applied." << endl;
     684Bool_t MH::ApplyBinning(const MParList &plist, const TString name, TH1 &h)
     685{
     686    if (h.InheritsFrom(TH2::Class()) || h.InheritsFrom(TH3::Class()))
     687    {
     688        gLog << warn << "MH::ApplyBinning: '" << h.GetName() << "' is not a basic TH1 object... no binning applied." << endl;
    690689        return kFALSE;
    691690    }
     
    704703    }
    705704
    706     SetBinning(h, bins);
     705    SetBinning(h, *bins);
    707706    return kTRUE;
    708707}
    709708
    710 Bool_t MH::ApplyBinning(const MParList &plist, TString x, TString y, TH2 *h)
     709Bool_t MH::ApplyBinning(const MParList &plist, const TString x, const TString y, TH2 &h)
    711710{
    712711    const MBinning *binsx = (MBinning*)plist.FindObject("Binning"+x);
     
    738737
    739738    MBinning binsxx, binsyy;
    740     binsxx.SetEdges(*h, 'x');
    741     binsyy.SetEdges(*h, 'y');
    742 
    743     SetBinning(h, binsx?binsx:&binsxx, binsy?binsy:&binsyy);
     739    binsxx.SetEdges(h, 'x');
     740    binsyy.SetEdges(h, 'y');
     741
     742    SetBinning(h, binsx?*binsx:binsxx, binsy?*binsy:binsyy);
    744743
    745744    return kTRUE;
    746745}
    747746
    748 Bool_t MH::ApplyBinning(const MParList &plist, TString x, TString y, TString z, TH3 *h)
     747Bool_t MH::ApplyBinning(const MParList &plist, const TString x, const TString y, const TString z, TH3 &h)
    749748{
    750749    const MBinning *binsx = (MBinning*)plist.FindObject("Binning"+x);
     
    786785
    787786    MBinning binsxx, binsyy, binszz;
    788     binsxx.SetEdges(*h, 'x');
    789     binsyy.SetEdges(*h, 'y');
    790     binszz.SetEdges(*h, 'z');
    791 
    792     SetBinning(h, binsx?binsx:&binsxx, binsy?binsy:&binsyy, binsz?binsz:&binszz);
     787    binsxx.SetEdges(h, 'x');
     788    binsyy.SetEdges(h, 'y');
     789    binszz.SetEdges(h, 'z');
     790
     791    SetBinning(h, binsx?*binsx:binsxx, binsy?*binsy:binsyy, binsz?*binsz:binszz);
    793792
    794793    return kTRUE;
     
    11891188//  Returns the new (real) number of bins
    11901189//
    1191 Int_t MH::StripZeros(TH1 *h, Int_t nbins)
    1192 {
    1193     TAxis &axe = *h->GetXaxis();
     1190Int_t MH::StripZeros(TH1 &h, Int_t nbins)
     1191{
     1192    TAxis &axe = *h.GetXaxis();
    11941193
    11951194    const Int_t min1   = axe.GetFirst();
     
    12051204    Int_t min2 = 0;
    12061205    for (int i=min1; i<=max1; i++)
    1207         if (h->GetBinContent(i) != 0)
     1206        if (h.GetBinContent(i) != 0)
    12081207        {
    12091208            min2 = i;
     
    12191218    Int_t max2 = 0;
    12201219    for (int i=max1; i>=min2; i--)
    1221         if (h->GetBinContent(i) != 0)
     1220        if (h.GetBinContent(i) != 0)
    12221221        {
    12231222            max2 = i;
     
    12291228    // But this workaround helps quite fine
    12301229    //
    1231     Axis_t min = h->GetBinLowEdge(min2);
    1232     Axis_t max = h->GetBinLowEdge(max2)+h->GetBinWidth(max2);
     1230    Axis_t min = h.GetBinLowEdge(min2);
     1231    Axis_t max = h.GetBinLowEdge(max2)+h.GetBinWidth(max2);
    12331232
    12341233    Int_t nbins2 = max2-min2;
     
    12381237    if (nbins > 0)
    12391238      {
    1240         const Int_t ngroup = (Int_t)(nbins2*h->GetNbinsX()/nbins/(max1-min1));
     1239        const Int_t ngroup = (Int_t)(nbins2*h.GetNbinsX()/nbins/(max1-min1));
    12411240        if (ngroup > 1)
    12421241          {
    1243             h->Rebin(ngroup);
     1242            h.Rebin(ngroup);
    12441243            nbins2 /= ngroup;
    12451244          }
  • trunk/Mars/mhbase/MH.h

    r9594 r9851  
    2121class MBinning;
    2222class MParList;
    23 
     23#include <TH2.h>
     24#include <TH3.h>
    2425class MH : public MParContainer
    2526{
     
    6465    static void RemoveFromPad(const char *name);
    6566
    66     // FIXME: * --> & !!!
     67    // Functions to applay new binnings to histograms
     68    static void SetBinning(TH1 &h, const MBinning &binsx);
     69    static void SetBinning(TH2 &h, const MBinning &binsx, const MBinning &binsy);
     70    static void SetBinning(TH3 &h, const MBinning &binsx, const MBinning &binsy, const MBinning &binsz);
    6771
    68     static void SetBinning(TH1 *h, const MBinning *binsx);
    69     static void SetBinning(TH2 *h, const MBinning *binsx, const MBinning *binsy);
    70     static void SetBinning(TH3 *h, const MBinning *binsx, const MBinning *binsy, const MBinning *binsz);
     72    static void SetBinning(TH1 &h, const TArrayD &binsx);
     73    static void SetBinning(TH2 &h, const TArrayD &binsx, const TArrayD &binsy);
     74    static void SetBinning(TH3 &h, const TArrayD &binsx, const TArrayD &binsy, const TArrayD &binsz);
    7175
    72     static void SetBinning(TH1 *h, const TArrayD &binsx);
    73     static void SetBinning(TH2 *h, const TArrayD &binsx, const TArrayD &binsy);
    74     static void SetBinning(TH3 *h, const TArrayD &binsx, const TArrayD &binsy, const TArrayD &binsz);
     76    static void SetBinning(TH1 &h, const TAxis &binsx);
     77    static void SetBinning(TH2 &h, const TAxis &binsx, const TAxis &binsy);
     78    static void SetBinning(TH3 &h, const TAxis &binsx, const TAxis &binsy, const TAxis &binsz);
    7579
    76     static void SetBinning(TH1 *h, const TAxis *binsx);
    77     static void SetBinning(TH2 *h, const TAxis *binsx, const TAxis *binsy);
    78     static void SetBinning(TH3 *h, const TAxis *binsx, const TAxis *binsy, const TAxis *binsz);
     80    static void CopyBinning(const TH1 &x, TH1 &h);
    7981
    80     static void SetBinning(TH1 *h, const TH1 *x);
     82    static Bool_t ApplyBinning(const MParList &plist, const TString x, TH1 &h);
     83    static Bool_t ApplyBinning(const MParList &plist, const TString x, TString y, TH2 &h);
     84    static Bool_t ApplyBinning(const MParList &plist, const TString x, TString y, TString z, TH3 &h);
    8185
     86    // Warpper functions not to break macros (new functions take references)
     87    static void SetBinning(TH1 *h, const MBinning *binsx) { SetBinning(*h, *binsx); }
     88    static void SetBinning(TH2 *h, const MBinning *binsx, const MBinning *binsy) { SetBinning(*h, *binsx, *binsy); }
     89    static void SetBinning(TH3 *h, const MBinning *binsx, const MBinning *binsy, const MBinning *binsz) { SetBinning(*h, *binsx, *binsy, *binsz); }
     90
     91    static void SetBinning(TH1 *h, const TArrayD &binsx) { SetBinning(*h, binsx); }
     92    static void SetBinning(TH2 *h, const TArrayD &binsx, const TArrayD &binsy) { SetBinning(*h, binsx, binsy); }
     93    static void SetBinning(TH3 *h, const TArrayD &binsx, const TArrayD &binsy, const TArrayD &binsz)  { SetBinning(*h, binsx, binsy, binsz); }
     94
     95    static void SetBinning(TH1 *h, const TAxis *binsx) { SetBinning(*h, *binsx); }
     96    static void SetBinning(TH2 *h, const TAxis *binsx, const TAxis *binsy) { SetBinning(*h, *binsx, *binsy); }
     97    static void SetBinning(TH3 *h, const TAxis *binsx, const TAxis *binsy, const TAxis *binsz) { SetBinning(*h, *binsx, *binsy, *binsz); }
     98
     99    static Bool_t ApplyBinning(const MParList &plist, TString x, TH1 *h) { return ApplyBinning(plist, x, *h); }
     100    static Bool_t ApplyBinning(const MParList &plist, TString x, TString y, TH2 *h) { return ApplyBinning(plist, x, y, *h); }
     101    static Bool_t ApplyBinning(const MParList &plist, TString x, TString y, TString z, TH3 *h) { return ApplyBinning(plist, x, y, z, *h); }
     102
     103    // Other helpers for histogram treatment
    82104    static void SetBinomialErrors(TH1 &hres, const TH1 &h1, const TH1 &h2, Double_t c1=1, Double_t c2=1);
    83105
    84106    static void RemoveFirstBin(TH1 &h);
    85107
    86     static Bool_t ApplyBinning(const MParList &plist, TString x, TH1 *h);
    87     static Bool_t ApplyBinning(const MParList &plist, TString x, TString y, TH2 *h);
    88     static Bool_t ApplyBinning(const MParList &plist, TString x, TString y, TString z, TH3 *h);
    89 
    90108    static void    ScaleArray(TArrayD &bins, Double_t f);
    91109    static TArrayD ScaleAxis(TAxis &axe, Double_t f);
    92     static void    ScaleAxis(TH1 *bins, Double_t fx=1, Double_t fy=1, Double_t fz=1);
     110    static void    ScaleAxis(TH1 &bins, Double_t fx=1, Double_t fy=1, Double_t fz=1);
    93111
    94112    static Double_t GetBinCenterLog(const TAxis &axe, Int_t nbin);
     
    109127    static void FindGoodLimits(Int_t nbins, Int_t &newbins, Double_t &xmin, Double_t &xmax, Bool_t isInteger);
    110128    static Double_t GetMinimumGT(const TH1 &h, Double_t gt=0);
    111     static Int_t StripZeros(TH1 *h, Int_t nbins);
     129    static Int_t StripZeros(TH1 &h, Int_t nbins);
    112130
    113131    static TH1I* ProjectArray(const TArrayF &array, Int_t nbins=30,
  • trunk/Mars/mhbase/MH3.cc

    r9829 r9851  
    682682    {
    683683    case 1:
    684         SetBinning(fHist, binsx);
     684        SetBinning(*fHist, *binsx);
    685685        return kTRUE;
    686686    case 2:
    687         SetBinning(static_cast<TH2*>(fHist), binsx, binsy);
     687        SetBinning(static_cast<TH2&>(*fHist), *binsx, *binsy);
    688688        return kTRUE;
    689689    case 3:
    690         SetBinning(static_cast<TH3*>(fHist), binsx, binsy, binsz);
     690        SetBinning(static_cast<TH3&>(*fHist), *binsx, *binsy, *binsz);
    691691        return kTRUE;
    692692    }
  • trunk/Mars/mhbase/MHMatrix.cc

    r9473 r9851  
    777777    hta.SetName("hta");
    778778    hta.SetTitle("Distribution after reduction");
    779     SetBinning(&hta, &hth);
     779    CopyBinning(hth, hta);
    780780
    781781    for (Int_t i=0; i<fM.GetNrows(); i++)
     
    888888    TH1F hth;
    889889    hth.SetNameTitle("th", "Distribution before reduction");
    890     SetBinning(&hth, &thsh);
     890    CopyBinning(thsh, hth);
    891891    hth.SetDirectory(NULL);
    892892    for (Int_t j=0; j<nrows; j++)
     
    896896    TH1F hthd;
    897897    hthd.SetNameTitle("thd", "Correction factors");
    898     SetBinning(&hthd, &thsh);
     898    CopyBinning(thsh, hthd);
    899899    hthd.SetDirectory(NULL);
    900900    hthd.Divide(&thsh, &hth, 1, 1);
Note: See TracChangeset for help on using the changeset viewer.