Index: /fact/tools/rootmacros/PulseTemplates/pixel.C
===================================================================
--- /fact/tools/rootmacros/PulseTemplates/pixel.C	(revision 14941)
+++ /fact/tools/rootmacros/PulseTemplates/pixel.C	(revision 14942)
@@ -340,42 +340,4 @@
             mVerbosityLevel
             );
-
-//    TFile f(outRootFileName.Data(),"recreate");
-//    TVectorF    chid(1);
-//    chid[0]                     =   mChid;
-//    chid.Write("chid");
-//    ////    hMemberlist->Add( "chid" );
-
-//    TVectorF    MaxPulseOrder(1);
-//    MaxPulseOrder[0]            = mMaxPulseOrder;
-//    hMemberlist->Add( &MaxPulseOrder );
-
-//    TVectorF    PixelOverlayXaxisLeft(1);
-//    PixelOverlayXaxisLeft[0]    = mPixelOverlayXaxisLeft;
-//    hMemberlist->Add( &PixelOverlayXaxisLeft );
-
-//    TVectorF    PixelOverlayXaxisRight(1);
-//    PixelOverlayXaxisRight[0]   = mPixelOverlayXaxisRight;
-//    hMemberlist->Add( &PixelOverlayXaxisRight );
-
-//    TVectorF    BSLMean(1);
-//    BSLMean[0]                  = mBSLMean;
-//    hMemberlist->Add( &BSLMean );
-
-//    TVectorF    GainMean(1);
-//    GainMean[0]                 = mGainMean;
-//    hMemberlist->Add( &GainMean );
-
-//    SaveList(
-//            outRootFileName,
-//            CreateSubDirName( mChid ),
-//            hMemberlist,
-//            saveResults,
-//            mVerbosityLevel
-//            );
-
-
-
-
     /*
       we also need to save same values:
@@ -1228,3 +1190,61 @@
 }
 
-
+void
+Pixel::SetRangeUser(float xMin, float xMax, int order)
+{
+    hMaxOverlay[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+    hEdgeOverlay[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+
+    hPixelMax[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+    hPixelMedian[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+    hPixelMean[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+
+    hPixelEdgeMax[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+    hPixelEdgeMedian[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+    hPixelEdgeMean[order]->GetXaxis()->SetRangeUser(xMin, xMax);
+
+    return;
+}
+
+void
+Pixel::NormalizeSamplesTH2F(TH2F* histo)
+{
+
+    int first   = histo->GetXaxis()->GetFirst();
+    int last    = histo->GetXaxis()->GetLast();
+
+    TH2F *hTemp = new TH2F(*histo);
+    hTemp->Reset();
+
+    for (int i = first; i < last; i++)
+    {
+        TH1* hTemp1D = histo->ProjectionY("_px1", i, i+1);
+        double integral = hTemp1D->Integral();
+    //            double maximum = hTemp->GetBinContent(hTemp->GetMaximumBin());
+        hTemp1D->Scale(1/integral);
+    //            hTemp->Scale(1/maximum);
+        int first_sl   = hTemp1D->GetXaxis()->GetFirst();
+        int last_sl    = hTemp1D->GetXaxis()->GetLast();
+
+        for (int j = first_sl; j < last_sl; j++)
+        {
+            hTemp->SetBinContent(i, j, hTemp->GetBinContent(j));
+        }
+    }
+
+    histo->Reset();
+    histo->Add(hTemp);
+
+    delete hTemp;
+    return;
+}
+
+void
+Pixel::Normalize2Dhistos(int order)
+{
+    NormalizeSamplesTH2F(hMaxOverlay[order]);
+    NormalizeSamplesTH2F(hEdgeOverlay[order]);
+    return;
+}
+
+
