Index: trunk/MagicSoft/Mars/msignal/MArrivalTimePix.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MArrivalTimePix.h	(revision 7816)
+++ trunk/MagicSoft/Mars/msignal/MArrivalTimePix.h	(revision 7829)
@@ -22,4 +22,16 @@
     void Clear(Option_t *o="");
     void Print(Option_t *o="") const;
+    void Copy(TObject &obj) const
+    {
+        MArrivalTimePix &pix = static_cast<MArrivalTimePix&>(obj);
+
+        pix.fArrivalTimeHiGain      = fArrivalTimeHiGain;
+        pix.fArrivalTimeHiGainError = fArrivalTimeHiGainError;
+        pix.fArrivalTimeLoGain      = fArrivalTimeLoGain;
+        pix.fArrivalTimeLoGainError = fArrivalTimeLoGainError;
+
+        pix.fNumHiGainSaturated     = fNumHiGainSaturated;
+        pix.fNumLoGainSaturated     = fNumLoGainSaturated;
+    }
 
     // Setter
Index: trunk/MagicSoft/Mars/msignal/MExtractedSignalPix.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractedSignalPix.cc	(revision 7816)
+++ trunk/MagicSoft/Mars/msignal/MExtractedSignalPix.cc	(revision 7829)
@@ -62,5 +62,4 @@
 
   Clear();
-  
 }
 
@@ -81,5 +80,5 @@
 }
 
-void MExtractedSignalPix::SetExtractedSignal(Float_t sig, Float_t sigerr)   
+void MExtractedSignalPix::SetExtractedSignal(Float_t sig, Float_t sigerr)
 {
   fExtractedSignalHiGain      = sig; 
Index: trunk/MagicSoft/Mars/msignal/MSignalPix.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MSignalPix.cc	(revision 7816)
+++ trunk/MagicSoft/Mars/msignal/MSignalPix.cc	(revision 7829)
@@ -88,9 +88,10 @@
 void MSignalPix::Clear(Option_t *o)
 {
-    fIsCore    =  kFALSE;
-    fRing      =  1;
-    fIdxIsland = -1;
-    fPhot      =  0;
-    fErrPhot   =  0;
+    fIsCore     = kFALSE;
+    fRing       =  1;
+    fIdxIsland  = -1;
+    fPhot       =  0;
+    fErrPhot    =  0;
+    fLoGainUsed = kFALSE;
 }
 
Index: trunk/MagicSoft/Mars/msignal/MSignalPix.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MSignalPix.h	(revision 7816)
+++ trunk/MagicSoft/Mars/msignal/MSignalPix.h	(revision 7829)
@@ -20,4 +20,6 @@
     Float_t  fArrivalTime;   // Calibrated Arrival Time
 
+    Bool_t   fLoGainUsed;      //! Is lo gain used
+
 public:
     MSignalPix(Float_t phot=0, Float_t errphot=0);
@@ -32,35 +34,37 @@
         pix.fPhot       = fPhot;
         pix.fErrPhot    = fErrPhot;
+        pix.fLoGainUsed = fLoGainUsed;
     }
 
-    Float_t GetNumPhotons() const       { return fPhot;    }
-    Float_t GetErrorPhot() const        { return fErrPhot; }
-    Float_t GetArrivalTime() const      { return fArrivalTime; }
-    
-    Bool_t  IsPixelUsed() const         { return fRing>0; }
-    Bool_t  IsPixelUnmapped() const     { return fRing==-1; }
-    void    SetPixelUnused()            { fRing=0;  }
-    void    SetPixelUsed()              { fRing=1;  }
-    void    SetPixelUnmapped()          { fRing=-1; }
-    void    SetIdxIsland(Short_t num)   { fIdxIsland=num; }
-    Short_t GetIdxIsland() const        { return fIdxIsland; }
+    Float_t GetNumPhotons() const         { return fPhot;    }
+    Float_t GetErrorPhot() const          { return fErrPhot; }
+    Float_t GetArrivalTime() const        { return fArrivalTime; }
 
-    void    SetRing(UShort_t r)         { fRing = r;   }
-    Short_t GetRing() const             { return fRing;}
+    Bool_t  IsPixelUsed() const           { return fRing>0; }
+    Bool_t  IsPixelUnmapped() const       { return fRing==-1; }
+    void    SetPixelUnused()              { fRing=0;  }
+    void    SetPixelUsed()                { fRing=1;  }
+    void    SetPixelUnmapped()            { fRing=-1; }
+    void    SetIdxIsland(Short_t num)     { fIdxIsland=num; }
+    Short_t GetIdxIsland() const          { return fIdxIsland; }
 
-    void    SetPixelCore(Bool_t b=kTRUE){ fIsCore = b; }
-    Bool_t  IsPixelCore() const         { return fIsCore;  }
+    void    SetRing(UShort_t r)           { fRing = r;   }
+    Short_t GetRing() const               { return fRing;}
 
-    void    SetNumPhotons(Float_t f)    { MMath::ReducePrecision(f); fPhot    = f; }
-    void    SetErrorPhot(Float_t f)     { MMath::ReducePrecision(f); fErrPhot = f; }
-    void    Set(Float_t np, Float_t ep) { MMath::ReducePrecision(np); MMath::ReducePrecision(ep);  fPhot = np; fErrPhot = ep; }
-    void    SetArrivalTime(Float_t tm)  { MMath::ReducePrecision(tm); fArrivalTime = tm; }
+    void    SetPixelCore(Bool_t b=kTRUE)  { fIsCore = b; }
+    Bool_t  IsPixelCore() const           { return fIsCore;  }
 
-    void    AddNumPhotons(Float_t f)    { fPhot += f; }
+    void    SetNumPhotons(Float_t f)      { MMath::ReducePrecision(f); fPhot    = f; }
+    void    SetErrorPhot(Float_t f)       { MMath::ReducePrecision(f); fErrPhot = f; }
+    void    Set(Float_t np, Float_t ep)   { MMath::ReducePrecision(np); MMath::ReducePrecision(ep);  fPhot = np; fErrPhot = ep; }
+    void    SetArrivalTime(Float_t tm)    { MMath::ReducePrecision(tm); fArrivalTime = tm; }
 
-    void    Scale(Float_t f)            { fPhot/=f; }
+    void    SetLoGainUsed(Bool_t b=kTRUE) { fLoGainUsed=b;      }
+    Bool_t  IsLoGainUsed() const          { return fLoGainUsed; }
+
+    void    AddNumPhotons(Float_t f)      { fPhot += f; }
+    void    Scale(Float_t f)              { fPhot /= f; }
 
     void    Print(Option_t *opt = NULL) const;
-    Bool_t  IsSortable() const { return kTRUE; }
 
     ClassDef(MSignalPix, 7)  // class containing information about the Cerenkov Photons in a pixel
