Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 7251)
+++ trunk/MagicSoft/Mars/Changelog	(revision 7252)
@@ -37,4 +37,12 @@
      - repleced maximum deviation (45) in first muon cut by 35
        it is done anyhow in a later step and doesn't change in between
+
+   * datacenter/macros/fillstar.C:
+     - now get muon data from MHMuonPar directly
+
+   * mmuon/MHMuonPar.[h,cc]:
+     - implemented the function to get the reference values
+     - updated psf reference line
+     - implemented calib reference line
 
 
Index: trunk/MagicSoft/Mars/datacenter/macros/fillstar.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/fillstar.C	(revision 7251)
+++ trunk/MagicSoft/Mars/datacenter/macros/fillstar.C	(revision 7252)
@@ -105,51 +105,19 @@
     }
 
-    TProfile *h1 = (TProfile*)arr.FindObjectInCanvas("RingBroadening", "TProfile", "MHMuonPar");
-    if (!h1)
-    {
-        cout << "WARNING - Reading of RingBroadening failed." << endl;
-        return 0;
-    }
-
-    Float_t numerator = 0;
-    Float_t denominator = 0;
-    Float_t summe = 0;
-
-    for(Int_t i=5; i<15; i++)
-    {
-        numerator   += h1->GetBinContent(i)*h1->GetBinEntries(i);
-        denominator += h1->GetBinEntries(i);
-    }
-
-    summe = numerator/denominator;
-
-    Float_t psf = (summe - 0.04816)/0.001294;
+    MHMuonPar *hmuon = (TProfile*)arr.FindObjectInCanvas("MHMuonPar", "MHMuonPar", "MHMuonPar");
+    if (!hmuon)
+    {
+        cout << "WARNING - Reading of MHMuon failed." << endl;
+        return 0;
+    }
+
+    Float_t psf   = (muon->GetMeanWidth() - 0.04816)/0.001294;
     psf = TMath::Nint(psf*10)/10.;
     TString PSF = Form("%5.1f", psf);
-    Int_t   num = (int)h1->GetEntries();
-
-    TProfile *h2 = (TProfile*)arr.FindObjectInCanvas("SizeVsRadius", "TProfile", "MHMuonPar");
-    if (!h1)
-    {
-        cout << "WARNING - Reading of SizeVsRadius failed." << endl;
-        return 0;
-    }
-
-    numerator = 0;
-    denominator = 0;
-    summe = 0;
-
-    for(Int_t i=5; i<15; i++)
-    {
-        numerator   += h2->GetBinContent(i)*h2->GetBinEntries(i);
-        denominator += h2->GetBinEntries(i);
-    }
-
-    summe = numerator/denominator;
+    Int_t   num = (int)muon.GetEntries();
 
     Float_t integralmc = -1.43*psf + 1035;
-    Float_t ratiodatamc = (summe/integralmc)*100;
+    Float_t ratiodatamc = (muon->GetMeanSize()/integralmc)*100;
     TString ratio = Form("%5.1f", ratiodatamc);
-
 
     TH1 *h = (TH1*)arr.FindObjectInCanvas("Islands", "TH1F", "MHImagePar");
Index: trunk/MagicSoft/Mars/mjobs/MJStar.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJStar.cc	(revision 7251)
+++ trunk/MagicSoft/Mars/mjobs/MJStar.cc	(revision 7252)
@@ -357,6 +357,6 @@
     MF fmuon1("MHillas.fSize>150", "MuonPreCut");
     MF fmuon2("(MMuonSearchPar.fRadius>180) && (MMuonSearchPar.fRadius<400) &&"
-              "(MMuonSearchPar.fDeviation<45)", "MuonSearchCut");
-    MF fmuon3("(MMuonCalibPar.fArcPhi>190)  && (MMuonSearchPar.fDeviation<35) &&"
+              "(MMuonSearchPar.fDeviation<35)", "MuonSearchCut");
+    MF fmuon3("(MMuonCalibPar.fArcPhi>190) &&"
               "(MMuonCalibPar.fArcWidth<0.20) && (MMuonCalibPar.fArcWidth>0.04)",
               "MuonFinalCut");
Index: trunk/MagicSoft/Mars/mmuon/MHMuonPar.cc
===================================================================
--- trunk/MagicSoft/Mars/mmuon/MHMuonPar.cc	(revision 7251)
+++ trunk/MagicSoft/Mars/mmuon/MHMuonPar.cc	(revision 7252)
@@ -65,4 +65,7 @@
 using namespace std;
 
+const Float_t MHMuonPar::fgIntegralLoLim = 0.7;
+const Float_t MHMuonPar::fgIntegralUpLim = 1.2;
+
 // --------------------------------------------------------------------------
 //
@@ -79,4 +82,5 @@
     fHistRadius.SetXTitle("R [\\circ]");
     fHistRadius.SetYTitle("Counts");
+    fHistRadius.GetXaxis()->SetTitleOffset(1.2);
     fHistRadius.SetDirectory(NULL);
     fHistRadius.UseCurrentStyle();
@@ -86,4 +90,5 @@
     fHistArcWidth.SetTitle("Distribution of ArcWidth");
     fHistArcWidth.SetXTitle("W [\\circ]");
+    fHistArcWidth.GetXaxis()->SetTitleOffset(1.2);
     fHistArcWidth.SetYTitle("Counts");
     fHistArcWidth.SetDirectory(NULL);
@@ -95,4 +100,5 @@
     fHistBroad.SetXTitle("R [\\circ]");
     fHistBroad.SetYTitle("W/R [1]");
+    fHistBroad.GetXaxis()->SetTitleOffset(1.2);
     fHistBroad.SetDirectory(NULL);
     fHistBroad.UseCurrentStyle();
@@ -103,4 +109,5 @@
     fHistSize.SetXTitle("R [\\circ]");
     fHistSize.SetYTitle("S [phe]");
+    fHistSize.GetXaxis()->SetTitleOffset(1.2);
     fHistSize.SetDirectory(NULL);
     fHistSize.UseCurrentStyle();
@@ -204,31 +211,60 @@
     fHistSize.Draw();
 
-    AppendPad("pad3");
-
-    pad->cd(4);
-    gPad->SetBorderMode(0);
-    fHistBroad.Draw();
-
-    TF1 ref("RefShape", "0.112*x*x - 0.413*x + 0.404", 0.7, 1.2);
+    TText txt;
+    txt.SetTextColor(kBlue);
+
+    TF1 ref("RefShape100%", "573*x + 430", fgIntegralLoLim, fgIntegralUpLim);
     ref.SetLineColor(kBlue);
     ref.SetLineWidth(1);
     ref.SetLineStyle(kDashed);
-    ref.DrawCopy("same");
+    gROOT->GetListOfFunctions()->Remove(ref.DrawCopy("same"));
+
+    txt.SetTextAlign(31);
+    txt.DrawText(fgIntegralLoLim, ref.Eval(fgIntegralLoLim+0.05), "100%");
+
+    AppendPad("pad3");
+
+    pad->cd(4);
+    gPad->SetBorderMode(0);
+    fHistBroad.Draw();
+
+    ref.SetName("RefShape12mm");
+    ref.Compile("0.0766*x*x - 0.250*x + 0.239");
+    gROOT->GetListOfFunctions()->Remove(ref.DrawCopy("same"));
+
+    txt.SetTextAlign(11);
+    txt.DrawText(fgIntegralLoLim, ref.Eval(fgIntegralLoLim-0.05), "12mm");
 
     AppendPad("pad4");
 }
 
+Double_t MHMuonPar::Integral(const TProfile &p, Int_t a, Int_t b) const
+{
+    Float_t numerator   = 0;
+    Float_t denominator = 0;
+
+    for (Int_t i=a; i<b; i++)
+    {
+        numerator   += p.GetBinContent(i)*p.GetBinEntries(i);
+        denominator += p.GetBinEntries(i);
+    }
+
+    return denominator==0 ? 0 : numerator/denominator;
+}
+
+Double_t MHMuonPar::Integral(const TProfile &p, Float_t a, Float_t b) const
+{
+    const Int_t bin1 = p.GetXaxis()->FindFixBin(a);
+    const Int_t bin2 = p.GetXaxis()->FindFixBin(b);
+
+    return Integral(p, bin1, bin2);
+}
+
 void MHMuonPar::Paint(Option_t *opt)
 {
     if (TString(opt)==TString("pad4"))
     {
-        const Double_t lolim = 0.7;
-        const Double_t uplim = 1.2;
-
-        const Int_t bin1 = fHistBroad.GetXaxis()->FindFixBin(lolim);
-        const Int_t bin2 = fHistBroad.GetXaxis()->FindFixBin(uplim);
-
-        const TString txt = Form("\\Sigma_{%.2f\\circ}^{%.2f\\circ} = %.3f", lolim,
-                                 uplim, fHistBroad.Integral(bin1, bin2));
+        const TString txt = Form("\\Sigma_{%.2f\\circ}^{%.2f\\circ} = %.3f",
+                                 fgIntegralLoLim, fgIntegralUpLim, Integral(fHistBroad));
 
         TLatex text(0.57, 0.93, txt);
@@ -240,12 +276,6 @@
     if (TString(opt)==TString("pad3"))
     {
-        const Double_t lolim = 0.7;
-        const Double_t uplim = 1.2;
-
-        const Int_t bin1 = fHistSize.GetXaxis()->FindFixBin(lolim);
-        const Int_t bin2 = fHistSize.GetXaxis()->FindFixBin(uplim);
-
-        const TString txt = Form("\\Sigma_{%.2f\\circ}^{%.2f\\circ} = %.f", lolim,
-                                 uplim, fHistSize.Integral(bin1, bin2));
+        const TString txt = Form("\\Sigma_{%.2f\\circ}^{%.2f\\circ} = %.f",
+                                 fgIntegralLoLim, fgIntegralUpLim, Integral(fHistSize));
 
         TLatex text(0.47, 0.93, txt);
Index: trunk/MagicSoft/Mars/mmuon/MHMuonPar.h
===================================================================
--- trunk/MagicSoft/Mars/mmuon/MHMuonPar.h	(revision 7251)
+++ trunk/MagicSoft/Mars/mmuon/MHMuonPar.h	(revision 7252)
@@ -19,14 +19,20 @@
 {
 private:
-    TH1F     fHistRadius;    // Radius
-    TH1F     fHistArcWidth;  // ArcWidth
-
-    TProfile fHistBroad;     // ArcWidth/Radius Vs Radius
-    TProfile fHistSize;      // MuonSize Vs Radius
+    static const Float_t  fgIntegralLoLim; // lower limit of integral
+    static const Float_t  fgIntegralUpLim; // upper limit of integral
 
     MMuonSearchPar *fMuonSearchPar; //!
     MMuonCalibPar  *fMuonCalibPar;  //!
 
+    TH1F     fHistRadius;     // Radius
+    TH1F     fHistArcWidth;   // ArcWidth
+
+    TProfile fHistBroad;      // ArcWidth/Radius Vs Radius
+    TProfile fHistSize;       // MuonSize Vs Radius
+
     Float_t fMm2Deg;
+
+    Double_t Integral(const TProfile &p, Int_t a, Int_t b) const;
+    Double_t Integral(const TProfile &p, Float_t a=fgIntegralLoLim, Float_t b=fgIntegralUpLim) const;
 
 public:
@@ -41,4 +47,8 @@
     const TProfile& GetHistSize() const      { return fHistSize; }
 
+    Double_t GetMeanSize() const  { return Integral(fHistSize);     }
+    Double_t GetMeanWidth() const { return Integral(fHistBroad);    }
+    Stat_t   GetEntries() const   { return fHistBroad.GetEntries(); }
+
     void Draw(Option_t *opt="");
     void Paint(Option_t *opt="");
