Index: trunk/Mars/mmc/MMcEvt.cxx
===================================================================
--- trunk/Mars/mmc/MMcEvt.cxx	(revision 19992)
+++ trunk/Mars/mmc/MMcEvt.cxx	(revision 19993)
@@ -18,5 +18,5 @@
 !   Author(s):
 !
-!   Copyright: MAGIC Software Development, 2000-2007
+!   Copyright: MAGIC Software Development, 2000-2020
 !
 !
@@ -127,13 +127,9 @@
 void MMcEvt::Clear(Option_t *opt)
 {
+    MMcEvtBasic::Clear();
+
     fRunNumber = 0;
 
-    fPartId = kUNDEFINED;
-    fEnergy = -1;
-
     fCoreD  =  0;
-    fCoreX  =  0;
-    fCoreY  =  0;
-    fImpact = -1;
 
     fPhotIni          = 0;
@@ -282,6 +278,4 @@
     if (!fin.SetRefAddress("MMcEvt.fZFirstInteraction", fZFirstInteraction))  return kFALSE;
     if (!fin.SetRefAddress("MMcEvt.fCoreD",             fCoreD            ))  return kFALSE;
-    if (!fin.SetRefAddress("MMcEvt.fCoreX",             fCoreX            ))  return kFALSE;
-    if (!fin.SetRefAddress("MMcEvt.fCoreY",             fCoreY            ))  return kFALSE;
     if (!fin.SetRefAddress("MMcEvt.fTimeFirst",         fTimeFirst        ))  return kFALSE;
     if (!fin.SetRefAddress("MMcEvt.fTimeLast",          fTimeLast         ))  return kFALSE;
@@ -310,4 +304,13 @@
             return kFALSE;
 
+    // Written to MmcEvtBasic for MMcEvt > V8
+    if (fin.HasColumn("MMcEvt.fCoreX"))
+        if (!fin.SetRefAddress("MMcEvt.fCoreX", fCoreX))
+            return kFALSE;
+
+    if (fin.HasColumn("MMcEvt.fCoreY"))
+        if (!fin.SetRefAddress("MMcEvt.fCoreY", fCoreY))
+            return kFALSE;
+
     return MMcEvtBasic::SetupFits(fin);
 }
Index: trunk/Mars/mmc/MMcEvt.hxx
===================================================================
--- trunk/Mars/mmc/MMcEvt.hxx	(revision 19992)
+++ trunk/Mars/mmc/MMcEvt.hxx	(revision 19993)
@@ -70,7 +70,4 @@
     UInt_t  GetEvtNumber() const { return fEvtNumber; }  //Get Event Number
 
-    Float_t GetCoreX() const { return fCoreX; }          //Get Core x pos
-    Float_t GetCoreY() const { return fCoreY; }          //Get Core y pos
-
     UInt_t  GetPhotIni() const { return fPhotIni; }           //Get Initial photons
     UInt_t  GetPassPhotAtm() const { return fPassPhotAtm;}    //Get Passed atmosphere
@@ -99,6 +96,4 @@
     // Setter
     void SetCoreD(Float_t CoreD) { fCoreD=CoreD; }                //Set Core d pos
-    void SetCoreX(Float_t CoreX) { fCoreX=CoreX; }                //Set Core x pos
-    void SetCoreY(Float_t CoreY) { fCoreY=CoreY; }                //Set Core y pos
 
     void SetRunNumber(UInt_t n) { fRunNumber=n; }
Index: trunk/Mars/mmc/MMcEvtBasic.cc
===================================================================
--- trunk/Mars/mmc/MMcEvtBasic.cc	(revision 19992)
+++ trunk/Mars/mmc/MMcEvtBasic.cc	(revision 19993)
@@ -18,5 +18,5 @@
 !   Author(s): Abelardo Moralejo, 02/2005 <mailto:moralejo@pd.infn.it>
 !
-!   Copyright: MAGIC Software Development, 2000-2005
+!   Copyright: MAGIC Software Development, 2000-2020
 !
 !
@@ -93,5 +93,5 @@
                          Float_t fImpa, Float_t fTPhii, Float_t fTThet)
    : fPartId(usPId), fEnergy(fEner), fImpact(fImpa),
-     fTelescopePhi(fTPhii), fTelescopeTheta(fTThet), fTheta(0), fPhi(0)
+     fTelescopePhi(fTPhii), fTelescopeTheta(fTThet), fTheta(0), fPhi(0), fCoreX(0), fCoreY(0)
 {
     fName  = "MMcEvtBasic";
@@ -112,4 +112,6 @@
     fPhi            = evt.fPhi;
     fTheta          = evt.fTheta;
+    fCoreX          = evt.fCoreX;
+    fCoreY          = evt.fCoreY;
 }
 
@@ -130,4 +132,7 @@
     fTheta          = 0;
     fPhi            = 0;
+
+    fCoreX          = 0;
+    fCoreY          = 0;
 }
 
@@ -237,5 +242,5 @@
         *fLog << "Energy: " << fEnergy << "GeV" << endl;
     if (str.Contains("impact", TString::kIgnoreCase))
-        *fLog << "Impact: " << fImpact << "cm" << endl;
+        *fLog << "Impact: " << fImpact << "cm [x=" << fCoreX << ", y=" << fCoreY << "]" << endl;
 }
 
@@ -256,4 +261,13 @@
     if (!fin.SetRefAddress("MMcEvtBasic.fPhi",            fPhi           ))  return kFALSE;
 
+    // Written to MMcEvt for MMcEvtBasic < V4
+    if (fin.HasColumn("MMcEvtBasic.fCoreX"))
+        if (!fin.SetRefAddress("MMcEvtBasic.fCoreX", fCoreX))
+            return kFALSE;
+
+    if (fin.HasColumn("MMcEvtBasic.fCoreY"))
+        if (!fin.SetRefAddress("MMcEvtBasic.fCoreY", fCoreY))
+            return kFALSE;
+
     return kTRUE;
 }
Index: trunk/Mars/mmc/MMcEvtBasic.h
===================================================================
--- trunk/Mars/mmc/MMcEvtBasic.h	(revision 19992)
+++ trunk/Mars/mmc/MMcEvtBasic.h	(revision 19993)
@@ -63,4 +63,7 @@
   //Float_t GetPhi() const { return fPhi ;  }
 
+  Float_t GetCoreX() const { return fCoreX; }          //Get Core x pos
+  Float_t GetCoreY() const { return fCoreY; }          //Get Core y pos
+
   static TString GetParticleName(Int_t id);
   static TString GetParticleSymbol(Int_t id);
@@ -96,4 +99,7 @@
   //void SetPhi(Float_t Phi)     { fPhi=Phi;  }                   //Set Phi angle
 
+  void SetCoreX(Float_t CoreX) { fCoreX=CoreX; }                //Set Core x pos
+  void SetCoreY(Float_t CoreY) { fCoreY=CoreY; }                //Set Core y pos
+
   void Fill(ParticleId_t, Float_t, Float_t, Float_t, Float_t);
 
