Index: /trunk/MagicSoft/Mars/mtemp/mifae/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/Changelog	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/Changelog	(revision 4328)
@@ -22,4 +22,22 @@
     * library/MDispCalc.[h,cc]
       - Included first version of DISP method evaluation classes.
+
+  2004/06/22  Javier Rico
+    * library/MControlPlots.[h,cc]
+      - Added
+
+    * library/Makefile, IFAELinkDef.h
+      - Add MControlPlots. So far, it produces plots with the number
+        of times each pixel survives the cleaning. It needs a MIsland
+        object to be included on the parameter list
+
+    * programs/makeHillas.cc
+      - Change pointer to MWriteRootFile object for MWriteRootFile 
+	object (otherwise the tree "Parameters" is not saved)
+      - Islands are always computed since are needed for some control
+        plots
+
+    * programs/srcPos.cc
+      - Add MControlPlots to the task list
 
   2004/06/15  Javier Lopez
Index: /trunk/MagicSoft/Mars/mtemp/mifae/library/IFAELinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/library/IFAELinkDef.h	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/library/IFAELinkDef.h	(revision 4328)
@@ -19,5 +19,5 @@
 #pragma link C++ class MCalibrateDC+;
 #pragma link C++ class MHPSFFromStars+;
-#pragma link C++ class MSrcPosFromStars+;
+#pragma link C++ class MControlPlots+;
 
 #endif
Index: /trunk/MagicSoft/Mars/mtemp/mifae/library/MIslands.cc
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/library/MIslands.cc	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/library/MIslands.cc	(revision 4328)
@@ -46,4 +46,5 @@
     	*fLog << "    + Pixel Number = " << fPixNum[i] << endl;
     	*fLog << "    + SigToNoise = " << fSigToNoise[i] << endl;
+    	*fLog << "    + TimeSpread = " << fTimeSpread[i] << endl;
       }
 }
Index: /trunk/MagicSoft/Mars/mtemp/mifae/library/MSrcPosFromFile.cc
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/library/MSrcPosFromFile.cc	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/library/MSrcPosFromFile.cc	(revision 4328)
@@ -142,10 +142,19 @@
       if(srcpos)
 	fLastValidSrcPosCam = srcpos;
+      else if(run>fFirstRun)
+	for(UInt_t irun=run-1; irun>=fFirstRun;irun--)
+	  if((srcpos=(MSrcPosCam*)fRunMap->GetValue(irun)))
+	    {
+	      *fLog << inf << " not found in file. Taking position for run "<< irun;
+	      fLastValidSrcPosCam = srcpos;
+	      break;
+	    }
       else if(fLastValidSrcPosCam)
 	*fLog << inf << " not found in file. Taking previous position: ";
-      else
+	
+      if(!fLastValidSrcPosCam)
 	{
-	  *fLog << warn << "MSrcPosFromFile::ComputeNewSrcPosition warning: no value for the first run. Taking first found run in file, run number " << fFirstRun << endl;
-	  fLastValidSrcPosCam = (MSrcPosCam*)fRunMap->GetValue(run);
+	  *fLog << warn << "MSrcPosFromFile::ComputeNewSrcPosition warning: no value for the first run. Taking first found run in file, run number " << fFirstRun;
+	  fLastValidSrcPosCam = (MSrcPosCam*)fRunMap->GetValue(fFirstRun);
 	}
 
Index: /trunk/MagicSoft/Mars/mtemp/mifae/library/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/library/Makefile	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/library/Makefile	(revision 4328)
@@ -63,5 +63,6 @@
         MCalibrateDC.cc \
         MHPSFFromStars.cc \
-        MSrcPosFromStars.cc
+	MControlPlots.cc
+        
 
 ############################################################
Index: /trunk/MagicSoft/Mars/mtemp/mifae/programs/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/programs/Makefile	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/programs/Makefile	(revision 4328)
@@ -28,5 +28,5 @@
 	   -I../../../mfbase \
 	   -I../../../mjobs \
-	   -I../../../mpedestal \
+	   -I../../../mpedestal	 \
 	   -I../../../mbadpixels \
 	   -I../../../mfileio \
@@ -42,4 +42,5 @@
 	   -I../../../mpointing \
 	   -I../../../mcamera \
+	   -I../../../mhist \
 	   -I../../../mastro
 
Index: /trunk/MagicSoft/Mars/mtemp/mifae/programs/makeHillas.cc
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/programs/makeHillas.cc	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/programs/makeHillas.cc	(revision 4328)
@@ -22,4 +22,5 @@
 #include "MExtractor.h"
 #include "MExtractFixedWindow.h"
+#include "MExtractSlidingWindow.h"
 #include "MExtractSignal.h"
 #include "MCalibrationChargeCalc.h"
@@ -122,4 +123,5 @@
       return -1;
     }
+
   makeHillas();
 }
@@ -131,5 +133,9 @@
   MExtractFixedWindow    extractor;
   extractor.SetRange(hifirst,hilast,lofirst,lolast);
-
+ 
+  //  MExtractSlidingWindow    extractor;
+  // extractor.SetRange(hifirst,hilast,lofirst,lolast);
+  // extractor.SetWindowSize(2,2);
+  
   MGeomCamMagic       geomcam;
   MGeomApply          geomapl;
@@ -232,29 +238,22 @@
 
   MArrivalTimeCam   timecam;
-     
+
+
+  // islands
   MIslands      isl;
-  isl.SetName("MIslands1");
-  
   MIslands      isl2;
+  MIslands      isl3;
+
+  isl.SetName("MIslands");  
   isl2.SetName("MIslands2");
-
-  MIslands      isl3;
   isl3.SetName("MIslands3");
 
-  if (islflag == 1 || islflag == 2 || islflag == 3)
-    {
-      plist4.AddToList(&timecam);
-      plist4.AddToList(&isl);
-    }
+  plist4.AddToList(&timecam);
+  plist4.AddToList(&isl);
   
   if (islflag == 2)
-    {
-      plist4.AddToList(&isl2);
-    }
-
+    plist4.AddToList(&isl2);
   if (islflag == 3)
-    {
-      plist4.AddToList(&isl3);
-    }
+    plist4.AddToList(&isl3);
   
   plist4.AddToList(&geomcam);
@@ -280,9 +279,7 @@
   
   MImgCleanStd      clean(lcore,ltail);
-
   MArrivalTimeCalc2 timecalc;
-  
   MIslandCalc       island;
-  island.SetOutputName("MIslands1");
+  island.SetOutputName("MIslands");
   island.SetAlgorithm(kalgorithm);
 
@@ -291,5 +288,5 @@
 
   MIslandClean      islclean(lnew);
-  islclean.SetInputName("MIslands1");
+  islclean.SetInputName("MIslands");
   islclean.SetMethod(kmethod);
       
@@ -307,24 +304,22 @@
   MContinue applycut(&cut);
   applycut.SetInverted(kTRUE);
-  MWriteRootFile* write=NULL;
+  MWriteRootFile write(outname,"RECREATE");
+  
   MHillasDisplay*  disphillas=NULL;
 
-  write = new MWriteRootFile(outname,"RECREATE");
-  
-  write->AddContainer("MHillas"        , "Parameters");
-  write->AddContainer("MHillasSrc"     , "Parameters");
-  write->AddContainer("MHillasExt"     , "Parameters");
-  write->AddContainer("MNewImagePar"   , "Parameters");
-  write->AddContainer("MRawEvtHeader"  , "Parameters");
-  write->AddContainer("MRawRunHeader"  , "Parameters");
-  write->AddContainer("MConcentration" , "Parameters");
-  write->AddContainer("MSrcPosCam"     , "Parameters");
-  
-  if (islflag == 1 || islflag == 2 || islflag == 3)
-    write->AddContainer("MIslands1" , "Parameters");
+  write.AddContainer("MHillas"        , "Parameters");
+  write.AddContainer("MHillasSrc"     , "Parameters");
+  write.AddContainer("MHillasExt"     , "Parameters");
+  write.AddContainer("MNewImagePar"   , "Parameters");
+  write.AddContainer("MRawEvtHeader"  , "Parameters");
+  write.AddContainer("MRawRunHeader"  , "Parameters");
+  write.AddContainer("MConcentration" , "Parameters");
+  write.AddContainer("MSrcPosCam"     , "Parameters");
+  write.AddContainer("MIslands" , "Parameters");
+
   if (islflag == 2) 
-    write->AddContainer("MIslands2" , "Parameters");
+    write.AddContainer("MIslands2" , "Parameters");
   if (islflag == 3) 
-    write->AddContainer("MIslands3" , "Parameters");
+    write.AddContainer("MIslands3" , "Parameters");
 
 
@@ -332,6 +327,5 @@
     {
       disphillas = new MHillasDisplay(&nphot,&geomcam);
-      if (islflag == 1)
-	disphillas->SetIslandsName("MIslands1");
+      disphillas->SetIslandsName("MIslands");
       if (islflag == 2)
 	disphillas->SetIslandsName("MIslands2");
@@ -347,10 +341,6 @@
     tlist4.AddToList(&interpolatebadpixels);
   tlist4.AddToList(&clean);
-
-  if (islflag == 1 || islflag == 2 || islflag == 3)
-    {
-      tlist4.AddToList(&timecalc);
-      tlist4.AddToList(&island);
-    }
+  tlist4.AddToList(&timecalc);
+  tlist4.AddToList(&island);
 
   if (islflag == 2)
@@ -366,11 +356,9 @@
     }
   
-
-  //tlist4.AddToList(&blind2);
   tlist4.AddToList(&hcalc);
   tlist4.AddToList(&csrc1);
   if(filter.Length())
     tlist4.AddToList(&applycut);
-  tlist4.AddToList(write);
+  tlist4.AddToList(&write);
   if(display)
     {
@@ -381,5 +369,4 @@
       tlist4.AddToList(disphillas);
     }
-
 
   // Create and setup the eventloop
Index: /trunk/MagicSoft/Mars/mtemp/mifae/programs/optimizeCuts.cc
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/programs/optimizeCuts.cc	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/programs/optimizeCuts.cc	(revision 4328)
@@ -113,4 +113,6 @@
   ton->SetAlias("length","MHillas.fLength*0.6/189");
   ton->SetAlias("width","MHillas.fWidth*0.6/189");
+  //  ton->SetAlias("length","MHillas.fLength");
+  //  ton->SetAlias("width","MHillas.fWidth");
   ton->SetAlias("dist","MHillasSrc.fDist*0.6/189");
   ton->SetAlias("conc","MNewImagePar.fConc");
@@ -121,4 +123,6 @@
   toff->SetAlias("length","MHillas.fLength*0.6/189");
   toff->SetAlias("width","MHillas.fWidth*0.6/189");
+  //toff->SetAlias("length","MHillas.fLength");
+  //toff->SetAlias("width","MHillas.fWidth");
   toff->SetAlias("dist","MHillasSrc.fDist*0.6/189");
   toff->SetAlias("conc","MNewImagePar.fConc");
Index: /trunk/MagicSoft/Mars/mtemp/mifae/programs/psffit.cc
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/programs/psffit.cc	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/programs/psffit.cc	(revision 4328)
@@ -39,4 +39,5 @@
 #include "MPSFFitCalc.h"
 #include "MEvtLoop.h"
+#include "MCalibrateDC.h"
 
 using namespace std;
@@ -104,10 +105,12 @@
   MGeomApply geomapl;
 
+  TString continuoslightfile = 
+    "/nfs/magic/CaCodata/rootdata/Miscellaneous/Period016/2004_04_16/dc_2004_04_16_04_46_18_22368_Off3c279-2CL100.root";
+  MCalibrateDC dccal;
+  dccal.SetFileName(continuoslightfile);
+ 
   const Int_t numrings = 3;
-  const Int_t numblind = 23;
-  const Short_t x[numblind] = {  8,  27, 224, 279, 339,
-			       507, 508, 509, 510, 511, 512, 513, 514,
-			       543,
-			       559, 560, 561, 562, 563, 564, 565, 566, 567};
+  //  const Int_t numblind = 187;
+
 
   // 2004_02_15
@@ -118,4 +121,24 @@
 			       523, 524, 525, 526, 527, 528, 529, 530, 531};
   */
+  const Int_t numblind = 260;
+  Short_t x[numblind];
+
+  for (int i=0;i<246;i++)
+    x[i+14]=i+331;
+  x[0]=124;
+  x[1]=123;
+  x[2]=125;
+  x[3]=166;
+  x[4]=165;
+  x[5]=88;
+  x[6]=89;
+  x[7]=282;
+  x[8]=283;
+  x[9]=226;
+  x[10]=227;
+  x[11]=228;
+  x[12]=177;
+  x[13]=178;
+
   const TArrayS blindpixels(numblind,(Short_t*)x);
   MPSFFitCalc psfcalc;
@@ -128,4 +151,5 @@
   tlist.AddToList(&geomapl);
   tlist.AddToList(&read);
+  tlist.AddToList(&dccal, "Currents");
   tlist.AddToList(&psfcalc, "Currents");
 
Index: /trunk/MagicSoft/Mars/mtemp/mifae/programs/srcPos.cc
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/programs/srcPos.cc	(revision 4327)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/programs/srcPos.cc	(revision 4328)
@@ -31,4 +31,6 @@
 #include "MWriteRootFile.h"
 #include "MTime.h"
+#include "MControlPlots.h"
+#include "MIslands.h"
 
 using namespace std;
@@ -54,4 +56,5 @@
 Double_t fDEC= -1.;
 TString  srcFile;
+TString  controlplotsfilename="controlplots.ps";
 
 //-----------------------------------------------------------------------------
@@ -107,7 +110,9 @@
   MParList  plist;  
   MTaskList tlist;
+  MIslands  islands;
 
   // include containers in parameter list
   plist.AddToList(&tlist);
+  plist.AddToList(&islands);
 	  	  
   // tasks
@@ -144,5 +149,10 @@
   write.AddContainer("MConcentration" , "Parameters");
   write.AddContainer("MSrcPosCam"     , "Parameters");
-
+  write.AddContainer("MIslands"       , "Parameters");
+  //write.AddContainer("MIslands2"     ,  "Parameters");
+
+  MControlPlots controlplots(controlplotsfilename);
+  controlplots.SetProduceFile(kFALSE);
+  
   // include tasks in task list
   tlist.AddToList(&read);
@@ -156,4 +166,5 @@
     }
   tlist.AddToList(&csrc1);  
+  tlist.AddToList(&controlplots);
   tlist.AddToList(&write);
 
@@ -184,4 +195,6 @@
   write2.AddContainer("MConcentration" , "Parameters");
   write2.AddContainer("MSrcPosCam"     , "Parameters");
+  write2.AddContainer("MIslands"       , "Parameters");
+  // write2.AddContainer("MIslands2"     ,  "Parameters");
   tlist.AddToListBefore(&write2,&write,"All");
   tlist.RemoveFromList(&write);
@@ -191,4 +204,7 @@
   else
     srcrotate.SetMode(MSrcPlace::kOff);
+
+  controlplots.SetMode(MControlPlots::kOff);
+  controlplots.SetProduceFile(kTRUE);
 
   if (!evtloop.Eventloop(nmaxevents))
