Index: trunk/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/Mars/mhist/MHCamera.cc	(revision 13387)
+++ trunk/Mars/mhist/MHCamera.cc	(revision 13388)
@@ -644,47 +644,4 @@
 // ------------------------------------------------------------------------
 //
-// This is TObject::DrawClone but completely ignores
-// gROOT->GetSelectedPad(). tbretz had trouble with this in the past.
-// If this makes trouble please write a bug report.
-//
-TObject *MHCamera::DrawClone(Option_t *option) const 
-{
-    return TObject::Clone();
-
-   // Draw a clone of this object in the current pad
-
-   //TVirtualPad *pad = gROOT->GetSelectedPad();
-   TVirtualPad *padsav = gPad;
-   //if (pad) pad->cd();
-
-   TObject *newobj = Clone();
-
-   if (!newobj)
-       return 0;
-
-   /*
-   if (pad) {
-      if (strlen(option)) pad->GetListOfPrimitives()->Add(newobj,option);
-      else                pad->GetListOfPrimitives()->Add(newobj,GetDrawOption());
-      pad->Modified(kTRUE);
-      pad->Update();
-      if (padsav) padsav->cd();
-      return newobj;
-   }
-   */
-
-   TString opt(option);
-   opt.ToLower();
-
-   newobj->Draw(opt.IsNull() ? GetDrawOption() : option);
-
-   if (padsav)
-       padsav->cd();
-
-   return newobj;
-}
-
-// ------------------------------------------------------------------------
-//
 // Creates a TH1D which contains the projection of the contents of the
 // MHCamera onto the y-axis. The maximum and minimum are calculated
@@ -1427,5 +1384,5 @@
 // ------------------------------------------------------------------------
 //
-void MHCamera::AddCamDifference(const MCamEvent &event1, const MCamEvent &event2, Int_t type)
+void MHCamera::AddCamDifference(const MCamEvent &event1, const MCamEvent &event2, Int_t type, Stat_t weight)
 {
     if (fNcells<=1 || IsFreezed())
@@ -1444,5 +1401,32 @@
 
         SetUsed(idx);
-        Fill(idx, val1-val2); // FIXME: Slow!
+        Fill(idx, (val1-val2)*weight); // FIXME: Slow!
+    }
+    fEntries++;
+}
+
+// ------------------------------------------------------------------------
+//
+void MHCamera::AddCamRatio(const MCamEvent &event1, const MCamEvent &event2, Int_t type, Stat_t weight)
+{
+    if (fNcells<=1 || IsFreezed())
+        return;
+
+    // FIXME: Security check missing!
+    for (Int_t idx=0; idx<fNcells-2; idx++)
+    {
+        Double_t val1=0;
+        if (!event1.GetPixelContent(val1, idx, *fGeomCam, type))
+            continue;
+
+        Double_t val2=0;
+        if (!event2.GetPixelContent(val2, idx, *fGeomCam, type))
+            continue;
+
+        if (val2==0)
+            continue;
+
+        SetUsed(idx);
+        Fill(idx, weight*val1/val2); // FIXME: Slow!
     }
     fEntries++;
@@ -2234,10 +2218,4 @@
     return fGeomCam ? fGeomCam->GetNumPixels() : 0;
 }
-
-TH1 *MHCamera::DrawCopy() const
-{
-    gPad=NULL;
-    return TH1D::DrawCopy(fName+";cpy");
-} 
 
 // --------------------------------------------------------------------------
Index: trunk/Mars/mhist/MHCamera.h
===================================================================
--- trunk/Mars/mhist/MHCamera.h	(revision 13387)
+++ trunk/Mars/mhist/MHCamera.h	(revision 13388)
@@ -163,5 +163,6 @@
 
     virtual Double_t GetPixContent(Int_t idx) const { return GetBinContent(idx+1); }
-    virtual void     AddCamDifference(const MCamEvent &evt, const MCamEvent &evt2, Int_t type=0);
+    virtual void     AddCamDifference(const MCamEvent &evt, const MCamEvent &evt2, Int_t type=0, Stat_t weight=1);
+    virtual void     AddCamRatio(const MCamEvent &evt, const MCamEvent &evt2, Int_t type=0, Stat_t weight=1);
     virtual void     AddCamContent(const MCamEvent &evt, Int_t type=0, Stat_t weight=1);
     virtual void     AddCamContent(const MHCamera &evt, Int_t type=0);
@@ -226,11 +227,8 @@
     void     Reset(Option_t *);
     void     Reset() { Reset(""); } // *MENU*
-    TH1     *DrawCopy() const/* { gPad=NULL; return TH1D::DrawCopy(); }*/; // *MENU*
-    TH1     *DrawCopy(Option_t *o) const { return TH1D::DrawCopy(o); }
 
     void     Print(Option_t *) const;
     void     Paint(Option_t *option="");
     void     Draw(Option_t *option="");
-    TObject *DrawClone(Option_t *option="") const;
     void     DrawProjection (Int_t fit=0) const;
     void     DrawRadialProfile()           const;
