Changeset 7664 for trunk/MagicSoft


Ignore:
Timestamp:
04/30/06 14:15:49 (19 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mjtrain
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mjtrain/MJTrainSeparation.cc

    r7654 r7664  
    8686    g.SetMarkerColor(kGreen);
    8787
     88    TH2D res1(g);
     89    TH2D res2(g);
     90
     91    res1.SetTitle("Significance Li/Ma");
     92    res2.SetTitle("Significance Li/Ma * log_{10}(excess)");
     93
    8894    const Int_t nx = h.GetNbinsX();
    8995    const Int_t ny = h.GetNbinsY();
     
    106112            const Float_t s = gx->Integral(1, y+1);
    107113            const Float_t b = hx->Integral(1, y+1);
    108             const Float_t sig1 = MMath::SignificanceLiMa(s+b, b);
    109             const Float_t sig2 = s<1 ? 0 : MMath::SignificanceLiMa(s+b, b)*TMath::Log10(s);
     114            const Float_t sig1 = MMath::SignificanceLiMaSigned(s+b, b);
     115            const Float_t sig2 = s<1 ? 0 : MMath::SignificanceLiMaSigned(s+b, b)*TMath::Log10(s);
    110116            if (sig1>max1)
    111117            {
     
    118124                max2 = sig2;
    119125            }
     126
     127            res1.SetBinContent(x+1, y+1, sig1);
     128            res2.SetBinContent(x+1, y+1, sig2);
    120129        }
    121130
     
    127136    }
    128137
    129     fDisplay->AddTab("OptCut");
     138    TCanvas &c = fDisplay->AddTab("OptCut");
     139    c.Divide(2,2);
     140
     141    c.cd(1);
    130142    gPad->SetLogx();
    131143    h.DrawCopy();
     
    136148    gr2.SetMarkerStyle(kFullDotMedium);
    137149    gr2.DrawClone("LP")->SetBit(kCanDelete);
     150
     151    c.cd(2);
     152    gPad->SetLogx();
     153    MH::SetPalette("pretty");
     154    res1.DrawCopy("colz");
     155
     156    c.cd(4);
     157    gPad->SetLogx();
     158    MH::SetPalette("pretty");
     159    res2.DrawCopy("colz");
    138160}
    139161
     
    457479        return kFALSE;
    458480
     481    const Int_t numgammas = train.GetNumRows();
     482
    459483    // Set classifier for hadrons
    460484    had.SetVal(1);
     
    464488    if (!fill.Process(plistx))
    465489        return kFALSE;
     490
     491    const Int_t numbackgrnd = train.GetNumRows()-numgammas;
    466492
    467493    // ------------------------ Train RF --------------------------
     
    478504    rf.SetNameOutput("MHadronness");
    479505
    480     //MBinning b(2, -0.5, 1.5, "BinningHadronness", "lin");
     506    if (fUseRegression)
     507    {
     508        if (!rf.TrainSingleRF(train))                  // regression
     509            return kFALSE;
     510    }
     511    else
     512    {
     513        MBinning b(2, -0.5, 1.5, "BinningHadronness", "lin");
     514        if (!rf.TrainSingleRF(train, b.GetEdgesD()))   // classification
     515            return;
     516    }
    481517
    482518    //if (!rf.TrainMultiRF(train, b.GetEdgesD()))    // classification
    483519    //    return;
    484520
    485     //if (!rf.TrainSingleRF(train, b.GetEdgesD()))   // classification
    486     //    return;
    487 
    488     if (!rf.TrainSingleRF(train))                  // regression
    489         return kFALSE;
    490 
    491521    //fDisplay = rf.GetDisplay();
    492522
     523
     524    *fLog << all;
     525    fLog->Separator();
     526
     527    *fLog << "Training method:" << endl;
     528    *fLog << " * " << (fUseRegression?"regression":"classification") << endl;
     529    *fLog << endl;
     530    *fLog << "Events used for training:"   << endl;
     531    *fLog << " * Gammas:     " << numgammas   << endl;
     532    *fLog << " * Background: " << numbackgrnd << endl;
     533
     534    if (!fDataSetTest.IsValid())
     535        return kTRUE;
     536
    493537    // --------------------- Display result ----------------------
    494     gLog.Separator("Test");
     538    fLog->Separator("Test");
    495539
    496540    MParList  plist;
  • trunk/MagicSoft/Mars/mjtrain/MJTrainSeparation.h

    r7652 r7664  
    2525
    2626    Bool_t fAutoTrain;
     27    Bool_t fUseRegression;
    2728
    2829    void DisplayResult(MH3 &h31, MH3 &h32);
     
    3637        fNumTrainOn((UInt_t)-1), fNumTrainOff((UInt_t)-1),
    3738        fNumTestOn((UInt_t)-1), fNumTestOff((UInt_t)-1),
    38         fAutoTrain(kFALSE)
     39        fAutoTrain(kFALSE), fUseRegression(kTRUE)
    3940    { }
    4041
     
    4243    {
    4344        ds.Copy(fDataSetTrain);
     45
     46        fDataSet.SetNumAnalysis(1);
     47
    4448        fNumTrainOn = non;
    4549        fNumTrainOff = noff;
     
    4852    {
    4953        ds.Copy(fDataSetTest);
     54
     55        fDataSet.SetNumAnalysis(1);
     56
    5057        fNumTestOn = non;
    5158        fNumTestOff = noff;
    5259    }
    5360
    54     void EnableAutoTrain(Bool_t b=kTRUE) { fAutoTrain = b; }
     61    void EnableAutoTrain(Bool_t b=kTRUE)      { fAutoTrain     =  b; }
     62    void EnableRegression(Bool_t b=kTRUE)     { fUseRegression =  b; }
     63    void EnableClassification(Bool_t b=kTRUE) { fUseRegression = !b; }
    5564
    5665    Bool_t Train(const char *out);
Note: See TracChangeset for help on using the changeset viewer.