Index: trunk/MagicSoft/Mars/mraw/MRawEvtData.cc
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawEvtData.cc	(revision 2404)
+++ trunk/MagicSoft/Mars/mraw/MRawEvtData.cc	(revision 2414)
@@ -215,9 +215,17 @@
 //     <index>      The pixel with the given index is drawn
 //
-void MRawEvtData::Draw(Option_t *opt)
+// Rem: DrawTS is the thread-safe version of Draw. In most cases
+//      you can use Draw instead
+//
+void MRawEvtData::DrawTS(TVirtualPad *pad=NULL, Option_t *opt="")
 {
     if (GetNumPixels()==0)
     {
         *fLog << warn << "Sorry, no pixel to draw!" << endl;
+        return;
+    }
+    if (!pad)
+    {
+        *fLog << warn << "MRawEvtData::DrawTS - No pad available..." << endl;
         return;
     }
@@ -238,5 +246,5 @@
     if (!pix.Jump(id))
     {
-        *fLog << warn << "Pixel Idx #" << id << " doesn't exist!" << endl;
+        *fLog << warn << "Pixel Idx #" << dec << id << " doesn't exist!" << endl;
         return;
     }
@@ -255,5 +263,5 @@
     if (str.BeginsWith("graph"))
     {
-        *fLog << inf << "Drawing Graph: Pixel Idx #" << pix.GetPixelId();
+        *fLog << inf << "Drawing Graph: Pixel Idx #" << dec << pix.GetPixelId();
         *fLog << " of " << (int)GetNumPixels() << "Pixels" << endl;
 
@@ -267,5 +275,5 @@
 
         graphhi->SetBit(kCanDelete);
-        graphhi->Draw(same ? "C*" : "AC*");
+        MParContainer::DrawTS(graphhi, pad, same ? "C*" : "AC*");
 
         TH1F *histhi = graphhi->GetHistogram();
@@ -286,5 +294,5 @@
 
             graphlo->SetBit(kCanDelete);
-            graphlo->Draw("C*");
+            MParContainer::DrawTS(graphlo, pad, "C*");
 
             TH1F *histlo = graphlo->GetHistogram();
@@ -300,5 +308,6 @@
     {
         // FIXME: Add Legend
-        *fLog << inf << "Drawing Histogram of Pixel with Idx #" << pix.GetPixelId() << endl;
+        *fLog << inf << "Drawing Histogram of Pixel with Idx #";
+        *fLog << dec << pix.GetPixelId() << endl;
 
         TH1F *histh = new TH1F(name, "FADC Samples", nh, -0.5, nh-.5);
@@ -309,5 +318,5 @@
             histh->Fill(i, higains[i]);
         histh->SetBit(kCanDelete);
-        histh->Draw(same ? "same" : "");
+        MParContainer::DrawTS(histh, pad, same ? "same" : "");
 
         if (nl>0)
@@ -319,5 +328,5 @@
                 histl->Fill(i, logains[i]);
             histl->SetBit(kCanDelete);
-            histl->Draw("same");
+            MParContainer::DrawTS(histl, pad, "same");
         }
         return;
@@ -516,2 +525,21 @@
     return kTRUE;
 }
+
+void MRawEvtData::Copy(TObject &named)
+#if ROOT_VERSION_CODE > ROOT_VERSION(3,04,01)
+const
+#endif
+{
+    MRawEvtData &evt = (MRawEvtData &)named;
+
+    *evt.fHiGainPixId = *fHiGainPixId;
+    *evt.fLoGainPixId = *fLoGainPixId;
+
+    *evt.fHiGainFadcSamples = *fHiGainFadcSamples;
+    *evt.fLoGainFadcSamples = *fLoGainFadcSamples;
+
+    evt.fPosInArray      = fPosInArray;
+    evt.fConnectedPixels = fConnectedPixels;
+    evt.fArraySize       = fArraySize;
+}
+
Index: trunk/MagicSoft/Mars/mraw/MRawEvtData.h
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawEvtData.h	(revision 2404)
+++ trunk/MagicSoft/Mars/mraw/MRawEvtData.h	(revision 2414)
@@ -24,9 +24,9 @@
     // FIXME: COMMENT ABOUT ORDERING
 
-    MArrayS *fHiGainPixId;        // list of pixel IDs of hi gain channel
-    MArrayB *fHiGainFadcSamples;  // list of hi gain samples of all pixels (ordering: see fHiGainPixId)
+    MArrayS *fHiGainPixId;        //-> list of pixel IDs of hi gain channel
+    MArrayB *fHiGainFadcSamples;  //-> list of hi gain samples of all pixels (ordering: see fHiGainPixId)
 
-    MArrayS *fLoGainPixId;        // list of pixel IDs of lo gain channel
-    MArrayB *fLoGainFadcSamples;  // list of lo gain samples of all pixels (ordering: see fLoGainPixId)
+    MArrayS *fLoGainPixId;        //-> list of pixel IDs of lo gain channel
+    MArrayB *fLoGainFadcSamples;  //-> list of lo gain samples of all pixels (ordering: see fLoGainPixId)
 
     Int_t fPosInArray;        //!
@@ -52,5 +52,10 @@
     void Clear(Option_t * = NULL);
     void Print(Option_t * = NULL) const;
-    void Draw (Option_t * = NULL);
+    void DrawTS(TVirtualPad *pad=NULL, Option_t *option="");
+    void Copy(TObject &named)
+#if ROOT_VERSION_CODE > ROOT_VERSION(3,04,01)
+const
+#endif
+        ;
 
     void DeletePixels(Bool_t flag=kFALSE);
@@ -65,9 +70,10 @@
 
     Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
-    void   DrawPixelContent(Int_t num) const
+    void   DrawPixelContent(Int_t num, TVirtualPad *pad=NULL) const
     {
         TString s("HIST");
         s += num;
-        const_cast<MRawEvtData*>(this)->Draw(s);
+        const_cast<MRawEvtData*>(this)->DrawTS(pad, s);
+        //const_cast<MRawEvtData*>(this)->Draw(s);
     }
 
