Index: /fact/tools/rootmacros/PulseTemplates/pixel.C
===================================================================
--- /fact/tools/rootmacros/PulseTemplates/pixel.C	(revision 13487)
+++ /fact/tools/rootmacros/PulseTemplates/pixel.C	(revision 13488)
@@ -72,36 +72,9 @@
     if (mVerbosityLevel > 2) cout << endl << "...delete current pixel histograms" ;
 
-    for (int order = 0;
-         order < mMaxPulseOrder;
-         order ++)
-    {
-        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxOverlay";
-        delete hMaxOverlay[order];
-
-        if (mVerbosityLevel > 3) cout << endl << "...deleting hEdgeOverlay";
-        delete hEdgeOverlay[order];
-
-        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxProfile";
-        delete hMaxProfile[order];
-
-        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxProfile2";
-        delete hEdgeProfile[order];
-    }
-    if (mVerbosityLevel > 3) cout << endl << "...deleting histogram Arrays";
-    delete[] hMaxOverlay;
-    hMaxOverlay = NULL;
-
-    delete[] hEdgeOverlay;
-    hEdgeOverlay = NULL;
-
-    delete[] hMaxProfile;
-    hMaxProfile = NULL;
-
-    delete[] hEdgeProfile;
-    hEdgeProfile = NULL;
-
-    if (mVerbosityLevel > 3) cout << endl << "...deleting hList";
+    DeletePixelHistos();
+    DeleteDistributionHistos();
     delete hList;
-    if (mVerbosityLevel > 2) cout << endl << "...done" << endl;
+    hList = NULL;
+
 }// ~Pixel
 
@@ -382,5 +355,77 @@
             );
 }
-
+// end of SavePixelHistograms
+//----------------------------------------------------------------------------
+
+void
+Pixel::DeletePixelHistos()
+{
+    if (mVerbosityLevel > 2) cout << endl << "...delete current overlay histograms" ;
+
+    for (int order = 0;
+         order < mMaxPulseOrder;
+         order ++)
+    {
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxOverlay";
+        delete hMaxOverlay[order];
+
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hEdgeOverlay";
+        delete hEdgeOverlay[order];
+
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxProfile";
+        delete hMaxProfile[order];
+
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxProfile2";
+        delete hEdgeProfile[order];
+    }
+    if (mVerbosityLevel > 3) cout << endl << "...deleting histogram Arrays";
+    delete[] hMaxOverlay;
+    hMaxOverlay = NULL;
+
+    delete[] hEdgeOverlay;
+    hEdgeOverlay = NULL;
+
+    delete[] hMaxProfile;
+    hMaxProfile = NULL;
+
+    delete[] hEdgeProfile;
+    hEdgeProfile = NULL;
+}
+// end of DeletePixelHistos
+//----------------------------------------------------------------------------
+
+void
+Pixel::DeleteDistributionHistos()
+{
+    if (mVerbosityLevel > 2) cout << endl << "...delete current distribution histograms" ;
+
+    for (int order = 0;
+         order < mMaxPulseOrder;
+         order ++)
+    {
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxOverlay";
+        delete hSlopeRisingEdge[order];
+
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hEdgeOverlay";
+        delete hRisingEdgeToMax[order];
+
+        if (mVerbosityLevel > 3) cout << endl << "...deleting hMaxProfile";
+        delete hPosOfMax[order];
+
+    }
+    if (mVerbosityLevel > 3) cout << endl << "...deleting histogram Arrays";
+
+
+    delete[] hSlopeRisingEdge;
+    hSlopeRisingEdge = NULL;
+
+    delete[] hRisingEdgeToMax;
+    hRisingEdgeToMax = NULL;
+
+    delete[] hPosOfMax;
+    hPosOfMax = NULL;
+}
+// end of DeletePixelHistos
+//----------------------------------------------------------------------------
 
 //============================= ACESS      ===================================
