Index: fact/tools/rootmacros/PulseTemplates/pixel.C
===================================================================
--- fact/tools/rootmacros/PulseTemplates/pixel.C	(revision 14942)
+++ fact/tools/rootmacros/PulseTemplates/pixel.C	(revision 15120)
@@ -622,4 +622,219 @@
             if (mVerbosityLevel > 2) cout << "...done" << endl;
         }
+
+        // Arrival Time Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hMaxPos" << endl;
+        hMaxPos = new TH1F (
+                    "hMaxPos",
+                    "Distribution of arrival times according to the EdgePos",
+                    1024,
+                    0,
+                    1024
+                    );
+//            hMaxPos->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hMaxPos->GetXaxis()->SetTitle( " arrival time [timeslices]" );
+        hMaxPos->GetYaxis()->SetTitle( "counts" );
+        hMaxPos->SetStats(mStats);
+        hList->Add( hMaxPos );
+
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hEdgePos" << endl;
+        hEdgePos = new TH1F (
+                    "hEdgePos",
+                    "Distribution of arrival times according to the EdgePos",
+                    1024,
+                    0,
+                    1024
+                    );
+//            hEdgePos->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hEdgePos->GetXaxis()->SetTitle( " arrival time [timeslices]" );
+        hEdgePos->GetYaxis()->SetTitle( "counts" );
+        hEdgePos->SetStats(mStats);
+        hList->Add( hEdgePos );
+
+        // Edge Slope Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hEdgeSlope" << endl;
+        hEdgeSlope = new TH1F (
+                    "hEdgeSlope",
+                    "Distribution of slope of leading edges",
+                    100*10,
+                    -9,
+                    90
+                    );
+//            hEdgeSlope->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hEdgeSlope->GetXaxis()->SetTitle( " slope [a.u.]" );
+        hEdgeSlope->GetYaxis()->SetTitle( "counts" );
+        hEdgeSlope->SetStats(mStats);
+        hList->Add( hEdgeSlope );
+
+        // Intercept Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hIntercept" << endl;
+        hIntercept = new TH1F (
+                    "hIntercept",
+                    "Distribution of Intercept of leading edges",
+                    100*10,
+                    -9,
+                    90
+                    );
+//            hEdgeSlope->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hIntercept->GetXaxis()->SetTitle( " Intercept [a.u.]" );
+        hIntercept->GetYaxis()->SetTitle( "counts" );
+        hIntercept->SetStats(mStats);
+        hList->Add( hIntercept );
+
+        // Edge lengt Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hEdgeLength" << endl;
+        hEdgeLength = new TH1F (
+                    "hIntercept",
+                    "Distribution of hEdgeLength of leading edges",
+                    20*10,
+                    0,
+                    20
+                    );
+//            hEdgeLength->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hEdgeLength->GetXaxis()->SetTitle( " edge length [a.u.]" );
+        hEdgeLength->GetYaxis()->SetTitle( "counts" );
+        hEdgeLength->SetStats(mStats);
+        hList->Add( hEdgeLength );
+
+        // Pulse length Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hPulseLength" << endl;
+        hPulseLength = new TH1F (
+                    "hPulseLength",
+                    "Distribution of pulse lengthes",
+                    1024,
+                    0,
+                    1024
+                    );
+//            hPulseLength->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hPulseLength->GetXaxis()->SetTitle( " pulse length [samples]" );
+        hPulseLength->GetYaxis()->SetTitle( "counts" );
+        hPulseLength->SetStats(mStats);
+        hList->Add( hPulseLength );
+
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hPulseLengthAPcutoff" << endl;
+        hPulseLengthAPcutoff = new TH1F (
+                    "hPulseLengthAPcutoff",
+                    "Distribution of pulse lengthes due to afterpulse cut off",
+                    1024,
+                    0,
+                    1024
+                    );
+//            hPulseLength->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hPulseLengthAPcutoff->GetXaxis()->SetTitle( " pulse length [samples]" );
+        hPulseLengthAPcutoff->GetYaxis()->SetTitle( "counts" );
+        hPulseLengthAPcutoff->SetStats(mStats);
+        hList->Add( hPulseLengthAPcutoff );
+
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hPulseLengthTLcutoff" << endl;
+        hPulseLengthTLcutoff = new TH1F (
+                    "hPulseLengthTLcutoff",
+                    "Distribution of pulse lengthes due to time line cut off",
+                    1024,
+                    0,
+                    1024
+                    );
+//            hPulseLengthTLcutoff->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hPulseLengthTLcutoff->GetXaxis()->SetTitle( " pulse length [samples]" );
+        hPulseLengthTLcutoff->GetYaxis()->SetTitle( "counts" );
+        hPulseLengthTLcutoff->SetStats(mStats);
+        hList->Add( hPulseLengthTLcutoff );
+
+        // Amplitude Distributions
+        //----------------------------------
+
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hMaxAmpl" << endl;
+        hMaxAmpl = new TH1F (
+                    "hMaxAmpl",
+                    "Distribution of MaxAmpl of leading edges",
+                    20*10,
+                    0,
+                    20
+                    );
+//            hMaxAmpl->SetAxisRange(
+//                                0,
+//                                1024,
+//                                "X");
+        hMaxAmpl->GetXaxis()->SetTitle( " Amplitude [a.u.]" );
+        hMaxAmpl->GetYaxis()->SetTitle( "counts" );
+        hMaxAmpl->SetStats(mStats);
+        hList->Add( hEdgeLength );
+
+        // Discarted Pulses Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << "hDiscartedPulses" << endl;
+        hDiscartedPulses=new TH2F(
+                    "hDiscartedPulses",
+                    "DiscartedPulses vs. preperation step",
+                    15 ,
+                    0,
+                    15 ,
+                    1000000,
+                    0,
+                    1000000
+                    );
+
+//            hMaxOverlay[order]->SetAxisRange(
+//                        mBSLMean - 5,
+//                        (mGainMean*(order+1)) + 10,
+//                        "Y");
+        hDiscartedPulses->GetXaxis()->SetTitle( "step [a.u.]" );
+        hDiscartedPulses->GetYaxis()->SetTitle( "# discartep pulses [a.u.]" );
+        //hDiscartedPulses->SetBit(TH2F::kCanRebin);
+        hDiscartedPulses->SetStats(mStats);
+        hList->Add( hDiscartedPulses );
+
+        // Afterpulse Distributions
+        //----------------------------------
+        if (mVerbosityLevel > 3) cout << "\t...booking " << hAfterPulses << endl;
+        hAfterPulses=new TH2F(
+                    "hAfterPulses",
+                    "amplitude distribution of pulses after trigger pulse",
+                    1024 ,
+                    0,
+                    1024 ,
+                    10*70,
+                    -9,
+                    60
+                    );
+
+//            hMaxOverlay[order]->SetAxisRange(
+//                        mBSLMean - 5,
+//                        (mGainMean*(order+1)) + 10,
+//                        "Y");
+        hAfterPulses->GetXaxis()->SetTitle( "delay [sample/ 0.5 ns]" );
+        hAfterPulses->GetYaxis()->SetTitle( "amplitude [mV]" );
+        //hDiscartedPulses->SetBit(TH2F::kCanRebin);
+        hAfterPulses->SetStats(mStats);
+        hList->Add( hAfterPulses );
+
     }
 }
@@ -915,4 +1130,16 @@
     }
 
+    delete hMaxPos;
+    delete hEdgePos;
+    delete hEdgeSlope;
+    delete hIntercept;
+    delete hEdgeLength;
+    delete hPulseLength;
+    delete hPulseLengthAPcutoff;
+    delete hPulseLengthTLcutoff;
+    delete hMaxAmpl;
+    delete hDiscartedPulses;
+    delete hAfterPulses;
+
     for (int order = 0;
          order < mMaxPulseOrder;
