Index: /trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc	(revision 1476)
@@ -103,5 +103,5 @@
 // gui elements to a macro-file.
 //
-void MHillasSrcCalc::SavePrimitive(ofstream &out, Option_t *o="")
+void MHillasSrcCalc::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MHillasSrcCalc " << ToLower(fName) << "(\"";
Index: /trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1476)
@@ -414,5 +414,5 @@
 // gui elements to a macro-file.
 //
-void MImgCleanStd::SavePrimitive(ofstream &out, Option_t *o="")
+void MImgCleanStd::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MImgCleanStd " << ToLower(fName) << "(";
Index: /trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc	(revision 1476)
@@ -88,5 +88,5 @@
 // gui elements to a macro-file.
 //
-void MSrcPosCam::SavePrimitive(ofstream &out, Option_t *o="")
+void MSrcPosCam::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MSrcPosCam " << ToLower(fName) << "(\"";
Index: /trunk/MagicSoft/Mars/mbase/MEvtLoop.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 1476)
@@ -292,5 +292,11 @@
 }
 
-void MEvtLoop::MakeMacro(const char *filename="evtloop.C")
+// --------------------------------------------------------------------------
+//
+//  After you setup (or read) an Evtloop you can use this to write the
+//  eventloop setup as a macro. The default name is "evtloop.C". The default
+//  extension is .C If the extension is not given, .C is added.
+//
+void MEvtLoop::MakeMacro(const char *filename)
 {
     TString name(filename);
Index: /trunk/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 1476)
@@ -354,5 +354,5 @@
 // gui elements to a macro-file.
 //
-void MParContainer::SavePrimitive(ofstream &out, Option_t *o="")
+void MParContainer::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   // SavePrimitive not overloaded... using default." << endl;
Index: /trunk/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 1476)
@@ -666,5 +666,5 @@
 // gui elements to a macro-file.
 //
-void MParList::SavePrimitive(ofstream &out, Option_t *o="")
+void MParList::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MParList " << ToLower(fName) << "(\"";
Index: /trunk/MagicSoft/Mars/mbase/MTask.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 1476)
@@ -269,5 +269,5 @@
 // gui elements to a macro-file.
 //
-void MTask::SavePrimitive(ofstream &out, Option_t *o="")
+void MTask::SavePrimitive(ofstream &out, Option_t *o)
 {
     MParContainer::SavePrimitive(out);
Index: /trunk/MagicSoft/Mars/mbase/MTaskList.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MTaskList.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mbase/MTaskList.cc	(revision 1476)
@@ -520,5 +520,5 @@
 // gui elements to a macro-file.
 //
-void MTaskList::SavePrimitive(ofstream &out, Option_t *o="")
+void MTaskList::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MTaskList " << ToLower(fName) << "(\"";
Index: /trunk/MagicSoft/Mars/mdata/MData.cc
===================================================================
--- /trunk/MagicSoft/Mars/mdata/MData.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mdata/MData.cc	(revision 1476)
@@ -60,5 +60,5 @@
 }
 
-void MData::Print(Option_t *opt = "") const
+void MData::Print(Option_t *opt) const
 {
     *fLog << GetRule() << flush;
Index: /trunk/MagicSoft/Mars/mfileio/MReadTree.cc
===================================================================
--- /trunk/MagicSoft/Mars/mfileio/MReadTree.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mfileio/MReadTree.cc	(revision 1476)
@@ -783,5 +783,5 @@
 // gui elements to a macro-file.
 //
-void MReadTree::SavePrimitive(ofstream &out, Option_t *o="")
+void MReadTree::SavePrimitive(ofstream &out, Option_t *o)
 {
     TString name = ToLower(fName);
Index: /trunk/MagicSoft/Mars/mfileio/MWriteRootFile.cc
===================================================================
--- /trunk/MagicSoft/Mars/mfileio/MWriteRootFile.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mfileio/MWriteRootFile.cc	(revision 1476)
@@ -403,5 +403,5 @@
 // gui elements to a macro-file.
 //
-void MWriteRootFile::SavePrimitive(ofstream &out, Option_t *o="")
+void MWriteRootFile::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MWriteRootFile " << ToLower(fName) << "(\"";
Index: /trunk/MagicSoft/Mars/mhist/MBinning.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MBinning.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mhist/MBinning.cc	(revision 1476)
@@ -70,5 +70,5 @@
 // gui elements to a macro-file.
 //
-void MBinning::SavePrimitive(ofstream &out, Option_t *o="")
+void MBinning::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   TArrayD dummy;" << endl;
Index: /trunk/MagicSoft/Mars/mhist/MFillH.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MFillH.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mhist/MFillH.cc	(revision 1476)
@@ -350,5 +350,5 @@
 // gui elements to a macro-file.
 //
-void MFillH::SavePrimitive(ofstream &out, Option_t *o="")
+void MFillH::SavePrimitive(ofstream &out, Option_t *o)
 {
     out << "   MFillH " << ToLower(fName) << "(\"";
Index: /trunk/MagicSoft/Mars/mhist/MH3.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MH3.cc	(revision 1475)
+++ /trunk/MagicSoft/Mars/mhist/MH3.cc	(revision 1476)
@@ -384,5 +384,5 @@
 // gui elements to a macro-file.
 //
-void MH3::SavePrimitive(ofstream &out, Option_t *o="")
+void MH3::SavePrimitive(ofstream &out, Option_t *o)
 {
     TString name = ToLower(fName);
Index: /trunk/WuerzburgSoft/Thomas/mphys/Changelog
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/Changelog	(revision 1475)
+++ /trunk/WuerzburgSoft/Thomas/mphys/Changelog	(revision 1476)
@@ -4,4 +4,11 @@
    * MCascade.[h,cc]:
      - doesn't overwrite existing files anymore
+     - removed redefinition of default argument
+
+   * MFit.cc:
+     - removed redefinition of default argument
+
+   * analp.C:
+     - added smearing
 
 
Index: /trunk/WuerzburgSoft/Thomas/mphys/MCascade.cc
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/MCascade.cc	(revision 1475)
+++ /trunk/WuerzburgSoft/Thomas/mphys/MCascade.cc	(revision 1476)
@@ -1,4 +1,5 @@
 #include "MCascade.h"
 
+#include <math.h>     // fabs, for alpha
 #include <iostream.h>
 
@@ -215,5 +216,4 @@
         return kFALSE;
     }
-    return kFALSE;
 }
 
Index: /trunk/WuerzburgSoft/Thomas/mphys/MFit.cc
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/MFit.cc	(revision 1475)
+++ /trunk/WuerzburgSoft/Thomas/mphys/MFit.cc	(revision 1476)
@@ -96,5 +96,5 @@
 }
 
-void MFit::SetHist(TH1 *h, Bool_t candelete=kFALSE)
+void MFit::SetHist(TH1 *h, Bool_t candelete)
 {
     DeleteH();
@@ -106,5 +106,5 @@
 }
 
-void MFit::Fit(Bool_t log=kFALSE)
+void MFit::Fit(Bool_t log)
 {
     fgBinMin = fHist->FindBin(fFunc->GetXmin()); // excluded
@@ -128,5 +128,5 @@
 }
 
-void MFit::Print(Option_t *opt="") const
+void MFit::Print(Option_t *opt) const
 {
     for (int i=0; i<fFunc->GetNpar(); i++)
@@ -159,5 +159,5 @@
 }
 
-TF1 *MFit::DrawCopy(Option_t *o="") const
+TF1 *MFit::DrawCopy(Option_t *o) const
 {
     return fFunc->DrawCopy(o);
Index: /trunk/WuerzburgSoft/Thomas/mphys/analp.C
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/analp.C	(revision 1475)
+++ /trunk/WuerzburgSoft/Thomas/mphys/analp.C	(revision 1476)
@@ -20,4 +20,31 @@
 #include "MFit.h"
 #include "MPhoton.h"
+
+TH1D Smear(const TH1 &h, Double_t sigma)
+{
+    TH1D ret;
+
+    MH::SetBinning((TH1*)&ret, (TH1*)&h);
+
+    Int_t n = h.GetNbinsX();
+
+    for (int i=1; i<=n; i++)
+    {
+        Double_t xi = sqrt(h.GetBinLowEdge(i+1)*h.GetBinLowEdge(i));
+        for (int j=1; j<=n; j++)
+        {
+            Double_t xj = sqrt(h.GetBinLowEdge(j+1)*h.GetBinLowEdge(j));
+
+            Double_t dx = log10(xj/xi)/sigma;
+
+            Double_t gaus = exp(-dx*dx/2)/(sigma*sqrt(TMath::Pi()*2));
+
+            gaus *= h.GetBinContent(i);
+
+            ret.Fill(xj, gaus/sqrt(n));
+        }
+    }
+    return ret;
+}
 
 void GetRange(TChain *chain, const char *name, Int_t &nbins, Double_t &min, Double_t &max, Double_t conv=1, Bool_t zero=kTRUE)
@@ -110,24 +137,38 @@
     // -------------------------------------------------------------------
 
+    TString dir = "~/data/";
+
     TChain chain("Photons");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_256_01.root");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_256_02.root");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_256_03.root");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_256_04.root");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_512_01.root");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_512_03.root");
-    chain.Add("cascade_0.1_18_1e2_1e5_B0_512_02.root");
     /*
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_3.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_4.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_5.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_6.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_7.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_8.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_256_9.root");
-
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_512_01.root");
-     chain.Add("cascade_0.03_18_1e2_1e5_B0_512_02.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_256_01.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_256_02.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_256_03.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_256_04.root");
+
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_512_01.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_512_02.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_512_03.root");
+     chain.Add(dir+"cascade_0.1_18_1e2_1e5_B0_512_05.root");
      */
+
+    //chain.Add(dir+"cascade_0.5_18_1e2_1e5_B0_512_01.root");
+    //chain.Add(dir+"cascade_0.5_18_1e2_1e5_B1e-7_10Mpc_512_01.root");
+    //chain.Add(dir+"cascade_0.5_18_1e2_1e5_B1e-7_50Mpc_512_01.root");
+    chain.Add(dir+"cascade_0.5_18_1e2_1e5_B1e-7_100Mpc_512_01.root");
+
+    //chain.Add(dir+"cascade_0.1_18_1e2_1e5_B1e-6_10Mpc_512_01.root");
+    //chain.Add(dir+"cascade_0.1_18_1e2_1e5_B1e-6_50Mpc_512_01.root");
+    //chain.Add(dir+"cascade_0.1_18_1e2_1e5_B1e-7_100Mpc_512_01.root");
+
+    /*
+     chain.Add(dir+"cascade_0.03_18_1e2_1e5_B0_512_01.root");
+     chain.Add(dir+"cascade_0.03_18_1e2_1e5_B0_512_02.root");
+     chain.Add(dir+"cascade_0.03_18_1e2_1e5_B0_512_03.root");
+     chain.Add(dir+"cascade_0.03_18_1e2_1e5_B0_512_04.root");
+     */
+
+    //chain.Add(dir+"cascade_0.03_18_1e2_1e5_B1e-6_10Mpc_512_01.root");
+    //chain.Add(dir+"cascade_0.03_18_1e2_1e5_B1e-6_50Mpc_512_01.root");
+    //chain.Add(dir+"cascade_0.03_18_1e2_1e5_B1e-7_100Mpc_512_01.root");
 
     Int_t nbinse = 18;      // number of bins in your histogram
@@ -273,6 +314,6 @@
         {
             h3.Fill(Ep, pow(Ep,plot) * weight);
-            r3.Fill(phi, 0, weight);
-            a3.Fill(psi, 0, weight);
+            r3.Fill(phi, 0.0, weight);
+            a3.Fill(psi, 0.0, weight);
             isprim = kFALSE;
             continue;
@@ -456,5 +497,5 @@
     // ----------------------------------------------------------------------
 
-  //  delete gROOT->FindObject("Analysis Photons");
+    //  delete gROOT->FindObject("Analysis Photons");
     c = MH::MakeDefCanvas("Analysis Photons", "", 580, 870);
     c->Divide(1,2);
@@ -463,34 +504,40 @@
     gPad->SetLogx();
     gPad->SetLogy();
+    h3.SetTitle(Form(" E^{%.1f}  Spectra @ z=%.1e (R=%.0fkpc) ", alpha, z, R));
+    h3.SetXTitle("E\\gamma [GeV]");
+    h3.SetYTitle(Form("E^{%.1f} * Counts", plot));
+    h3.GetXaxis()->SetLabelOffset(-0.015);
+    h3.GetXaxis()->SetTitleOffset(1.1);
+    h3.SetFillStyle(0);
+    h3.SetName("PrimPhotons");
+    h3.SetMarkerStyle(kFullCircle);
+    h3.SetMarkerColor(kRed);
+    h3.SetMarkerSize(0.8);
+    h3.SetLineColor(kRed);
+    h3.DrawCopy("C"); //E1
+
+    TH1D hs = Smear(h, 0.2);
+    hs.SetLineColor(kGreen);
+    hs.SetFillStyle(0);
+    hs.DrawCopy("Csame");
+
     h.SetFillStyle(0);
     h.SetName("Photons");
-    h.SetTitle(Form(" E^{%.1f}  Spectra ", alpha));
-    h.SetXTitle("E\\gamma [GeV]");
-    h.SetYTitle(Form("E^{%.1f} * Counts", plot));
-    h.GetXaxis()->SetLabelOffset(-0.015);
-    h.GetXaxis()->SetTitleOffset(1.1);
-    h.SetMarkerStyle(kPlus);
+    h.SetMarkerStyle(kFullCircle);
+    h.SetMarkerSize(0.8);
+    h.DrawCopy("Csame E4");
     prim.SetFillStyle(0);
     prim.SetMarkerStyle(kPlus);
     prim.SetMarkerColor(kRed);
     prim.SetLineColor(kRed);
-    TH1 &g1=*h.DrawCopy("P E4");
-    g2=prim.DrawCopy("Psame E0");
-    g2->Draw("Csame");
-    g1.Draw("Csame");
+    prim.SetMarkerSize(0.8);
+    prim.DrawCopy("Csame");
     h2.SetFillStyle(0);
     h2.SetName("SecPhotons");
-    h2.SetMarkerStyle(kMultiply);
+    h2.SetMarkerStyle(kFullCircle);
     h2.SetMarkerColor(kBlue);
+    h2.SetMarkerSize(0.8);
     h2.SetLineColor(kBlue);
-    TH1 &g3=*h2.DrawCopy("Psame E2");
-    g3.Draw("Csame");
-    h3.SetFillStyle(0);
-    h3.SetName("PrimPhotons");
-    h3.SetMarkerStyle(kMultiply);
-    h3.SetMarkerColor(kGreen);
-    h3.SetLineColor(kGreen);
-    TH1 &g4=*h3.DrawCopy("Psame E1");
-    g4.Draw("Csame");
+    h2.DrawCopy("Csame E4"); //E2
 
     draw1h1426(prim.GetBinContent(2),plot);
@@ -507,4 +554,5 @@
     div.SetXTitle("E\\gamma [GeV]");
     div.SetYTitle("Ratio");
+    div.SetMarkerStyle(kPlus);
     TH1 *gHist = div.DrawCopy("E4");
 
@@ -526,12 +574,12 @@
         }
     }
-    fit.SetParameter(0, "t", 750,  10, 1e5);
-    fit.SetParameter(1, "m", 0.5, 0.1,  10);
+    fit.SetParameter(0, "t", 750,   10, 1e5);
+    fit.SetParameter(1, "m", 0.5,  0.1,  10);
     fit.FitLog(gHist);
     fit.Print();
     fit.DrawCopy("same");
 
-    cout << "Cutoff:  " << setprecision(2) << fit[0]/1e3 << "TeV +- ";
-    cout << fit.GetParError(0) << endl;
+    cout << "Cutoff:  " << setprecision(2) << fit[0]/1e3 << " +- ";
+    cout << fit.GetParError(0)/1e3 << " TeV" << endl;
 
      // ----------------------------------------------------------------------
