void optimwobble()
{
    MJOptimizeCuts opt("MHThetaSq");
    opt.SetDebug(2);
    opt.SetOptimizer(MJOptimize::kSimplex);

    // ------------------- Xi -----------------------
    opt.FixParameter(0, 1.221);
    opt.FixParameter(6, 13.425);
    opt.FixParameter(7, 1.04343);
                  
    // --------------- 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.SetThetaCut(MFMagicCuts::kWobble);

    /* You can also try (switch on scaling):

     fit.SetScaleMode(MAlphaFitter::kBackground);
     fit.SetBackgroundFitMin(0.12);
     fit.SetBackgroundFitMax(0.5);

     cuts.SetThetaCut(MFMagicCuts::kOff);
     */

    // -----------------------------------------------------------

    MStatusDisplay *d = new MStatusDisplay;
    opt.SetDisplay(d);

    // opt.SetPathOut("optimwobble.root");
    opt.RunOnOff("wobblelza-abs.root", &cuts, &fit);
}
