Index: fact/tools/rootmacros/PulseTemplates/FPulseOverlay.C
===================================================================
--- fact/tools/rootmacros/PulseTemplates/FPulseOverlay.C	(revision 13467)
+++ fact/tools/rootmacros/PulseTemplates/FPulseOverlay.C	(revision 13472)
@@ -43,6 +43,4 @@
 // rootmacros
 //----------------------------------------------------------------------------
-#include "rootfilehandler.h"
-#include "rootfilehandler.C"
 
 #include "../fits.h"
@@ -62,4 +60,7 @@
 #include "../SpikeRemoval.h"
 #include "../SpikeRemoval.C"
+
+#include "rootfilehandler.h"
+#include "rootfilehandler.C"
 
 #include "pixel.h"
@@ -153,11 +154,9 @@
 
     //Root-File Objects
-    TObjArray*  hList[sampleSetSize] = {NULL};
+//    TObjArray*  hList[sampleSetSize] = {NULL};
     TObjArray*  hRootList = NULL;
 
-    //Canvases
-    TCanvas*    cgpPixelPulses[maxPulseOrder] = {NULL};
-    TCanvas*    cgpTestHistos = NULL;
-    //TCanvas*    gpcDevelopment = NULL;
+    TCanvas**   cgpPixelPulses  = NULL;
+    TCanvas *   cFiltered       = NULL;
 
 //----------------------------------------------------------------------------
@@ -166,16 +165,16 @@
 
 void BookDebugHistos(int );
-void BookPixelHistos(int, int, int, int );
+//void BookPixelHistos(int, int, int, int );
 void BookTestHistos( int );
 
-void DeletePixelHistos(int );
-void SaveHistograms( const char*, const char*, TObjArray*, int );
-
-void FillHistograms(vector<Region>*, int, int, int);
-void DrawPulseHistograms(int, int);
+//void DeletePixelHistos(int );
+//void SaveHistograms( const char*, const char*, TObjArray*, int );
+
+void FillHistograms(Pixel*, vector<Region>*, int, int, int, int);
+//void DrawPulseHistograms(int);
 void DrawTestHistograms( int);
 
 void UpdateCanvases( int, int);
-void DeletePixelCanvases( int );
+void DeletePixelCanvases( int, int );
 
 //----------------------------------------------------------------------------
@@ -184,5 +183,5 @@
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
-int FPulseTemplate(
+int FPulseOverlay(
         char*           datafilename        = "../data/2011/11/09/20111109_006.fits.gz",
         const char*     drsfilename         = "../data/2011/11/09/20111109_003.drs.fits.gz",
@@ -219,5 +218,5 @@
 // Initialize Pixel
 //----------------------------------------------------------------------------
-    Pixel* pPixelSet = (Pixel*) calloc( sampleSetSize, sizeof(Pixel) );
+    Pixel** pPixelSet = new Pixel*[sampleSetSize];
 
 //----------------------------------------------------------------------------
@@ -245,6 +244,14 @@
     };
 
+    //Canvases
+    cgpPixelPulses = new TCanvas*[maxPulseOrder];
+    TCanvas*    cgpTestHistos                   = NULL;
+
     if (ProduceGraphic)
     {
+        //TCanvas*    gpcDevelopment = NULL;
+        TString cName   = "";
+        TString cTitle  = "";
+
         for (
              int pulse_order = maxPulseOrder - 1;
@@ -253,16 +260,10 @@
               )
         {
-            TString cName   ="cgpPixelPulses";
-                    cName   += pulse_order;
-            TString cTitle   ="Pulses of Order: ";
-                    cTitle   += pulse_order;
+            cName   ="cgpPixelPulses";
+            cName   += pulse_order;
+            cTitle   ="Pulses of Order: ";
+            cTitle   += pulse_order;
             cgpPixelPulses[pulse_order] = new TCanvas(cName,cTitle, 0,pulse_order*20,800,800);
             cgpPixelPulses[pulse_order]->Divide(2, 2);
-                    cName   = "cgpAllPixelPulses";
-                    cName   += pulse_order;
-                    cTitle   ="AllPixel average of puls shapes of Order: ";
-                    cTitle   += pulse_order;
-            cgpAllPixelPulses[pulse_order] = new TCanvas( cName, cTitle, 801, pulse_order*20, 800, 800 );
-            cgpAllPixelPulses[pulse_order]->Divide(2, 2);
         }
 
@@ -272,5 +273,4 @@
                 // the pointers anyway ...
 
-        TCanvas *cFiltered = NULL;
         if (spikeDebug)
         {
@@ -372,5 +372,5 @@
             cout << "------------------------------------------------" << endl
                  << "...processing Sample from Pixel: "
-                 << firstPixelOfSample;
+                 << firstPixelOfSample
                  << "to Pixel: "
                  << firstPixelOfSample+sampleSetSize-1 << endl;
@@ -395,5 +395,5 @@
              cout << "-------------------------------------" << endl
                   << "...processing Event: " << CurrentEventID
-                  << "/" << nevents << " of Pixel: " << pixel << endl;
+                  << "/" << nevents << endl;
             }
 
@@ -409,8 +409,8 @@
                  cout << "-------------------------------------" << endl
                       << "...processing Pixel: " << pixel
-                      << "/" << nPixelSample << endl;
+                      << "/" << firstpixel + npixel << endl;
                 }
 
-                pPixelSet[pixel] = Pixel(
+                pPixelSet[pixel] = new Pixel(
                             pixel,
                             maxPulseOrder,
@@ -486,5 +486,12 @@
 // Fill Overlay Histos
 //-----------------------------------------------------------------------------
-                FillHistograms(pPixelSet[pixel], pZXings, AmplWindowWidth, ev, verbosityLevel );
+                FillHistograms(
+                            pPixelSet[pixel],
+                            pZXings,
+                            AmplWindowWidth,
+                            ev,
+                            maxPulseOrder,
+                            verbosityLevel
+                            );
 
 //-----------------------------------------------------------------------------
@@ -574,9 +581,14 @@
                         if (debugPixel)
                         {
-                            pPixelSet[pixel] ->DrawHistograms(
-                                        cgpPixelPulses,
-                                        pulsesCanvasFrameNrs
-                                        );
-
+                            for ( int order = 0;
+                                order < maxPulseOrder;
+                                order++
+                                )
+                            {
+                                pPixelSet[pixel]->DrawHistograms(
+                                            cgpPixelPulses[order],
+                                            pulsesCanvasFrameNrs
+                                            );
+                            }
                             DrawTestHistograms(
                                         verbosityLevel
@@ -619,7 +631,14 @@
         {
             //here is what happends at the end of each loop over all Events
-            pPixelSet[pixel]->DrawHistograms(
-                        cgpPixelPulses,
-                        pulsesCanvasFrameNrs
+//            pPixelSet[pixel]->DrawHistograms(
+//                        cgpPixelPulses,
+//                        pulsesCanvasFrameNrs
+//                        );
+
+            SaveHistograms(     //save histograms of generell results into output root file
+                        OutRootFileName,
+                        CreateSubDirName(pPixelSet[pixel]->mChid),
+                        pPixelSet[pixel]->hList,
+                        verbosityLevel
                         );
 
@@ -633,10 +652,5 @@
 
             //Save Histograms of Pixels into Output rootfile
-            SaveHistograms(
-                    OutRootFileName,
-                    CreateSubDirName( pPixelSet[pixel]->mChid ),
-                    pPixelSet[pixel]->hList,
-                    verbosityLevel
-                    );
+            pPixelSet[pixel]->SavePixelHistograms( OutRootFileName );
 
 
@@ -677,6 +691,4 @@
                 );
 
-
-
     if (ProduceGraphic)
     {
@@ -687,5 +699,8 @@
     }
 
-    DeletePixelCanvases( verbosityLevel );
+    DeletePixelCanvases(
+                maxPulseOrder,
+                verbosityLevel
+                );
     return( 0 );
 }
@@ -747,5 +762,4 @@
 {
     if (verbosityLevel > 2) cout << endl << "...book histograms" << endl;
-    hAllPixelList = new TObjArray;
     hRootList = new TObjArray;
     debugHistos = new TH1F[ Number_Of_Debug_Histo_Types ];
@@ -779,4 +793,5 @@
         int AmplWindowWidth,
         int eventNumber,
+        int maxPulseOrder,
         int verbosityLevel
         )
@@ -810,5 +825,4 @@
 
 
-        CurrentPixel->hSlopeRisingEdge->Fill( reg->slopeOfRisingEdge ) ;
         hTesthisto2->Fill( eventNumber, reg->slopeOfRisingEdge ) ;
 
@@ -832,4 +846,8 @@
                 if (verbosityLevel > 2) cout << "...NONE" << endl ;
          }
+            if (use_this_peak)
+            {
+                CurrentPixel->hSlopeRisingEdge[order_of_pulse]->Fill( reg->slopeOfRisingEdge ) ;
+            }
         }
 
@@ -863,10 +881,10 @@
         )
 {
-    if (verbosityLevel > 2) cout << endl << "...drawing pulse histograms" ;
-
-    cgpTestHistos->cd(1);
-    hTesthisto->Draw();
-    cgpTestHistos->cd(2);
-    hTesthisto2->Draw("BOX");
+    if (verbosityLevel > 2) cout << endl << "...drawing pulse histograms TODO CANVAS" ;
+
+//    cgpTestHistos->cd(1);
+//    hTesthisto->Draw();
+//    cgpTestHistos->cd(2);
+//    hTesthisto2->Draw("BOX");
 }
 // end of DrawTestHistograms
@@ -878,11 +896,11 @@
         )
 {
-    if (verbosityLevel > 3) cout << endl << "...updating canvases" ;
+    if (verbosityLevel > 3) cout << endl << "...updating canvases TODO CANVAS" ;
     for (int pulse_order = 0; pulse_order < max_pulse_order; pulse_order++)
     {
-        cgpPixelPulses[pulse_order]->Modified();
-        cgpPixelPulses[pulse_order]->Update();
-        cgpTestHistos->Modified();
-        cgpTestHistos->Update();
+//        cgpPixelPulses[pulse_order]->Modified();
+//        cgpPixelPulses[pulse_order]->Update();
+//        cgpTestHistos->Modified();
+//        cgpTestHistos->Update();
     }
 }
@@ -891,11 +909,14 @@
 
 void
-DeletePixelCanvases( int verbosityLevel )
+DeletePixelCanvases(
+        int maxPulseOrder,
+        int verbosityLevel
+        )
 {
-    if (verbosityLevel > 2) cout << endl << "...delete pixel Canvas" ;
-    for (int pulse_order = 0; pulse_order < maxPulseOrder; pulse_order ++)
-    {
-        delete cgpPixelPulses[pulse_order];
-    }
+    if (verbosityLevel > 2) cout << endl << "...delete pixel Canvas TODO CANVAS" ;
+//    for (int pulse_order = 0; pulse_order < maxPulseOrder; pulse_order ++)
+//    {
+//        delete cgpPixelPulses[pulse_order];
+//    }
 }
 
