Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 1633)
+++ trunk/MagicSoft/Mars/Changelog	(revision 1634)
@@ -12,6 +12,10 @@
      - renamed HillasSource to MHillasSrc
 
-   * macros/estfit.C, macros/estimate.C:
+   * macros/estfit.C:
      - renamed HillasSource to MHillasSrc
+
+   * macros/estimate.C:
+     - renamed HillasSource to MHillasSrc
+     - changed to display more interesting histograms
 
    * multidimdist.C:
Index: trunk/MagicSoft/Mars/macros/estimate.C
===================================================================
--- trunk/MagicSoft/Mars/macros/estimate.C	(revision 1633)
+++ trunk/MagicSoft/Mars/macros/estimate.C	(revision 1634)
@@ -62,4 +62,13 @@
     eest.Add("MHillasSrc");
 
+    //
+    // Use this to change the binnign of the histograms to CT1-style
+    //
+    Bool_t usect1 = kTRUE;
+
+    //
+    // Here you set up the coefficients of the parametrization
+    // (MEnergyEstParam)
+    //
     TArrayD fA(5);
     fA[0] =  -2539; // [cm]
@@ -77,70 +86,46 @@
     fB[5] =  4.14e-8; // [GeV]
     fB[6] =    -0.06;
-    /* fb5=size*width, ir 29.8% (RMS=23%)
-     fB[0] =    -8.64; // [GeV]
-     fB[1] =   -0.069; // [GeV]
-     fB[2] =  0.00066; // [GeV]
-     fB[3] =    0.033; // [GeV]
-     fB[4] = 0.000226; // [GeV]
-     fB[5] =  4.14e-8; // [GeV]
-     fB[6] =    -0.06;*/
-    /* size*dist, ir 30%
-     fB[0] =   -32; // [GeV]
-     fB[1] =  -0.0295; // [GeV]
-     fB[2] =   0.00112; // [GeV]
-     fB[3] =   0.0644; // [GeV]
-     fB[4] = 1e-5; // [GeV]
-     fB[5] =  6.3e-6; // [GeV]
-     fB[6] =   -0.06;
-     */
-    /* size*width, ir 30%
-     fB[0] =   -17; // [GeV]
-     fB[1] =  -0.06; // [GeV]
-     fB[2] =   0.0013; // [GeV]
-     fB[3] =   0.039; // [GeV]
-     fB[4] = 0.00036; // [GeV]
-     fB[5] =  5.6e-6; // [GeV]
-     fB[6] =   -0.06;
-     */
-    /* fb5=width, ir 31%
-     fB[0] =   0.14; // [GeV]
-     fB[1] =  -0.078; // [GeV]
-     fB[2] =   0.0003; // [GeV]
-     fB[3] =  -0.171; // [GeV]
-     fB[4] = 0.00038; // [GeV]
-     fB[5] =  3e-5; // [GeV]
-     fB[6] =   -0.06;
-     */
-    /* size*length, ir  32%
-     fB[0] =   -1.14; // [GeV]
-     fB[1] =  -0.075; // [GeV]
-     fB[2] =   0.0008; // [GeV]
-     fB[3] =  -0.148; // [GeV]
-     fB[4] = 0.00037; // [GeV]
-     fB[5] =  8e-7; // [GeV]
-     fB[6] =   -0.06;
-     */
-    /* ir/dist 35%
-     fB[0] =     7.7; // [GeV]
-     fB[1] =  -0.076; // [GeV]
-     fB[2] =   0.011; // [GeV]
-     fB[3] =  -0.175; // [GeV]
-     fB[4] = 0.00038; // [GeV]
-     fB[5] = -0.0001; // [GeV]
-     fB[6] =   -0.06;
-     */
-
 
     eest.SetCoeffA(fA);
     eest.SetCoeffB(fB);
 
-    MH3 mh3e("MMcEvt.fEnergy",     "abs(MEnergyEst.fEnergy/MMcEvt.fEnergy-1)");
-    MH3 mh3i("MMcEvt.fImpact/100", "abs(MEnergyEst.fImpact/MMcEvt.fImpact-1)");
+    MH3 mh3e("MMcEvt.fEnergy",     "(MEnergyEst.fEnergy/MMcEvt.fEnergy-1)*(MEnergyEst.fEnergy/MMcEvt.fEnergy-1)");
+    MH3 mh3i("MMcEvt.fImpact/100", "(MEnergyEst.fImpact/MMcEvt.fImpact-1)*(MEnergyEst.fImpact/MMcEvt.fImpact-1)");
+    MH3 mh3eo("MMcEvt.fEnergy",     "MEnergyEst.fEnergy/MMcEvt.fEnergy-1");
+    MH3 mh3io("MMcEvt.fImpact/100", "MEnergyEst.fImpact/MMcEvt.fImpact-1");
+
+    MH3 mh3e2("MEnergyEst.fEnergy",     "(MEnergyEst.fEnergy/MMcEvt.fEnergy-1)*(MEnergyEst.fEnergy/MMcEvt.fEnergy-1)");
+    MH3 mh3i2("MEnergyEst.fImpact/100", "(MEnergyEst.fImpact/MMcEvt.fImpact-1)*(MEnergyEst.fImpact/MMcEvt.fImpact-1)");
+    MH3 mh3eo2("MEnergyEst.fEnergy",     "MEnergyEst.fEnergy/MMcEvt.fEnergy-1");
+    MH3 mh3io2("MEnergyEst.fImpact/100", "MEnergyEst.fImpact/MMcEvt.fImpact-1");
+
+    MH3 mhe("MMcEvt.fEnergy",     "MEnergyEst.fEnergy");
+    MH3 mhi("MMcEvt.fImpact/100", "MEnergyEst.fImpact/100");
 
     mh3e.SetName("HistEnergy");
     mh3i.SetName("HistImpact");
+    mh3eo.SetName("HistEnergyOffset");
+    mh3io.SetName("HistImpactOffset");
+
+    mh3e2.SetName("HistEnergy");
+    mh3i2.SetName("HistImpact");
+    mh3eo2.SetName("HistEnergyOffset");
+    mh3io2.SetName("HistImpactOffset");
+
+    mhe.SetName("HistEE");
+    mhi.SetName("HistII");
 
     MFillH hfille(&mh3e);
     MFillH hfilli(&mh3i);
+    MFillH hfilleo(&mh3eo);
+    MFillH hfillio(&mh3io);
+
+    MFillH hfille2(&mh3e2);
+    MFillH hfilli2(&mh3i2);
+    MFillH hfilleo2(&mh3eo2);
+    MFillH hfillio2(&mh3io2);
+
+    MFillH hfillee(&mhe);
+    MFillH hfillii(&mhi);
 
     MBinning binsex("BinningHistEnergyX");
@@ -148,10 +133,27 @@
     MBinning binsix("BinningHistImpactX");
     MBinning binsiy("BinningHistImpactY");
-
-    binsex.SetEdgesLog(50, 10, 1e4);
-    binsey.SetEdges(50, 0, 7);
-
-    binsix.SetEdges(50, 0, 300);
-    binsiy.SetEdges(50, 0, 3);
+    MBinning binseox("BinningHistEnergyOffsetX");
+    MBinning binseoy("BinningHistEnergyOffsetY");
+    MBinning binsiox("BinningHistImpactOffsetX");
+    MBinning binsioy("BinningHistImpactOffsetY");
+    MBinning binseex("BinningHistEEX");
+    MBinning binsiix("BinningHistIIX");
+    MBinning binseey("BinningHistEEY");
+    MBinning binsiiy("BinningHistIIY");
+
+    binsex.SetEdgesLog(50, usect1 ? 300: 10, usect1 ? 50000 : 1e4);
+    binsey.SetEdges(50, 0, 1.75);
+    binseox.SetEdgesLog(50, usect1 ? 300 : 10, usect1 ? 50000 : 1e4);
+    binseoy.SetEdges(50, -1.75, 1.75);
+
+    binsix.SetEdges(50, 0, usect1 ? 450 : 300);
+    binsiy.SetEdges(50, 0, 1.75);
+    binsiox.SetEdges(50, 0, usect1 ? 450 : 300);
+    binsioy.SetEdges(50, -1.75, 1.75);
+
+    binseex.SetEdgesLog(50, usect1 ? 300 : 10, usect1 ? 50000 : 15e3);
+    binseey.SetEdgesLog(50, usect1 ? 300 : 1,  usect1 ? 50000 : 2e3);
+    binsiix.SetEdges(50, 0, usect1 ? 450 : 300);
+    binsiiy.SetEdges(50, 0, usect1 ? 450 : 150);
 
     plist.AddToList(&binsex);
@@ -159,4 +161,12 @@
     plist.AddToList(&binsix);
     plist.AddToList(&binsiy);
+    plist.AddToList(&binseox);
+    plist.AddToList(&binseoy);
+    plist.AddToList(&binsiox);
+    plist.AddToList(&binsioy);
+    plist.AddToList(&binseex);
+    plist.AddToList(&binseey);
+    plist.AddToList(&binsiix);
+    plist.AddToList(&binsiiy);
 
     //
@@ -170,4 +180,14 @@
     tlist2.AddToList(&hfille);
     tlist2.AddToList(&hfilli);
+    tlist2.AddToList(&hfilleo);
+    tlist2.AddToList(&hfillio);
+
+    tlist2.AddToList(&hfille2);
+    tlist2.AddToList(&hfilli2);
+    tlist2.AddToList(&hfilleo2);
+    tlist2.AddToList(&hfillio2);
+
+    tlist2.AddToList(&hfillee);
+    tlist2.AddToList(&hfillii);
 
     /*
@@ -179,5 +199,8 @@
     // Create and setup the eventloop
     //
+    MProgressBar bar;
+
     MEvtLoop evtloop;
+    evtloop.SetProgressBar(&bar);
     evtloop.SetParList(&plist);
 
@@ -190,6 +213,33 @@
     tlist.PrintStatistics();
 
-    mh3i.DrawClone("PROFX");
-    mh3e.DrawClone("PROFX");
+    const TString text = "\\sqrt{<y>}=%.0f%%";
+
+    TCanvas *c=new TCanvas("Est1", "Estimates vs. E_{true}");
+    c->Divide(2,2);
+    c->cd(1);
+    mh3i.DrawClone("PROFXnonew");
+    TLatex *t = new TLatex(180, 1.6, Form(text, sqrt(mh3i.GetHist().GetMean(2))*100));
+    t->Draw();
+    c->cd(2);
+    mh3e.DrawClone("PROFXnonew");
+    t = new TLatex(2.7, 1.6, Form(text, sqrt(mh3e.GetHist().GetMean(2))*100));
+    t->Draw();
+    c->cd(3);
+    mh3io.DrawClone("PROFXnonew");
+    c->cd(4);
+    mh3eo.DrawClone("PROFXnonew");
+
+    c=new TCanvas("Est2", "Estimates vs. E_{est}");
+    c->Divide(2,2);
+    c->cd(1);
+    mh3i2.DrawClone("PROFXnonew");
+    c->cd(2);
+    mh3e2.DrawClone("PROFXnonew");
+    c->cd(3);
+    mh3io2.DrawClone("PROFXnonew");
+    c->cd(4);
+    mh3eo2.DrawClone("PROFXnonew");
+
+    mhe.DrawClone("PROFX");
+    mhi.DrawClone("PROFX");
 }
-
