Index: trunk/MagicSoft/Mars/mmuon/MHMuonPar.cc
===================================================================
--- trunk/MagicSoft/Mars/mmuon/MHMuonPar.cc	(revision 7225)
+++ 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 7225)
+++ 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="");
