Ignore:
Timestamp:
06/17/05 13:33:56 (19 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mranforest
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mranforest/MRFEnergyEst.cc

    r7142 r7169  
    7070MRFEnergyEst::MRFEnergyEst(const char *name, const char *title)
    7171    : fNumTrees(-1), fNumTry(-1), fNdSize(-1), fDebug(kFALSE),
    72     fData(0), fEnergyEst(0), fTestMatrix(0)
     72    fData(0), fEnergyEst(0), fTestMatrix(0), fEstimationMode(kMean)
    7373{
    7474    fName  = name  ? name  : gsDefName.Data();
     
    9191    }
    9292
    93     const TMatrix &m = matrixtrain.GetM();
    94 
    95     const Int_t ncols = m.GetNcols();
    96     const Int_t nrows = m.GetNrows();
     93    const Int_t ncols = matrixtrain.GetM().GetNcols();
     94    const Int_t nrows = matrixtrain.GetM().GetNrows();
    9795    if (ncols<=0 || nrows <=0)
    9896    {
     
    132130        Int_t irow0=0;
    133131
     132        const TMatrix &m = matrixtrain.GetM();
    134133        for (Int_t j=0; j<nrows; j++)
    135134        {
     
    165164        MHMatrix matrix0(mat0, "MatrixGammas");
    166165
    167         matrix1.AddColumns(&usedrules);
    168         matrix0.AddColumns(&usedrules);
     166        //matrix1.AddColumns(&usedrules);
     167        //matrix0.AddColumns(&usedrules);
    169168
    170169        // training of RF
     
    186185        evtloop.SetParList(&plist);
    187186
     187        if (!evtloop.Eventloop())
     188            return kFALSE;
     189
    188190        if (fDebug)
    189191            gLog.SetNullOutput(kFALSE);
    190 
    191         if (!evtloop.Eventloop())
    192             return kFALSE;
    193192
    194193        const Double_t E = (log10(grid[ie])+log10(grid[ie+1]))/2;
     
    220219    fEForests.Delete();
    221220
     221    Int_t i=0;
     222
    222223    TIter Next(fileRF.GetListOfKeys());
    223224    TObject *o=0;
     
    231232        forest->SetTitle(o->GetTitle());
    232233        forest->SetBit(kCanDelete);
     234
     235        fBinning.Set(i+1);
     236        fBinning[i++] = atof(o->GetTitle());
    233237
    234238        fEForests.Add(forest);
     
    289293    Double_t eest = 0;
    290294    Double_t hsum = 0;
     295    Double_t maxh = 0;
     296    Double_t maxe = 0;
     297
     298    Int_t i=0;
    291299
    292300    TIter Next(&fEForests);
     
    295303    {
    296304        const Double_t h = rf->CalcHadroness(event);
    297         const Double_t e = atof(rf->GetTitle());
     305        const Double_t e = fBinning[i++];
    298306
    299307        hsum += h;
    300308        eest += e*h;
    301     }
    302 
    303     fEnergyEst->SetVal(pow(10, eest/hsum));
     309        if (h>maxh)
     310        {
     311            maxh = h;
     312            maxe = e;
     313        }
     314    }
     315
     316    switch (fEstimationMode)
     317    {
     318    case kMean:
     319        fEnergyEst->SetVal(pow(10, eest/hsum));
     320        break;
     321    case kMaximum:
     322        fEnergyEst->SetVal(pow(10, maxe));
     323        break;
     324    }
    304325    fEnergyEst->SetReadyToSave();
    305326
     
    323344        SetDebug(GetEnvValue(env, prefix, "Debug", fDebug));
    324345    }
     346    if (IsEnvDefined(env, prefix, "EstimationMode", print))
     347    {
     348        TString txt = GetEnvValue(env, prefix, "EstimationMode", "");
     349        txt = txt.Strip(TString::kBoth);
     350        txt.ToLower();
     351        if (txt==(TString)"mean")
     352            fEstimationMode = kMean;
     353        if (txt==(TString)"maximum")
     354            fEstimationMode = kMaximum;
     355        rc = kTRUE;
     356    }
    325357    return rc;
    326358}
  • trunk/MagicSoft/Mars/mranforest/MRFEnergyEst.h

    r7142 r7169  
    99#include <TObjArray.h>
    1010#endif
    11 
    12 class TArrayD;
     11#ifndef ROOT_TArrayD
     12#include <TArrayD.h>
     13#endif
    1314
    1415class MHMatrix;
     
    1819class MRFEnergyEst : public MTask
    1920{
     21public:
     22    enum EstimationMode_t
     23    {
     24        kMean,
     25        kMaximum
     26    };
    2027private:
    2128    Int_t        fNumTrees;  // Training parameters
     
    3239
    3340    MHMatrix *fTestMatrix;
     41
     42    TArrayD   fBinning;
     43
     44    EstimationMode_t fEstimationMode;
    3445
    3546    Int_t PreProcess(MParList *plist);
     
    5263    void  InitMapping(MHMatrix *m=0)   { fTestMatrix=m; }
    5364
    54     void SetDebug(Bool_t b=kTRUE)      { fDebug = b; }
     65    void  SetDebug(Bool_t b=kTRUE)     { fDebug = b; }
     66
     67    void  SetEstimationMode(EstimationMode_t op) { fEstimationMode = op; }
    5568
    5669    Int_t Train(const MHMatrix &n, const TArrayD &grid);
Note: See TracChangeset for help on using the changeset viewer.