Index: trunk/MagicSoft/Mars/mtemp/mifae/Changelog
===================================================================
--- trunk/MagicSoft/Mars/mtemp/mifae/Changelog	(revision 5954)
+++ trunk/MagicSoft/Mars/mtemp/mifae/Changelog	(revision 5955)
@@ -18,4 +18,15 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2005/01/24 Eva Domingo
+    * library/MFDisp.[cc,h] 
+     - Number of islands read from MImagePar container
+       to be used as cut parameter if wanted
+    * library/MHDisp.cc 
+     - corrected to be able to run Disp method also over
+       data (MMcEvt container info just used if available)
+    * library/MDispCalc.cc
+     - introduced DISP = Xi*(1/(1+width/length)) as default
+       Disp parameterization for the moment
 
  2005/01/24 Eva Domingo
Index: trunk/MagicSoft/Mars/mtemp/mifae/library/MDispCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mtemp/mifae/library/MDispCalc.cc	(revision 5954)
+++ trunk/MagicSoft/Mars/mtemp/mifae/library/MDispCalc.cc	(revision 5955)
@@ -300,6 +300,6 @@
     //      + (p[2] + p[3]*(logsize-fLogSize0))*width/length;
 
-    Double_t disp = p[0] + p[1]*(logsize-fLogSize0) + p[4]*(length-fLength0) 
-      + (p[2] + p[3]*(logsize-fLogSize0))*width/length;
+//    Double_t disp = p[0] + p[1]*(logsize-fLogSize0) + p[4]*(length-fLength0) 
+//      + (p[2] + p[3]*(logsize-fLogSize0))*width/length;
 
     //    Double_t disp = p[0] + p[1]*(logsize-fLogSize0) + p[4]*(length-fLength0) 
@@ -327,4 +327,9 @@
     //                    *(1-width/length);
 
+    Double_t disp = ( p[0] + p[1]*(logsize) 
+		    + p[2]*pow(logsize,2)
+    		    + p[3]*pow(logsize,3) 
+		    + p[4]*pow(logsize,4) )
+                        *( 1/(1+width/length) );
     return disp;
 }
Index: trunk/MagicSoft/Mars/mtemp/mifae/library/MFDisp.cc
===================================================================
--- trunk/MagicSoft/Mars/mtemp/mifae/library/MFDisp.cc	(revision 5954)
+++ trunk/MagicSoft/Mars/mtemp/mifae/library/MFDisp.cc	(revision 5955)
@@ -40,4 +40,5 @@
 #include "MHillas.h"
 #include "MHillasSrc.h"
+#include "MImagePar.h"
 #include "MNewImagePar.h"
 
@@ -130,4 +131,11 @@
     }
 
+    fImgPar = (MImagePar*)pList->FindObject("MImagePar");
+    if (!fImgPar)
+    {
+        *fLog << err << "MImagePar not found... aborting." << endl;
+        return kFALSE;
+    }
+
     fNewImgPar = (MNewImagePar*)pList->FindObject("MNewImagePar");
     if (!fNewImgPar)
@@ -200,10 +208,10 @@
     const Int_t numusedpixels = fNewImgPar->GetNumUsedPixels();
     const Int_t numcorepixels = fNewImgPar->GetNumCorePixels();
-    //const Int_t numislands    = fNewImgPar->GetNumIslands();
+    const Int_t numislands    = fImgPar->GetNumIslands();
 
     fResult = kFALSE;
 
-    //if  (numislands<fIslandsMin  || numislands>fIslandsMax )
-    //    return Set(1);
+    if  (numislands<fIslandsMin  || numislands>fIslandsMax )
+        return Set(1);
 
     if  (numusedpixels<fUsedPixelsMin  || numusedpixels>fUsedPixelsMax )
Index: trunk/MagicSoft/Mars/mtemp/mifae/library/MFDisp.h
===================================================================
--- trunk/MagicSoft/Mars/mtemp/mifae/library/MFDisp.h	(revision 5954)
+++ trunk/MagicSoft/Mars/mtemp/mifae/library/MFDisp.h	(revision 5955)
@@ -8,4 +8,5 @@
 class MHillas;
 class MHillasSrc;
+class MImagePar;
 class MNewImagePar;
 
@@ -16,4 +17,5 @@
     MHillas      *fHil;
     MHillasSrc   *fHilSrc;
+    MImagePar    *fImgPar;
     MNewImagePar *fNewImgPar;
 
Index: trunk/MagicSoft/Mars/mtemp/mifae/library/MHDisp.cc
===================================================================
--- trunk/MagicSoft/Mars/mtemp/mifae/library/MHDisp.cc	(revision 5954)
+++ trunk/MagicSoft/Mars/mtemp/mifae/library/MHDisp.cc	(revision 5955)
@@ -299,6 +299,8 @@
     if (!fMcEvt)
     {
-        *fLog << err << "MMcEvt not found... aborting." << endl;
-        return kFALSE;
+        *fLog << err << "MMcEvt not found... This is not a MC file,"
+	      << " you are not trying to optimize Disp, just calculating it."
+	      << endl;
+	//        return kFALSE;
     }
 
@@ -424,6 +426,4 @@
       xmax     = fMatrix ? GetVal(kLongitmax)  : fMcEvt->GetLongitmax();      
     }
-    else
-      *fLog << "No MMcEvt container available (no Energy,ImpactPar or Xmax)" << endl;
 
     Double_t theta      = fMatrix ? GetVal(kZd)  : fPointing->GetZd();
@@ -504,14 +504,18 @@
     
     // Fill Energy, Size and ZA distributions
-    fHistEnergy->Fill(log10(energy));
+    if (fMatrix || (!fMatrix && fMcEvt))
+      fHistEnergy->Fill(log10(energy));
     fHistSize->Fill(log10(size));
     fHistcosZA->Fill(cos(theta/kRad2Deg));
     
     // to check the size and energy dependence of the optimization
-    fHistMinParEnergy->Fill(log10(energy),d2);
+    if (fMatrix || (!fMatrix && fMcEvt))
+    {
+      fHistMinParEnergy->Fill(log10(energy),d2);
+      fHistDuEnergy->Fill(log10(energy),Du);
+      fHistDvEnergy->Fill(log10(energy),Dv);
+    }
     fHistMinParSize->Fill(log10(size),d2);
-    fHistDuEnergy->Fill(log10(energy),Du);
     fHistDuSize->Fill(log10(size),Du);
-    fHistDvEnergy->Fill(log10(energy),Dv);
     fHistDvSize->Fill(log10(size),Dv);
     
