Index: trunk/MagicSoft/Mars/macros/optim/optimcrab.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optimcrab.C	(revision 7153)
+++ trunk/MagicSoft/Mars/macros/optim/optimcrab.C	(revision 7153)
@@ -0,0 +1,71 @@
+void optimcrab()
+{
+    MJOptimize opt;
+    opt.SetDebug(2);
+    opt.SetOptimizer(MJOptimize::kSimplex);
+
+    // ---------------------------------------------------
+
+    opt.FixParameter(0,  -0.10011,   -5, 5);
+    opt.FixParameter(1,   0.0669669,  -5, 5);
+
+    opt.FixParameter(2,   0.923,  -5,5);
+    opt.FixParameter(3,  -0.8900478,  -5, 5);
+
+    opt.FixParameter(4,   0.215533, -5, 5);
+
+    // ---------------------------------------------------
+    opt.FixParameter(5,   0.106519,  -1, 1);
+    opt.FixParameter(6,   0.5);
+    // --------------------ALPHA--------------------------
+
+    opt.FixParameter(7,   2.13579,   0, 20);
+    opt.FixParameter(8,   4.78171,   0, 20);
+    opt.FixParameter(9,   1.17461,   0, 20);
+    // ---------------------AREA--------------------------
+
+    opt.FixParameter(10,  0.263628,  0, 20);
+    opt.FixParameter(11,  5.25951,   0, 20);
+    opt.FixParameter(12,  0.111246,  0, 20);
+    // --------------------D1/D2--------------------------
+
+    opt.FixParameter(13,  0.188982,   0, 20);
+    opt.FixParameter(14,  1.10405,    0, 20);
+
+    opt.FixParameter(15,  0.0960984,  0, 10);
+    opt.FixParameter(16,  0.0991635,  0, 10);
+
+    opt.FixParameter(17,  0, -10, 10);
+    opt.FixParameter(18,  0, -10, 10);
+    // --------------------MD1/MD2--------------------------
+
+    opt.SetParameter(20,  0.4, -10, 10);
+    opt.FixParameter(21,  0,   -10, 10);
+    opt.SetParameter(22,  1.0, -10, 10);
+    opt.FixParameter(23,  0,   -10, 10);
+
+    opt.SetParameter(24, -1,   -10, 10);
+    opt.FixParameter(25,  0,   -10, 10);
+    opt.FixParameter(26,  0,   -10, 10);
+
+    // S=14.7, E=485, B=285
+    // ---------------------------------------------------
+
+    MStatusDisplay *d = new MStatusDisplay;
+    opt.SetDisplay(d);
+
+    MAlphaFitter fit;
+    fit.SetScaleMode(MAlphaFitter::kNone);
+    fit.SetSignalIntegralMax(99);
+    //fit.SetMinimizationStrategy(MAlphaFitter::kExcess);
+    fit.SetMinimizationStrategy(MAlphaFitter::kSignificanceLogExcess);
+    //fit.SetMinimizationStrategy(MAlphaFitter::kSignificance);
+
+    // A88A
+    // DIST vs. atan(width/w, length/l)
+    // Image cleaning with AT to get better size! (IMPORTANCE: E-est!)
+
+    MFMagicCuts cuts;
+    cuts.SetAlphaCut(MFMagicCuts::kWobble);
+    opt.RunOnOff("wobblelza-abs.root", &cuts, &fit);
+}
Index: trunk/MagicSoft/Mars/macros/optim/optimdisp.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optimdisp.C	(revision 7153)
+++ trunk/MagicSoft/Mars/macros/optim/optimdisp.C	(revision 7153)
@@ -0,0 +1,34 @@
+void optimdisp()
+{
+    MJOptimizeDisp opt;
+    opt.SetDebug(2);
+    opt.SetOptimizer(MJOptimize::kSimplex);
+    opt.EnableTestTrain();
+
+    // -------------------- Setup ----------------------------
+    //opt.AddParameter("1-(MHillas.fWidth/MHillas.fLength)");
+    opt.AddParameter("atan(1./(1-(MHillas.fWidth/MHillas.fLength)))");
+    //opt.AddParameter("log10(MNewImagePar.fLeakage1+1)");
+
+    opt.FixParameter(0, 0.743871,  0,  2);  //0.562676
+    opt.FixParameter(1, 0.329471,  0,  2);  //0.317315
+    opt.FixParameter(2, 1.500002,  0, 10);  //1.55754
+
+    // Leakage==0: RMS = 0.030
+    // Leakage>0:  RMS = 0.010
+
+    // all: 0.029 (0.605991, 0.332266, 1.50825)
+
+    //char *r = "([0]+(pow(M[1],[1])*[2]))/M[0]";
+    //char *r = "([0]+(pow(M[1],[1])*[2]))*M[0]";
+    //char *r = "[0]*M[0]";
+    char *r = "[0]/M[0]";
+
+    // -------------------- Run ----------------------------
+
+    MStatusDisplay *d = new MStatusDisplay;
+    opt.SetDisplay(d);
+
+    opt.AddPreCut("MNewImagePar.fLeakage1<0.0001");
+    opt.RunDisp("ganymedmcpart.root", r);
+}
Index: trunk/MagicSoft/Mars/macros/optim/optime.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optime.C	(revision 7153)
+++ trunk/MagicSoft/Mars/macros/optim/optime.C	(revision 7153)
@@ -0,0 +1,27 @@
+void optime()
+{
+    MJOptimize opt;
+    opt.SetDebug(2);
+    opt.SetOptimizer(MJOptimize::kMigrad);
+    opt.EnableTestTrain();
+
+    opt.AddParameter("MHillas.fSize"); 
+    opt.AddParameter("MPointingPos.fZd");
+
+    opt.SetParameter(0,  0.6,            0, 1000);
+    opt.SetParameter(1,  0.0005,    0, 1000);
+    opt.SetParameter(2,  0.89,       0, 1000);
+    opt.FixParameter(3,  0,        -1000, 1000);
+    opt.FixParameter(4,  0,        -1000, 1000);
+    opt.FixParameter(5,  0,        -1000, 1000);
+    opt.FixParameter(6,  0,        -1000, 1000);
+    //opt.SetParameter(4,  0,        -1000, 1000);
+
+    MStatusDisplay *d = new MStatusDisplay;
+    opt.SetDisplay(d);
+
+    char *r = "([0]+(M[1]^2*[1]))*pow(M[0] + [3]*M[0]^2, [2])";
+
+    opt.RunEnergy("ganymed00000999-result.root", r);
+    //opt.RunEnergy("~/Software/mcwobble/img-abs/*_I_MonteCarlo[0123456789]_E.root", r);
+}
Index: trunk/MagicSoft/Mars/macros/optim/optimenergy.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optimenergy.C	(revision 7153)
+++ trunk/MagicSoft/Mars/macros/optim/optimenergy.C	(revision 7153)
@@ -0,0 +1,22 @@
+void optimenergy()
+{
+    MJOptimizeEnergy opt;
+    opt.SetDebug(2);
+    opt.SetOptimizer(MJOptimize::kSimplex);
+    opt.EnableTestTrain();
+
+    // -------------------- Setup ----------------------------
+    opt.AddParameter("MHillas.fSize");
+
+    opt.FixParameter(0, 0.9, 0, 2);  //0.562676
+
+    char *r = "[0]*M[0]";
+
+    // -------------------- Run ----------------------------
+
+    MStatusDisplay *d = new MStatusDisplay;
+    opt.SetDisplay(d);
+
+    //opt.AddPreCut("MNewImagePar.fLeakage1<0.0001");
+    opt.RunDisp("ganymedmcpart.root", r);
+}
Index: trunk/MagicSoft/Mars/macros/optim/optimonoff.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optimonoff.C	(revision 7153)
+++ trunk/MagicSoft/Mars/macros/optim/optimonoff.C	(revision 7153)
@@ -0,0 +1,43 @@
+void optimonoff()
+{
+    MJOptimizeCuts opt("MHThetaSq");
+    opt.SetDebug(2);
+    opt.SetOptimizer(MJOptimize::kSimplex);
+
+    // ------------------- Xi -----------------------
+    opt.SetParameter(0, 0.6);
+    opt.FixParameter(6, 0.137);
+
+    // --------------- Theta Sq ---------------------
+    opt.SetParameter(1, 0.23);
+
+    // ----------------- Area -----------------------
+    opt.SetParameter(2, 0.25);
+    opt.SetParameter(3, 5.21);
+    opt.SetParameter(4, 0.11);
+
+    // ----------------- M3L ------------------------
+    opt.SetParameter(5, -0.089);
+
+    // ----------------- Fit ------------------------
+
+    MAlphaFitter fit;
+    fit.SetScaleMode(MAlphaFitter::kBackground);
+    fit.SetBackgroundMin(0.4);
+    fit.SetBackgroundMax(0.6);
+    fit.SetPolynomOrder(1);
+    fit.SetSignalFunction(MAlphaFitter::kThetaSq);
+    fit.SetMinimizationStrategy(MAlphaFitter::kSignificanceLogExcess);
+
+    // ----------------- Cuts -----------------------
+
+    MFMagicCuts cuts;
+    cuts.SetAlphaCut(MFMagicCuts::kNoCuts);
+
+    // -----------------------------------------------------------
+
+    MStatusDisplay *d = new MStatusDisplay;
+    opt.SetDisplay(d);
+
+    opt.RunOnOff("onofflza-abs.root", &cuts, &fit);
+}
Index: trunk/MagicSoft/Mars/macros/optim/optimwobble.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optimwobble.C	(revision 7153)
+++ trunk/MagicSoft/Mars/macros/optim/optimwobble.C	(revision 7153)
@@ -0,0 +1,40 @@
+void optimwobble()
+{
+    MJOptimizeCuts opt("MHThetaSq");
+    opt.SetDebug(2);
+    opt.SetOptimizer(MJOptimize::kSimplex);
+
+    // ------------------- Xi -----------------------
+    opt.SetParameter(0, 0.6);
+    opt.FixParameter(6, 0.137);
+
+    // --------------- Theta Sq ---------------------
+    opt.SetParameter(1, 0.23);
+
+    // ----------------- Area -----------------------
+    opt.SetParameter(2, 0.25);
+    opt.SetParameter(3, 5.21);
+    opt.SetParameter(4, 0.11);
+
+    // ----------------- M3L ------------------------
+    opt.SetParameter(5, -0.089);
+
+    // ----------------- Fit ------------------------
+
+    MAlphaFitter fit;
+    fit.SetScaleMode(MAlphaFitter::kNone);
+    fit.SetSignalFunction(MAlphaFitter::kThetaSq);
+    fit.SetMinimizationStrategy(MAlphaFitter::kSignificanceLogExcess);
+
+    // ----------------- Cuts -----------------------
+
+    MFMagicCuts cuts;
+    cuts.SetAlphaCut(MFMagicCuts::kWobble);
+
+    // -----------------------------------------------------------
+
+    MStatusDisplay *d = new MStatusDisplay;
+    opt.SetDisplay(d);
+
+    opt.RunOnOff("wobblelza-abs.root", &cuts, &fit);
+}
