Index: trunk/MagicSoft/Mars/mjtrain/MJTrainSeparation.cc
===================================================================
--- trunk/MagicSoft/Mars/mjtrain/MJTrainSeparation.cc	(revision 7666)
+++ trunk/MagicSoft/Mars/mjtrain/MJTrainSeparation.cc	(revision 7667)
@@ -113,6 +113,6 @@
             const Float_t s = gx->Integral(1, y+1);
             const Float_t b = hx->Integral(1, y+1);
-            const Float_t sig1 = MMath::SignificanceLiMaSigned(s+b, b);
-            const Float_t sig2 = s<1 ? 0 : MMath::SignificanceLiMaSigned(s+b, b)*TMath::Log10(s);
+            const Float_t sig1 = MMath::SignificanceLiMa(s+b, b);
+            const Float_t sig2 = s<1 ? 0 : MMath::SignificanceLiMa(s+b, b)*TMath::Log10(s);
             if (sig1>max1)
             {
@@ -137,5 +137,24 @@
     }
 
+    TGraph gr3;
+    TGraph gr4;
+
+    TH1 *hx = h.ProjectionY("H_py");
+    TH1 *gx = g.ProjectionY("G_py");
+    for (int y=0; y<ny; y++)
+    {
+        const Float_t s = gx->Integral(1, y+1);
+        const Float_t b = hx->Integral(1, y+1);
+        const Float_t sig1 = MMath::SignificanceLiMa(s+b, b);
+        const Float_t sig2 = s<1 ? 0 : MMath::SignificanceLiMa(s+b, b)*TMath::Log10(s);
+
+        gr3.SetPoint(y, h.GetYaxis()->GetBinLowEdge(y+2), sig1);
+        gr4.SetPoint(y, h.GetYaxis()->GetBinLowEdge(y+2), sig2);
+    }
+    delete hx;
+    delete gx;
+
     TCanvas &c = fDisplay->AddTab("OptCut");
+    c.SetBorderMode(0);
     c.Divide(2,2);
 
@@ -152,4 +171,13 @@
     gr2.DrawClone("LP")->SetBit(kCanDelete);
 
+    c.cd(3);
+    gPad->SetBorderMode(0);
+    gPad->SetFrameBorderMode(0);
+    gr4.SetMarkerStyle(kFullDotMedium);
+    gr4.DrawClone("ALP")->SetBit(kCanDelete);
+    gr3.SetLineColor(kBlue);
+    gr3.SetMarkerStyle(kFullDotMedium);
+    gr3.DrawClone("LP")->SetBit(kCanDelete);
+
     c.cd(2);
     gPad->SetBorderMode(0);
@@ -304,6 +332,4 @@
     }
 
-    *fLog << inf << "Found " << num << " background events in " << ontime << "s" << endl;
-
     return num/ontime;
 }
@@ -382,5 +408,5 @@
     if (data<n)
     {
-        on  = TMath::Nint(nummc*data/n); //(UInt_t)-1;
+        on  = TMath::Nint(nummc*data/n);
         off = TMath::Nint(data);
         *fLog << "Not enough data events available... scaling by " << data/n << endl;
@@ -405,4 +431,7 @@
     *fLog << "Target number of MC events:   " << fNumTrainOn << endl;
     *fLog << "Target number of data events: " << fNumTrainOff << endl;
+
+    fNumTestOn  = fNumTrainOn;
+    fNumTestOff = fNumTrainOff;
 
     /*
@@ -548,4 +577,8 @@
     *fLog << " * Gammas:     " << numgammas   << endl;
     *fLog << " * Background: " << numbackgrnd << endl;
+    *fLog << endl;
+    *fLog << "Gamma/Background ratio:" << endl;
+    *fLog << " * Requested:  " << (float)fNumTrainOn/fNumTrainOff << endl;
+    *fLog << " * Result:     " << (float)numgammas/numbackgrnd << endl;
 
     if (!fDataSetTest.IsValid())
@@ -565,5 +598,5 @@
     // ----- Setup histograms -----
     MBinning binsy(100, 0 , 1,      "BinningMH3Y", "lin");
-    MBinning binsx( 50, 10, 100000, "BinningMH3X", "log");
+    MBinning binsx( 40, 10, 100000, "BinningMH3X", "log");
 
     plist.AddToList(&binsx);
@@ -599,5 +632,5 @@
 
     MFEventSelector sel;
-    sel.SetNumSelectEvts(fNumTestOn);
+    sel.SetNumSelectEvts(fNumTestOff);
 
     MContinue c1(&sel);
@@ -622,5 +655,5 @@
 
     // ----- Setup and run eventloop on background -----
-    sel.SetNumSelectEvts(fNumTestOff);
+    sel.SetNumSelectEvts(fNumTestOn);
     fillh0.ResetBit(MFillH::kDoNotDisplay);
 
