Index: fact/tools/pyscripts/pyfact/fir_filter.py
===================================================================
--- fact/tools/pyscripts/pyfact/fir_filter.py	(revision 13177)
+++ fact/tools/pyscripts/pyfact/fir_filter.py	(revision 13180)
@@ -6,4 +6,5 @@
 import numpy as np
 from scipy import signal
+
 import matplotlib.pyplot as plt
 
@@ -98,25 +99,19 @@
 
     """
-    npoints = 100
+    from plotters import Plotter
+    from generator import SignalGenerator
+    generate = SignalGenerator()
+    plot = Plotter('_test_SlidingAverage')
+    
     safilter = SlidingAverage(8)
-    signal = np.zeros(npoints)
-    signal[10:50] += 20.
-
-    # add noise to the signal
-    sigma = 1.5
-    signal += np.random.randn(npoints) * sigma
+    print safilter
     
-    print safilter
-    #print 'signal in:  ', signal
-    #print 'signal out: ', rsfilter(signal)
-    x=range(npoints)
-    plt.plot(x, signal, 'b', label='original')
-    plt.plot(x, safilter(signal), 'r', label='filtered')
-    plt.title(safilter.name)
-    plt.xlabel('sample')
-    plt.legend()
-    plt.grid(True)
-    plt.show()
-
+    signal = generate('len 100 noise 1.5 step 20 10 50')
+    filtered = safilter(signal)
+    plot( [signal, filtered] , ['original', 'filtered'] )
+    
+    raw_input('press any key to go on')
+    plt.close(plot.figure)
+    
 
 def _test_CFD():
@@ -124,27 +119,20 @@
     
     """
+    from plotters import Plotter
+    from generator import SignalGenerator
+    generate = SignalGenerator()
+    plot = Plotter('_test_CFD')
     
-    filt = CFD(8, 0.6)
+    sa = SlidingAverage(3)
+    print 'I apply a weak smooting with a filter length of 3'
+    cfd = CFD(8, 0.6)
+    print cfd
 
-    npoints = 100
-    signal = np.ones(npoints) * 10.
-    signal[20:30] += np.linspace(0., 100., 10)
-    signal[30:90] += np.linspace(100., 0., 60)
-    # add noise to the signal
-    sigma = 1.5
-    signal += np.random.randn(npoints) * sigma
+    signal = generate('len 100 noise 1.5 bsl -20 triangle 30 30 8 50')
+    filtered = cfd(sa(signal))
+    plot( [signal, filtered] , ['original', 'filtered'] )
     
-    print filt
-    #print 'signal in:  ', signal
-    #print 'signal out: ', rsfilter(signal)
-    x=range(npoints)
-    plt.plot(x, signal, 'b.', label='original')
-    plt.plot(x, filt(signal), 'r.', label='filtered')
-    plt.title(filt.name)
-    plt.xlabel('sample')
-    plt.legend()
-    plt.grid(True)
-    plt.show()
-
+    raw_input('press any key to go on')
+    plt.close(plot.figure)
 
 def _test_RemoveSignal():
@@ -152,28 +140,21 @@
     
     """
+    from plotters import Plotter
+    from generator import SignalGenerator
+    generate = SignalGenerator()
+    plot = Plotter('_test_RemoveSignal')
     
-    rsfilter = RemoveSignal()
+    remove_signal = RemoveSignal()
+    print remove_signal
 
-    npoints = 100
-    signal = np.ones(npoints) * 10.
-    signal[10:20] += np.linspace(0., 100., 10)
-    signal[20:80] += np.linspace(100., 0., 60)
-    # add noise to the signal
-    sigma = 3.
-    signal += np.random.randn(npoints) * sigma
+    signal = generate('len 100 noise 2 bsl -20 triangle 20 30 8 40 50 30 spike 50 50 15 50 80 50')
+    filtered = remove_signal(signal)
+    plot( [signal, filtered] , ['original', 'filtered'] )
     
-    print rsfilter
-    #print 'signal in:  ', signal
-    #print 'signal out: ', rsfilter(signal)
-    x=range(npoints)
-    plt.plot(x, signal, 'b.', label='original')
-    plt.plot(x, rsfilter(signal), 'r.', label='filtered')
-    plt.title(rsfilter.name)
-    plt.xlabel('sample')
-    plt.legend()
-    plt.grid(True)
-    plt.show()
+    raw_input('press any key to go on')
+    plt.close(plot.figure)
 
 def _test(filter_type, sig, noise_sigma = 1.):
+    from plotters import Plotter
     
     filt = filter_type
@@ -182,14 +163,8 @@
     sig += np.random.randn(samples) * noise_sigma
     
-    print filt
-    x=range(samples)
-    plt.plot(x, sig, 'b.', label='original')
-    plt.plot(x, filt(sig), 'r.', label='filtered')
-    plt.title(filt.name)
-    plt.xlabel('sample')
-    plt.legend()
-    plt.grid(True)
-    plt.show()
-    
+    plot = Plotter('_test with ' + str(filt.name))
+    plot( [sig, filt(sig)], ['original', 'filtered'] )
+    raw_input('press any key to go on')
+    plt.close(plot.figure)
 
 if __name__ == '__main__':
@@ -197,6 +172,7 @@
     
     _test_SlidingAverage()
+    _test_CFD()
     _test_RemoveSignal()
-    _test_CFD()
+    
     tsig = np.ones(100)
     _test(filter_type=SlidingAverage(8), sig=tsig, noise_sigma=3.) 
