Changeset 9851 for trunk/Mars


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
Files:
35 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/Changelog

    r9850 r9851  
    2828     - added new data members to Clear function
    2929
     30   * mimage/MHHillas.cc, mimage/MHHillasExt.cc, mimage/MHNewImagePar.cc,
     31     mimage/MHVsSize.cc, mimage/MHHillasSrc.cc, mimage/MHImagePar.cc,
     32     mhcalib/MHGausEvents.cc, mhflux/MHThetaSq.cc,  mhflux/MHAlpha.cc,
     33     mhflux/MHFalseSource.cc, mhflux/MHEffectiveOnTime.cc,
     34     mhflux/MHCollectionArea.cc, mhflux/MHThetaSqN.cc, mhflux/MHDisp.cc,
     35     mhflux/MHThreshold.cc, mhflux/MHEnergyEst.cc, mjtrain/MJTrainDisp.cc,
     36     mtools/MHSimulatedAnnealing.cc, mmuon/MHSingleMuon.cc,
     37     mmuon/MHMuonPar.cc, mpointing/MHSrcPosCam.cc,
     38     mpedestal/MHPedestalCor.cc, mhist/MHCamEventRot.cc,
     39     mhist/MHStarMap.cc, mjobs/MJSpectrum.cc, mbadpixels/MHBadPixels.cc,
     40     mfbase/MFEventSelector2.cc, mhbase/MBinning.cc, mhbase/MH.[h,cc],
     41     mhbase/MH3.cc, mhbase/MHMatrix.cc, msim/MHPhotonEvent.cc:
     42     - changes MH::SetBinning and similar functions to take references
     43       instead of pointers
     44     - for the time being wrappers are kept not to break macros
     45
    3046
    3147
  • trunk/Mars/NEWS

    r9846 r9851  
    2121   * Added a new class MJTrainImpact to estimate the impact parameter by use
    2222     of a random forest
     23
     24   * Changed MH::SetBinning and similar functions to take references instead
     25     of pointers. Except for SetBinning(TH1&, const TH1&), which was renamed
     26     to CopyBinning(const TH1&, TH1&) wrapper functions are provided so that
     27     old macros should still work.
     28     WARNING: These wrappers might be removed in future releases.
    2329
    2430 ;ceres:
  • trunk/Mars/mbadpixels/MHBadPixels.cc

    r9153 r9851  
    8080    fBinsPix->SetEdges(578, -0.5, 577.5);    // pixel id
    8181
    82     SetBinning(fBadId, fBinsTheta, fBinsPix);
    83     SetBinning(fBadN,  fBinsTheta, fBinsPix);
     82    SetBinning(*fBadId, *fBinsTheta, *fBinsPix);
     83    SetBinning(*fBadN,  *fBinsTheta, *fBinsPix);
    8484
    8585    //-----------------------------------------
     
    151151    const UInt_t npix1 = fPedPhot->GetSize()+1;
    152152    //*fLog << "MHBadPixels::SetupFill(); npix1 = " << npix1 << endl;
    153     MBinning binspix("BinningPixel");
    154     binspix.SetEdges(npix1, -0.5, npix1-0.5);
     153    const MBinning binspix(npix1, -0.5, npix1-0.5);
    155154
    156155    // Set binnings in histograms
    157     SetBinning(fBadId, binstheta, &binspix);
    158     SetBinning(fBadN,  binstheta, &binspix);
     156    SetBinning(*fBadId, *binstheta, binspix);
     157    SetBinning(*fBadN,  *binstheta, binspix);
    159158
    160159    *fLog << "MHBadPixels::SetupFill(); binnings were set" << endl;
  • trunk/Mars/mfbase/MFEventSelector2.cc

    r8106 r9851  
    196196
    197197    // duplicate the fHistNom histogram
    198     hist = (MH3*)fHistNom->New();
     198    hist = static_cast<MH3*>(fHistNom->New());
    199199
    200200    // copy binning from one histogram to the other one
    201     MH::SetBinning(&hist->GetHist(), &fHistNom->GetHist());
     201    MH::SetBinning(hist->GetHist(), fHistNom->GetHist());
    202202
    203203    return hist->GetHist();
  • 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);
  • trunk/Mars/mhcalib/MHGausEvents.cc

    r9308 r9851  
    674674  // the _less_ bins, you have!)
    675675  //
    676   StripZeros(&fHGausHist,
     676  StripZeros(fHGausHist,
    677677             fBinsAfterStripping ? fBinsAfterStripping
    678678             : (fNbins > 1000 ? fNbins/10 : 0));
  • trunk/Mars/mhflux/MHAlpha.cc

    r9576 r9851  
    142142    binsa.Apply(fHistTime);
    143143
    144     MH::SetBinning(&fHist, &binst, &binse, &binsa);
     144    MH::SetBinning(fHist, binst, binse, binsa);
    145145}
    146146
     
    334334    binst.Apply(fHTheta);
    335335    binsa.Apply(fHistTime);
    336     MH::SetBinning(&fHist, &binst, &binse, &binsa);
     336    MH::SetBinning(fHist, binst, binse, binsa);
    337337
    338338    MAlphaFitter *fit = (MAlphaFitter*)pl->FindObject("MAlphaFitter");
     
    353353    // If this is the first call we have to initialize the time-histogram
    354354    //
    355     MBinning bins;
    356     bins.SetEdges(1, t.GetAxisTime()-60, t.GetAxisTime());
     355    const MBinning bins(1, t.GetAxisTime()-60, t.GetAxisTime());
    357356    bins.Apply(fHTime);
    358357
  • trunk/Mars/mhflux/MHCollectionArea.cc

    r9422 r9851  
    109109    binse.Apply(fHEnergy);
    110110
    111     MH::SetBinning(&fHistSel, &binst, &binse);
    112     MH::SetBinning(&fHistAll, &binst, &binse);
     111    MH::SetBinning(fHistSel, binst, binse);
     112    MH::SetBinning(fHistAll, binst, binse);
    113113
    114114    // For some unknown reasons this must be called after
     
    202202    binse.Apply(fHEnergy);
    203203
    204     MH::SetBinning(&fHistSel, &binst, &binse);
    205     MH::SetBinning(&fHistAll, &binst, &binse);
     204    MH::SetBinning(fHistSel, binst, binse);
     205    MH::SetBinning(fHistAll, binst, binse);
    206206
    207207    fMcAreaRadius   = -1;
  • trunk/Mars/mhflux/MHDisp.cc

    r9301 r9851  
    132132    binsx.SetEdges(fHist, 'x');
    133133    binsy.SetEdges(fHist, 'y');
    134     MH::SetBinning(&fHistBg, &binsx, &binsy);
     134    MH::SetBinning(fHistBg, binsx, binsy);
    135135
    136136    if (!fHistOff)
    137137    {
    138         MH::SetBinning(&fHistBg1, &binsx, &binsy);
    139         MH::SetBinning(&fHistBg2, &binsx, &binsy);
     138        MH::SetBinning(fHistBg1, binsx, binsy);
     139        MH::SetBinning(fHistBg2, binsx, binsy);
    140140    }
    141141
  • trunk/Mars/mhflux/MHEffectiveOnTime.cc

    r9343 r9851  
    435435    btime.SetEdges(50, 0, 0.1);
    436436
    437     MH::SetBinning(&fH2DeltaT, &btime, &btheta);
     437    MH::SetBinning(fH2DeltaT, btime, btheta);
    438438
    439439    btime.Apply(fH1DeltaT);
     
    480480   }
    481481   if (binstheta && binsdtime)
    482        SetBinning(&fH2DeltaT, binsdtime, binstheta);
     482       SetBinning(fH2DeltaT, *binsdtime, *binstheta);
    483483
    484484   fTotalTime = 0;
  • trunk/Mars/mhflux/MHEnergyEst.cc

    r9565 r9851  
    113113    binsi.SetEdges(1, 0, 1000);
    114114
    115     SetBinning(&fHEnergy,     &binse, &binse, &binst);
    116     SetBinning(&fHImpact,     &binsi, &binsr);
    117 
    118     SetBinning(&fHResolutionEst, &binse, &binsr);
    119     SetBinning(&fHResolutionMC,  &binse, &binsr);
     115    SetBinning(fHEnergy, binse, binse, binst);
     116    SetBinning(fHImpact, binsi, binsr);
     117
     118    SetBinning(fHResolutionEst, binse, binsr);
     119    SetBinning(fHResolutionMC,  binse, binsr);
    120120
    121121    // For some unknown reasons this must be called after
     
    165165    binsr.SetEdges(*plist, "BinningEnergyRes");
    166166
    167     SetBinning(&fHEnergy,     &binse, &binse, &binst);
    168     SetBinning(&fHImpact,     &binsi, &binsr);
    169 
    170     SetBinning(&fHResolutionEst, &binse, &binsr);
    171     SetBinning(&fHResolutionMC,  &binse, &binsr);
     167    SetBinning(fHEnergy, binse, binse, binst);
     168    SetBinning(fHImpact, binsi, binsr);
     169
     170    SetBinning(fHResolutionEst, binse, binsr);
     171    SetBinning(fHResolutionMC,  binse, binsr);
    172172
    173173    fChisq = 0;
  • trunk/Mars/mhflux/MHFalseSource.cc

    r9367 r9851  
    258258
    259259    if (fHistOff)
    260         MH::SetBinning(&fHist, fHistOff);
     260        MH::SetBinning(fHist, *fHistOff);
    261261    else
    262262    {
     
    269269            const Float_t r = (geom ? geom->GetMaxRadius()/3 : 200)*fMm2Deg;
    270270
    271             MBinning b;
    272             b.SetEdges(20, -r, r);
    273             SetBinning(&fHist, &b, &b, &binsa);
     271            const MBinning b(20, -r, r);
     272            SetBinning(fHist, b, b, binsa);
    274273        }
    275274        else
    276             SetBinning(&fHist, bins, bins, &binsa);
     275            SetBinning(fHist, *bins, *bins, binsa);
    277276    }
    278277
     
    502501
    503502    TH2D h;
    504     MH::SetBinning(&h, h2);
     503    MH::SetBinning(h, *h2);
    505504
    506505    // Divide by number of entries in off region (of off-data)
  • trunk/Mars/mhflux/MHThetaSq.cc

    r9369 r9851  
    9595    binsa.Apply(fHistTime);
    9696
    97     MH::SetBinning(&fHist, &binst, &binse, &binsa);
     97    MH::SetBinning(fHist, binst, binse, binsa);
    9898}
    9999
     
    132132    // Apply binning
    133133    binsa.Apply(fHistTime);
    134     MH::SetBinning(&fHist, &binst, &binse, &binsa);
     134    MH::SetBinning(fHist, binst, binse, binsa);
    135135
    136136    // Remark: Binnings might be overwritten in MHAlpha::SetupFill
  • trunk/Mars/mhflux/MHThetaSqN.cc

    r9369 r9851  
    9898    binsa.Apply(fHistTime);
    9999
    100     MH::SetBinning(&fHist, &binst, &binse, &binsa);
     100    MH::SetBinning(fHist, binst, binse, binsa);
    101101
    102102    fParameter = new MParameterD;
     
    142142    // Apply binning
    143143    binsa.Apply(fHistTime);
    144     MH::SetBinning(&fHist, &binst, &binse, &binsa);
     144    MH::SetBinning(fHist, binst, binse, binsa);
    145145
    146146    // Remark: Binnings might be overwritten in MHAlpha::SetupFill
  • trunk/Mars/mhflux/MHThreshold.cc

    r9362 r9851  
    9898    }
    9999
    100     ApplyBinning(*pl, "Threshold", &fHEnergy);
     100    ApplyBinning(*pl, "Threshold", fHEnergy);
    101101
    102102    return kTRUE;
  • trunk/Mars/mhist/MHCamEventRot.cc

    r9369 r9851  
    128128        const Float_t r = fGeom->GetMaxRadius()*fGeom->GetConvMm2Deg();
    129129
    130         MBinning b;
    131         b.SetEdges(41, -r, r);
    132         SetBinning(&fHist, &b, &b);
     130        const MBinning b(41, -r, r);
     131        SetBinning(fHist, b, b);
    133132    }
    134133    else
    135         SetBinning(&fHist, bins, bins);
     134        SetBinning(fHist, *bins, *bins);
    136135
    137136    fPointPos = (MPointingPos*)plist->FindObject(AddSerialNumber("MPointingPos"));
  • trunk/Mars/mhist/MHStarMap.cc

    r9153 r9851  
    153153            r *= fMm2Deg;
    154154
    155         MBinning b;
    156         b.SetEdges(100, -r, r);
    157         SetBinning(fStarMap, &b, &b);
     155        const MBinning b(100, -r, r);
     156        SetBinning(*fStarMap, b, b);
    158157    }
    159158    else
    160         SetBinning(fStarMap, bins, bins);
     159        SetBinning(*fStarMap, *bins, *bins);
    161160
    162161    if (!geom)
  • trunk/Mars/mimage/MHHillas.cc

    r9350 r9851  
    157157
    158158
    159     ApplyBinning(*plist, "Width",  fWidth);
    160     ApplyBinning(*plist, "Length", fLength);
    161     ApplyBinning(*plist, "Dist",   fDistC);
    162     ApplyBinning(*plist, "Delta",  fDelta);
    163     ApplyBinning(*plist, "Size",   fSize);
     159    ApplyBinning(*plist, "Width",  *fWidth);
     160    ApplyBinning(*plist, "Length", *fLength);
     161    ApplyBinning(*plist, "Dist",   *fDistC);
     162    ApplyBinning(*plist, "Delta",  *fDelta);
     163    ApplyBinning(*plist, "Size",   *fSize);
    164164
    165165    const MBinning *bins = (MBinning*)plist->FindObject("BinningCamera");
     
    168168        const Float_t r = fGeomCam->GetMaxRadius()*fGeomCam->GetConvMm2Deg();
    169169
    170         MBinning b;
    171         b.SetEdges(61, -r, r);
    172         SetBinning(fCenter, &b, &b);
     170        const MBinning b(61, -r, r);
     171        SetBinning(*fCenter, b, b);
    173172    }
    174173    else
    175         SetBinning(fCenter, bins, bins);
     174        SetBinning(*fCenter, *bins, *bins);
    176175
    177176
  • trunk/Mars/mimage/MHHillasExt.cc

    r9362 r9851  
    129129    binsx.Apply(fHAsym);
    130130
    131     binsx.SetEdges(100,     0, 1.5);
    132     binsy.SetEdges(100,    -9,    9);
    133     MH::SetBinning(&fHSlopeL, &binsx, &binsy);
     131    binsx.SetEdges(100,   0, 1.5);
     132    binsy.SetEdges(100,  -9,   9);
     133    MH::SetBinning(fHSlopeL, binsx, binsy);
    134134}
    135135
     
    167167    }
    168168
    169     ApplyBinning(*plist, "Asym", &fHAsym);
    170     ApplyBinning(*plist, "M3Long", &fHM3Long);
    171     ApplyBinning(*plist, "M3Trans", &fHM3Trans);
    172     ApplyBinning(*plist, "Dist", "Slope", &fHSlopeL);
     169    ApplyBinning(*plist, "Asym",             fHAsym);
     170    ApplyBinning(*plist, "M3Long",           fHM3Long);
     171    ApplyBinning(*plist, "M3Trans",          fHM3Trans);
     172    ApplyBinning(*plist, "Dist",    "Slope", fHSlopeL);
    173173
    174174    return kTRUE;
  • trunk/Mars/mimage/MHHillasSrc.cc

    r9350 r9851  
    135135    }
    136136
    137     ApplyBinning(*plist, "Alpha",    fAlpha);
    138     ApplyBinning(*plist, "Dist",     fDist);
    139     ApplyBinning(*plist, "DCA",      fDCA);
    140     ApplyBinning(*plist, "DCADelta", fDCADelta);
     137    ApplyBinning(*plist, "Alpha",    *fAlpha);
     138    ApplyBinning(*plist, "Dist",     *fDist);
     139    ApplyBinning(*plist, "DCA",      *fDCA);
     140    ApplyBinning(*plist, "DCADelta", *fDCADelta);
    141141
    142142    return kTRUE;
  • trunk/Mars/mimage/MHImagePar.cc

    r9344 r9851  
    145145Bool_t MHImagePar::SetupFill(const MParList *plist)
    146146{
    147     ApplyBinning(*plist, "Pixels",  &fHistSatLo);
    148     ApplyBinning(*plist, "Pixels",  &fHistSatHi);
    149     ApplyBinning(*plist, "Pixels",  &fHistNumSP);
    150 
    151     ApplyBinning(*plist, "Islands", &fHistIslands);
    152 
    153     ApplyBinning(*plist, "Size",    &fHistSizeSubIslands);
    154     ApplyBinning(*plist, "Size",    &fHistSizeMainIsland);
    155     ApplyBinning(*plist, "Size",    &fHistSizeSP);
     147    ApplyBinning(*plist, "Pixels",  fHistSatLo);
     148    ApplyBinning(*plist, "Pixels",  fHistSatHi);
     149    ApplyBinning(*plist, "Pixels",  fHistNumSP);
     150
     151    ApplyBinning(*plist, "Islands", fHistIslands);
     152
     153    ApplyBinning(*plist, "Size",    fHistSizeSubIslands);
     154    ApplyBinning(*plist, "Size",    fHistSizeMainIsland);
     155    ApplyBinning(*plist, "Size",    fHistSizeSP);
    156156
    157157    return kTRUE;
  • trunk/Mars/mimage/MHNewImagePar.cc

    r9343 r9851  
    197197    }
    198198
    199     ApplyBinning(*plist, "Leakage", &fHistLeakage1);
    200     ApplyBinning(*plist, "Leakage", &fHistLeakage2);
    201 
    202     ApplyBinning(*plist, "Pixels",  &fHistUsedPix);
    203     ApplyBinning(*plist, "Pixels",  &fHistCorePix);
    204 
    205     //ApplyBinning(*plist, "Area",    &fHistUsedArea);
    206     //ApplyBinning(*plist, "Area",    &fHistCoreArea);
    207 
    208     ApplyBinning(*plist, "Conc",     &fHistConc);
    209     ApplyBinning(*plist, "Conc1",    &fHistConc1);
    210     ApplyBinning(*plist, "ConcCOG",  &fHistConcCOG);
    211     ApplyBinning(*plist, "ConcCore", &fHistConcCore);
     199    ApplyBinning(*plist, "Leakage", fHistLeakage1);
     200    ApplyBinning(*plist, "Leakage", fHistLeakage2);
     201
     202    ApplyBinning(*plist, "Pixels",  fHistUsedPix);
     203    ApplyBinning(*plist, "Pixels",  fHistCorePix);
     204
     205    //ApplyBinning(*plist, "Area",    fHistUsedArea);
     206    //ApplyBinning(*plist, "Area",    fHistCoreArea);
     207
     208    ApplyBinning(*plist, "Conc",     fHistConc);
     209    ApplyBinning(*plist, "Conc1",    fHistConc1);
     210    ApplyBinning(*plist, "ConcCOG",  fHistConcCOG);
     211    ApplyBinning(*plist, "ConcCore", fHistConcCore);
    212212
    213213    return kTRUE;
  • trunk/Mars/mimage/MHVsSize.cc

    r9343 r9851  
    100100    fM3Long.SetYTitle("M3Long [\\circ]");
    101101
    102     MBinning binse, binsl, binsd, binsc, binsa, binsm;
    103     binse.SetEdgesLog( 50,   10, 1e5);
    104     binsl.SetEdges(   100,    0, 0.5);
    105     binsd.SetEdges(   100,    0, 2.0);
    106     binsc.SetEdgesLog(100, 3e-3, 1);
    107     binsa.SetEdges(   100,    0, 0.25);
    108     binsm.SetEdges(   100, -1.5, 1.5);
    109 
    110     MH::SetBinning(&fLength, &binse, &binsl);
    111     MH::SetBinning(&fWidth,  &binse, &binsl);
    112     MH::SetBinning(&fDist,   &binse, &binsd);
    113     MH::SetBinning(&fConc1,  &binse, &binsc);
    114     MH::SetBinning(&fArea,   &binse, &binsa);
    115     MH::SetBinning(&fM3Long, &binse, &binsm);
     102    const MBinning binse( 50,   10, 1e5, "", "log");
     103    const MBinning binsc(100, 3e-3, 1,   "", "log");
     104    const MBinning binsl(100,    0, 0.5);
     105    const MBinning binsd(100,    0, 2.0);
     106    const MBinning binsa(100,    0, 0.25);
     107    const MBinning binsm(100, -1.5, 1.5);
     108
     109    MH::SetBinning(fLength, binse, binsl);
     110    MH::SetBinning(fWidth,  binse, binsl);
     111    MH::SetBinning(fDist,   binse, binsd);
     112    MH::SetBinning(fConc1,  binse, binsc);
     113    MH::SetBinning(fArea,   binse, binsa);
     114    MH::SetBinning(fM3Long, binse, binsm);
    116115
    117116    fLength.UseCurrentStyle();
  • trunk/Mars/mjobs/MJSpectrum.cc

    r9584 r9851  
    16481648    TH2D hist;
    16491649    hist.UseCurrentStyle();
    1650     MH::SetBinning(&hist, &bins3, &bins2);
     1650    MH::SetBinning(hist, bins3, bins2);
    16511651    if (!ReadOrigMCDistribution(set, hist, weight))
    16521652        return kFALSE;
  • trunk/Mars/mjtrain/MJTrainDisp.cc

    r9848 r9851  
    142142    heff.SetYTitle("Efficiency");
    143143
    144     MH::SetBinning(&heff, hist.GetXaxis());
     144    MH::SetBinning(heff, hist);
    145145
    146146    for (int x=0; x<=hist.GetNbinsX()+1; x++)
  • trunk/Mars/mmuon/MHMuonPar.cc

    r9360 r9851  
    164164    }
    165165
    166     ApplyBinning(*plist, "Radius",          &fHistRadius);
    167     ApplyBinning(*plist, "ArcWidth",        &fHistArcWidth);
    168     ApplyBinning(*plist, "RingBroadening",  &fHistBroad);
    169     ApplyBinning(*plist, "SizeVsRadius",    &fHistSize);
     166    ApplyBinning(*plist, "Radius",          fHistRadius);
     167    ApplyBinning(*plist, "ArcWidth",        fHistArcWidth);
     168    ApplyBinning(*plist, "RingBroadening",  fHistBroad);
     169    ApplyBinning(*plist, "SizeVsRadius",    fHistSize);
    170170
    171171    return kTRUE;
  • trunk/Mars/mmuon/MHSingleMuon.cc

    r9574 r9851  
    184184    fMargin = setup->GetMargin()/fGeomCam->GetConvMm2Deg();
    185185
    186     ApplyBinning(*plist, "ArcPhi",    &fHistPhi);
    187     ApplyBinning(*plist, "MuonWidth", &fHistWidth);
    188     ApplyBinning(*plist, "MuonTime",  &fHistTime);
     186    ApplyBinning(*plist, "ArcPhi",    fHistPhi);
     187    ApplyBinning(*plist, "MuonWidth", fHistWidth);
     188    ApplyBinning(*plist, "MuonTime",  fHistTime);
    189189
    190190    return kTRUE;
  • trunk/Mars/mpedestal/MHPedestalCor.cc

    r9153 r9851  
    9595    fProf.SetDirectory(0);
    9696
    97     MBinning binsx(15, -0.5, 14.5);
    98     MH::SetBinning(&fProf, &binsx);
     97    const MBinning binsx(15, -0.5, 14.5);
     98    MH::SetBinning(fProf, binsx);
    9999}
    100100
     
    181181
    182182    const Axis_t xmax = fProf.GetXaxis()->GetXmax();
    183     MBinning bins(n, -xmax, xmax);
    184 
    185     MH::SetBinning(&h, &bins, &bins);
     183
     184    const MBinning bins(n, -xmax, xmax);
     185    MH::SetBinning(h, bins, bins);
    186186
    187187    for (int x=0; x<n; x++)
  • trunk/Mars/mpointing/MHSrcPosCam.cc

    r9361 r9851  
    8181    const Int_t   n = wobble ? 101    : 51;
    8282
    83     MBinning bins;
    84     bins.SetEdges(n, -x, x); // bin=0.01ø  ~0.5SE
    85 
    86     MH::SetBinning(&fHist, &bins, &bins);
     83    const MBinning bins(n, -x, x); // bin=0.01ø  ~0.5SE
     84
     85    MH::SetBinning(fHist, bins, bins);
    8786}
    8887
  • trunk/Mars/msim/MHPhotonEvent.cc

    r9567 r9851  
    146146    Init(name, title);
    147147
    148     MBinning binsd, binsa;
    149     binsd.SetEdges(50, -max, max);
    150     binsa.SetEdges(50, -1, 1);
    151 
    152     SetBinning(&fHistXY, &binsd, &binsd);
    153     SetBinning(&fHistUV, &binsa, &binsa);
    154     SetBinning(&fHistT,  &binsd, &binsd);
     148    const MBinning binsd(50, -max, max);
     149    const MBinning binsa(50, -1,   1);
     150
     151    SetBinning(fHistXY, binsd, binsd);
     152    SetBinning(fHistUV, binsa, binsa);
     153    SetBinning(fHistT,  binsd, binsd);
    155154}
    156155
     
    166165    Init(name, title);
    167166
    168     MBinning binsd, bins;
    169     bins.SetEdges(50, -1, 1);
    170 
    171     SetBinning(&fHistUV, &bins, &bins);
     167    const MBinning bins(50, -1, 1);
     168
     169    SetBinning(fHistUV, bins, bins);
    172170}
    173171
     
    183181    MH::FindGoodLimits(num, num, min, max, kFALSE);
    184182    MH::FindGoodLimits(num, num, min, max, kFALSE);
    185     MBinning binsd, binsa, binsz;
    186     binsd.SetEdges(num, min, max);
    187 
    188     SetBinning(&fHistXY, &binsd, &binsd);
    189     SetBinning(&fHistT,  &binsd, &binsd);
     183
     184    const MBinning binsd(num, min, max);
     185
     186    SetBinning(fHistXY, binsd, binsd);
     187    SetBinning(fHistT,  binsd, binsd);
    190188}
    191189
  • trunk/Mars/mtools/MHSimulatedAnnealing.cc

    r7749 r9851  
    7474    binsx.SetEdges(fMoves+1, 0, 1);
    7575    binsy.SetEdges(fDim, 0.5, fDim+0.5);
    76     MH::SetBinning(&fBestEver, &binsx, &binsy);
     76    MH::SetBinning(fBestEver, binsx, binsy);
    7777   
    7878    // For better visibility, omit the first entry in fBestFuncEval
Note: See TracChangeset for help on using the changeset viewer.