Index: /fact/tools/pyscripts/pyfact/extractor.py
===================================================================
--- /fact/tools/pyscripts/pyfact/extractor.py	(revision 14467)
+++ /fact/tools/pyscripts/pyfact/extractor.py	(revision 14468)
@@ -106,9 +106,28 @@
     def __call__(self, data, zero_level = 0):
         all_hits = []
-        for pix_data in data:
-            hits = []
-            for i in range( data.shape[1]-1 ):
-                dat = pix_data[i] - zero_level
-                next_dat = pix_data[i+1] - zero_level
+        if data.ndim == 2:
+            for pix_data in data:
+                hits = []
+                for i in range( data.shape[1]-1 ):
+                    dat = pix_data[i] - zero_level
+                    next_dat = pix_data[i+1] - zero_level
+                    if ( self.slope > 0 ):
+                        if ( dat > 0 ):
+                            continue
+                    else:
+                        if ( dat < 0):
+                            continue
+                    if ( dat * next_dat <= 0 ):
+                        # interpolate time of zero crossing with 
+                        # linear polynomial: y = ax + b
+                        a = (next_dat - dat) / ((i+1) - i)
+                        time = -1.0/a * dat + i
+                        hits.append(time)
+                all_hits.append(hits)
+        
+        if data.ndim == 1:
+            for i in range( data.shape[0]-1 ):
+                dat = data[i] - zero_level
+                next_dat = data[i+1] - zero_level
                 if ( self.slope > 0 ):
                     if ( dat > 0 ):
@@ -122,6 +141,6 @@
                     a = (next_dat - dat) / ((i+1) - i)
                     time = -1.0/a * dat + i
-                    hits.append(time)
-            all_hits.append(hits)
+                    all_hits.append(time)
+    
         return all_hits
 
