Index: trunk/MagicSoft/Mars/mjtrain/MJTrainDisp.cc
===================================================================
--- trunk/MagicSoft/Mars/mjtrain/MJTrainDisp.cc	(revision 7724)
+++ trunk/MagicSoft/Mars/mjtrain/MJTrainDisp.cc	(revision 7749)
@@ -115,4 +115,6 @@
     MHMatrix train("Train");
     train.AddColumns(fRules);
+    if (fEnableWeights)
+        train.AddColumn("MWeight.fVal");
     train.AddColumn("MHillasSrc.fDist*MGeomCam.fConvMm2Deg");
     //train.AddColumn("TMath::Hypot(MHillasSrc.fDCA, MHillasSrc.fDist)*MGeomCam.fConvMm2Deg");
@@ -126,4 +128,6 @@
     fill.AddPreCuts(fPreCuts);
     fill.AddPreCuts(fTrainCuts);
+    fill.AddPreTasks(fPreTasks);
+    fill.AddPostTasks(fPostTasks);
     if (!fill.Process())
         return kFALSE;
@@ -135,4 +139,5 @@
     rf.SetNumTry(fNumTry);
     rf.SetNumObsoleteVariables(1);
+    rf.SetLastDataColumnHasWeights(fEnableWeights);
     rf.SetDisplay(fDisplay);
     rf.SetLogStream(fLog);
@@ -191,4 +196,10 @@
     MFillH fillh(&hist, "", "FillThetaSq");
 
+    // 0 =  disp^2 - 2*disp*dist*cos(alpha) + dist^2
+
+    // cos^2 -1 = - sin^2
+
+    // disp = +dist* (cos(alpha) +/- sqrt(cos^2(alpha) - 1) )
+
     const char *rule = "(MHillasSrc.fDist*MGeomCam.fConvMm2Deg)^2 + (Disp.fVal)^2 - (2*MHillasSrc.fDist*MGeomCam.fConvMm2Deg*Disp.fVal*cos(MHillasSrc.fAlpha*kDeg2Rad))";
 
@@ -199,15 +210,21 @@
     eval.SetY1("sqrt(ThetaSquared.fVal)");
 
-    MH3 hdisp("MHillas.fSize", "sqrt(ThetaSquared.fVal)");
-    hdisp.SetTitle("\\vartheta distribution vs. Size:Size [phe]:\\vartheta [\\circ]");
-
-    MBinning binsx(100, 10, 100000, "BinningMH3X", "log");
-    MBinning binsy(100, 0,  2,      "BinningMH3Y", "lin");
+    MH3 hdisp1("MHillas.fSize",  "sqrt(ThetaSquared.fVal)");
+    MH3 hdisp2("MMcEvt.fEnergy", "sqrt(ThetaSquared.fVal)");
+    hdisp1.SetTitle("\\vartheta distribution vs. Size:Size [phe]:\\vartheta [\\circ]");
+    hdisp2.SetTitle("\\vartheta distribution vs. Energy:Enerhy [GeV]:\\vartheta [\\circ]");
+
+    MBinning binsx(50, 10, 100000, "BinningMH3X", "log");
+    MBinning binsy(50, 0,  1,      "BinningMH3Y", "lin");
 
     plist.AddToList(&binsx);
     plist.AddToList(&binsy);
 
-    MFillH fillh2(&hdisp, "", "FillMH3");
-    fillh2.SetDrawOption("blue profx");
+    MFillH fillh2a(&hdisp1, "", "FillSize");
+    MFillH fillh2b(&hdisp2, "", "FillEnergy");
+    fillh2a.SetDrawOption("blue profx");
+    fillh2b.SetDrawOption("blue profx");
+    fillh2a.SetNameTab("Size");
+    fillh2b.SetNameTab("Energy");
 
     tlist.AddToList(&readtst);
@@ -216,5 +233,6 @@
     tlist.AddToList(&calcthetasq);
     tlist.AddToList(&fillh);
-    tlist.AddToList(&fillh2);
+    tlist.AddToList(&fillh2a);
+    tlist.AddToList(&fillh2b);
     tlist.AddToList(&eval);
 
Index: trunk/MagicSoft/Mars/mjtrain/MJTrainRanForest.cc
===================================================================
--- trunk/MagicSoft/Mars/mjtrain/MJTrainRanForest.cc	(revision 7724)
+++ trunk/MagicSoft/Mars/mjtrain/MJTrainRanForest.cc	(revision 7749)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz 11/2005 <mailto:tbretz@astro.uni-wuerzburg.de>
 !
-!   Copyright: MAGIC Software Development, 2005
+!   Copyright: MAGIC Software Development, 2005-2006
 !
 !
@@ -31,4 +31,6 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MJTrainRanForest.h"
+
+#include <TFile.h>
 
 #include "MLog.h"
