Index: trunk/MagicSoft/Mars/mtemp/mifae/programs/makeHillas.cc
===================================================================
--- trunk/MagicSoft/Mars/mtemp/mifae/programs/makeHillas.cc	(revision 4234)
+++ trunk/MagicSoft/Mars/mtemp/mifae/programs/makeHillas.cc	(revision 4286)
@@ -65,8 +65,8 @@
 
 // initial and final time slices to be used in signal extraction
-const Byte_t hifirst = 0;
-const Byte_t hilast  = 13;
+const Byte_t hifirst = 1;
+const Byte_t hilast  = 14;
 const Byte_t lofirst = 3;
-const Byte_t lolast  = 12;
+const Byte_t lolast  = 14;
 
 // declaration of variables read from datacards
@@ -86,4 +86,5 @@
 Float_t  lnew      = 40;
 Int_t    kmethod   = 1;
+Int_t    kalgorithm = 1;
 Int_t    nfiles    = 0;
 
@@ -238,5 +239,8 @@
   isl2.SetName("MIslands2");
 
-  if (islflag == 1 || islflag == 2)
+  MIslands      isl3;
+  isl3.SetName("MIslands3");
+
+  if (islflag == 1 || islflag == 2 || islflag == 3)
     {
       plist4.AddToList(&timecam);
@@ -247,4 +251,9 @@
     {
       plist4.AddToList(&isl2);
+    }
+
+  if (islflag == 3)
+    {
+      plist4.AddToList(&isl3);
     }
   
@@ -276,4 +285,5 @@
   MIslandCalc       island;
   island.SetOutputName("MIslands1");
+  island.SetAlgorithm(kalgorithm);
 
   MBadPixelsTreat   interpolatebadpixels;
@@ -286,4 +296,8 @@
   MIslandCalc       island2;
   island2.SetOutputName("MIslands2");  
+  island2.SetAlgorithm(kalgorithm);
+
+  MIslandCalc       island3;
+  island3.SetOutputName("MIslands3");  
   
   
@@ -307,8 +321,11 @@
   write->AddContainer("MSrcPosCam"     , "Parameters");
   
-  if (islflag == 1 || islflag == 2)
+  if (islflag == 1 || islflag == 2 || islflag == 3)
     write->AddContainer("MIslands1" , "Parameters");
   if (islflag == 2) 
     write->AddContainer("MIslands2" , "Parameters");
+  if (islflag == 3) 
+    write->AddContainer("MIslands3" , "Parameters");
+
 
   if(display)
@@ -319,4 +336,6 @@
       if (islflag == 2)
 	disphillas->SetIslandsName("MIslands2");
+      if (islflag == 3)
+	disphillas->SetIslandsName("MIslands3");
     }      
 
@@ -329,5 +348,5 @@
   tlist4.AddToList(&clean);
 
-  if (islflag == 1 || islflag == 2)
+  if (islflag == 1 || islflag == 2 || islflag == 3)
     {
       tlist4.AddToList(&timecalc);
@@ -340,5 +359,12 @@
       tlist4.AddToList(&island2);
     }
-  
+
+  if (islflag == 3)
+    {
+      tlist4.AddToList(&islclean);
+      tlist4.AddToList(&island3);
+    }
+  
+
   //tlist4.AddToList(&blind2);
   tlist4.AddToList(&hcalc);
@@ -475,4 +501,7 @@
 	{
 	  ifun >> islflag;
+
+	  // if (islflag == 1 || islflag == 2)
+	    ifun >> kalgorithm;
 	}
 
@@ -522,5 +551,5 @@
   cout << "Cleaning level: ("<<lcore<<","<<ltail<<")" << endl;
   if (islflag == 1 || islflag == 2)
-    cout << "Island calcultation..." << endl;
+    cout << "Island calcultation..." << "using algorithm #" << kalgorithm <<endl;
   if (islflag == 2)
     {
