Index: branches/Mars_McMismatchStudy/fact/analysis/mc/ganymed.C
===================================================================
--- branches/Mars_McMismatchStudy/fact/analysis/mc/ganymed.C	(revision 18101)
+++ branches/Mars_McMismatchStudy/fact/analysis/mc/ganymed.C	(revision 18102)
@@ -23,6 +23,7 @@
     write->AddContainer("MTime",          "Events", kFALSE);
     write->AddContainer("MMcEvt",         "Events", kFALSE);
-    //write->AddContainer("MEnergyEst",     "Events", kFALSE);
     //write->AddContainer("MEnergyTable",   "Events", kFALSE);
+    //write->AddContainer("ScaledLength",   "Events", kFALSE);
+    //write->AddContainer("ScaledWidth",   "Events", kFALSE);
     write->AddContainer("DataType",       "Events");
     write->AddContainer("Weight",         "Events");
Index: branches/Mars_McMismatchStudy/manalysis/MEnergyTable.cc
===================================================================
--- branches/Mars_McMismatchStudy/manalysis/MEnergyTable.cc	(revision 18101)
+++ branches/Mars_McMismatchStudy/manalysis/MEnergyTable.cc	(revision 18102)
@@ -68,6 +68,10 @@
     fNameMC = "MMcEvt";
     fNamePoint = "MPointingPos";
+
     //fNameParameter = "MParameterD";
-    fNameParameter = "MEnergyTable";
+
+    fNameParameter  = "MEnergyTable";
+    fNameParameterL = "ScaledLength";
+    fNameParameterW = "ScaledWidth";
 
     SetNameParameter("MEnergyTable");
@@ -85,4 +89,6 @@
     delete fHillas;
     delete fParameter;
+    delete fParameterL;
+    delete fParameterW;
     delete fPointing;
 
@@ -108,4 +114,12 @@
     fParameter = (MParameterD*)pList->FindCreateObj("MParameterD", fNameParameter);
     if (!fParameter)
+        return kFALSE;
+
+    fParameterW = (MParameterD*)pList->FindCreateObj("MParameterD", fNameParameterW);
+    if (!fParameterW)
+        return kFALSE;
+
+    fParameterL = (MParameterD*)pList->FindCreateObj("MParameterD", fNameParameterL);
+    if (!fParameterL)
         return kFALSE;
 
@@ -141,8 +155,17 @@
     iY = hEnergy[iZenith][0]->GetYaxis()->FindBin(fDist);
     fEnergy1 = hEnergy[iZenith][0]->GetBinContent(iX,iY);
+    fLength1 = hLength[iZenith][0]->GetBinContent(iX,iY);
+    fLengthSigma1 = hLength[iZenith][0]->GetBinContent(iX,iY);
+    fWidth1 = hLength[iZenith][0]->GetBinContent(iX,iY);
+    fWidthSigma1 = hLength[iZenith][0]->GetBinContent(iX,iY);
+
 
     iX = hEnergy[iZenith+1][0]->GetXaxis()->FindBin(log10(fSize));
     iY = hEnergy[iZenith+1][0]->GetYaxis()->FindBin(fDist);
     fEnergy2 = hEnergy[iZenith+1][0]->GetBinContent(iX,iY);
+    fLength2 = hLength[iZenith+1][0]->GetBinContent(iX,iY);
+    fLengthSigma2 = hLength[iZenith+1][0]->GetBinContent(iX,iY);
+    fWidth2 = hLength[iZenith+1][0]->GetBinContent(iX,iY);
+    fWidthSigma2 = hLength[iZenith+1][0]->GetBinContent(iX,iY);
 
     fEnergyRecon = fEnergy2-fEnergy1;
@@ -151,8 +174,38 @@
     fEnergyRecon += fEnergy1;
 
+    fLength = fLength2-fLength1;
+    fLength /= cos(D2R*iZen[iZenith+1]) - cos(D2R*iZen[iZenith]);
+    fLength *= cos(D2R*fZenith) - cos(D2R*iZen[iZenith]);
+    fLength += fLength1;
+
+    fLengthSigma = fLengthSigma2-fLengthSigma1;
+    fLengthSigma /= cos(D2R*iZen[iZenith+1]) - cos(D2R*iZen[iZenith]);
+    fLengthSigma *= cos(D2R*fZenith) - cos(D2R*iZen[iZenith]);
+    fLengthSigma += fLengthSigma1;
+
+    fWidth = fWidth2-fWidth1;
+    fWidth /= cos(D2R*iZen[iZenith+1]) - cos(D2R*iZen[iZenith]);
+    fWidth *= cos(D2R*fZenith) - cos(D2R*iZen[iZenith]);
+    fWidth += fWidth1;
+
+    fWidthSigma = fWidthSigma2-fWidthSigma1;
+    fWidthSigma /= cos(D2R*iZen[iZenith+1]) - cos(D2R*iZen[iZenith]);
+    fWidthSigma *= cos(D2R*fZenith) - cos(D2R*iZen[iZenith]);
+    fWidthSigma += fWidthSigma1;
+
+
+    RSW = (fHillas->GetWidth()-fWidth)/fWidthSigma;
+    RSL = (fHillas->GetLength()-fLength)/fLengthSigma;
+
   } 
 
    fParameter->SetVal(fEnergyRecon);
    fParameter->SetReadyToSave();
+
+   fParameterW->SetVal(RSW);
+   fParameterW->SetReadyToSave();
+   fParameterL->SetVal(RSL);
+   fParameterL->SetReadyToSave();
+
    return kTRUE;
 
@@ -182,11 +235,23 @@
      for( int j = 0; j < 3; j++ )
      {
+
         sprintf(sHistDir,"z%.2d/t%.2d",iZen[i],iThr[j]);
         sprintf(sHistName,"z%.2d/t%.2d/hEnergyAverage_%.2d_%.2d",iZen[i],iThr[j],iZen[i],iThr[j]);
+        sprintf(sHistNameL,"z%.2d/t%.2d/hLengthAverage_%.2d_%.2d",iZen[i],iThr[j],iZen[i],iThr[j]);
+        sprintf(sHistNameLS,"z%.2d/t%.2d/hLengthSigma_%.2d_%.2d",iZen[i],iThr[j],iZen[i],iThr[j]);
+        sprintf(sHistNameW,"z%.2d/t%.2d/hWidthAverage_%.2d_%.2d",iZen[i],iThr[j],iZen[i],iThr[j]);
+        sprintf(sHistNameWS,"z%.2d/t%.2d/hWidthSigma_%.2d_%.2d",iZen[i],iThr[j],iZen[i],iThr[j]);
+
         if( fTableFile->GetDirectory(sHistDir) ) 
         {
           fTableFile->cd(sHistDir);
           cout << "Adding: " << i << " " << j << " " << sHistDir << endl;
-          htemp.push_back( (TH2F*)fTableFile->Get(sHistName) );
+
+          htempE.push_back(  (TH2F*)fTableFile->Get(sHistName) );
+          htempL.push_back(  (TH2F*)fTableFile->Get(sHistNameL) );
+          htempLS.push_back( (TH2F*)fTableFile->Get(sHistNameLS) );
+          htempW.push_back(  (TH2F*)fTableFile->Get(sHistNameW) );
+          htempWS.push_back( (TH2F*)fTableFile->Get(sHistNameWS) );
+
         } else
         {
@@ -195,6 +260,17 @@
         }
      }
-     hEnergy.push_back(htemp);
-     htemp.clear();
+
+     hEnergy.push_back(htempE);
+     hLength.push_back(htempL);
+     hLengthSigma.push_back(htempLS);
+     hWidth.push_back(htempW);
+     hWidthSigma.push_back(htempWS);
+
+     htempE.clear();
+     htempL.clear();
+     htempLS.clear();
+     htempW.clear();
+     htempWS.clear();
+
    }
 
Index: branches/Mars_McMismatchStudy/manalysis/MEnergyTable.h
===================================================================
--- branches/Mars_McMismatchStudy/manalysis/MEnergyTable.h	(revision 18101)
+++ branches/Mars_McMismatchStudy/manalysis/MEnergyTable.h	(revision 18102)
@@ -34,4 +34,6 @@
 private:
 
+    MParameterD   *fParameterW;
+    MParameterD   *fParameterL;
     MParameterD   *fParameter;
     MHillasSrc    *fHillasSrc;
@@ -45,4 +47,6 @@
     TString   fNameMC;
     TString   fNameParameter;
+    TString   fNameParameterW;
+    TString   fNameParameterL;
 
     Double_t fMm2Deg;
@@ -55,9 +59,22 @@
     char sHistDir[500];
     char sHistName[500];
+    char sHistNameL[500];
+    char sHistNameLS[500];
+    char sHistNameW[500];
+    char sHistNameWS[500];
     int iZen[3];
     int iThr[3];
 
-    vector<TH2F *> htemp;
+    vector<TH2F *> htempE;
+    vector<TH2F *> htempL;
+    vector<TH2F *> htempLS;
+    vector<TH2F *> htempW;
+    vector<TH2F *> htempWS;
+
     vector< vector<TH2F *> > hEnergy;
+    vector< vector<TH2F *> > hLength;
+    vector< vector<TH2F *> > hLengthSigma;
+    vector< vector<TH2F *> > hWidth;
+    vector< vector<TH2F *> > hWidthSigma;
 
     Float_t fZenith;
@@ -70,4 +87,20 @@
     float fEnergy2;
     float fEnergyRecon;
+
+    float fLength;
+    float fWidth;
+    float fLengthSigma;
+    float fWidthSigma;
+
+    float fLength1;
+    float fLength2;
+    float fWidth1;
+    float fWidth2;
+    float fLengthSigma1;
+    float fLengthSigma2;
+    float fWidthSigma1;
+    float fWidthSigma2;
+
+    float RSW,RSL;
 
 public:
