Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformance.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformance.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformance.py	(revision 14173)
@@ -0,0 +1,78 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+
+datafilename = '/fact/raw/2012/04/17/20120417_004.fits.gz'
+calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'
+
+import numpy as np
+import itertools
+
+from ROOT import gSystem
+gSystem.Load("calfits_h.so")
+from ROOT import *
+print "Testing object creation: "
+caltest = CalFits(datafilename,calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+print "Common variables:"
+print "ROI: ", caltest.nroi
+print "#Pix: ", caltest.npix
+print "Number of events: ", caltest.nevents
+print
+
+print "Information per Event:"
+caltest.GetCalEvent()
+print "Event ID: ", caltest.event_id
+print "Trigger type: ", caltest.event_triggertype
+print "Uncalibrated data: ", caltest.event_data
+print "Calibrated data: ", caltest.npcaldata
+print "Board times: ", caltest.event_boardtimes
+print "Trigger offsets: ", caltest.event_offset
+print
+
+print "Examples of other information"
+print "Calibfile ROI: ", caltest.calib_nroi
+print "Column size BaselineMean: ", caltest.calibfile.GetN("BaselineMean")
+print "Datafile ROI: ", caltest.data_nroi
+print "Data: ", caltest.datafile.GetN("Data")
+print "StartCellData: ", caltest.datafile.GetN("StartCellData")
+print "Direct datafile access: ", caltest.datafile.GetN("StartCellData")
+print
+print "Columns of the datafile: "
+caltest.datafile.PrintColumns()
+
+def offsum(x,y):
+    return np.sum(npcalevent[x,y+5:y+15])
+vecoffsum = np.vectorize(offsum) #specifying otypes=[np.float/double] does not improve speed
+
+while caltest.GetCalEvent():
+    if caltest.event_id>30:
+        break
+    npcalevent = npcalevent.reshape((caltest.npix, caltest.nroi))
+    npthr = npcalevent>2.5 #true if above threshold
+    npthr = npthr[:,1:-14] * np.logical_not(npthr[:,:-15]) #only true for the zero crossings, shape (1400,285) [smaller due to necessary integration range]
+#    print [(x,y) for x,y in zip(npthr.nonzero()[0],npthr.nonzero()[1])] #print the coordinates, range 0-1399,0-284
+    
+    integrals = []
+    #Various versions to get the integral, all with approximately the same miserable speed (3 Hz), except for the last one (vectorized function) with ~4.3 Hz
+    #Missing: add deadtime after an integration, remove start & end of the array
+#    integrals = [np.sum(npcalevent[x,y+5:y+15]) for x,y in np.transpose(npthr.nonzero())]
+#    integrals = [np.sum(npcalevent[x,y+5:y+15]) for x,y in zip(npthr.nonzero()[0],npthr.nonzero()[1])]
+#    integrals = [np.sum(npcalevent[x,y+5:y+15]) for x,y in itertools.izip(npthr.nonzero()[0],npthr.nonzero()[1])]
+#    integrals = map((lambda index_a,index_b: np.sum(npcalevent[index_a,index_b+5:index_b+15])),npthr.nonzero()[0],npthr.nonzero()[1])
+    integrals = vecoffsum(npthr.nonzero()[0],npthr.nonzero()[1])
+    
+#    print len(integrals)
+#    for i in range(10):
+#        print i, npcalevent[0,i], integrals[i]
+#    print caltest.event_id, caltest.event_triggertype, caltest.event_caldata[10]
+#    pass
+
+del caltest
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave.py	(revision 14173)
@@ -0,0 +1,114 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+
+datafilename = '/fact/raw/2012/04/17/20120417_004.fits.gz'
+calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from ROOT import gSystem
+gSystem.Load("calfits_h.so")
+from ROOT import *
+print "Testing object creation: "
+caltest = CalFits(datafilename,calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+print "Common variables:"
+print "ROI: ", caltest.nroi
+print "#Pix: ", caltest.npix
+print "Number of events: ", caltest.nevents
+print
+
+print "Information per Event:"
+caltest.GetCalEvent()
+print "Event ID: ", caltest.event_id
+print "Trigger type: ", caltest.event_triggertype
+print "Uncalibrated data: ", caltest.event_data
+print "Calibrated data: ", caltest.npcaldata
+print "Board times: ", caltest.event_boardtimes
+print "Trigger offsets: ", caltest.event_offset
+print
+
+print "Examples of other information"
+print "Calibfile ROI: ", caltest.calib_nroi
+print "Column size BaselineMean: ", caltest.calibfile.GetN("BaselineMean")
+print "Datafile ROI: ", caltest.data_nroi
+print "Data: ", caltest.datafile.GetN("Data")
+print "StartCellData: ", caltest.datafile.GetN("StartCellData")
+print "Direct datafile access: ", caltest.datafile.GetN("StartCellData")
+print
+print "Columns of the datafile: "
+caltest.datafile.PrintColumns()
+
+#AND WE HAVE A WINNER: 43 Hz with scipy.weave!
+while caltest.GetCalEvent():
+    c_integrals = np.zeros(40000, np.float64) #Allocate the memory for about 40000 singles
+    if caltest.event_id>300:
+        break
+    
+    cppcode = """
+    //ToDo: get nroi and npix, check singles<40000
+    double slice, lastslice, integral;
+    int singles = 0;
+    double threshold = 2.5;
+    for(int px=0; px<npix; px++) {
+        lastslice = npcalevent(px*nroi);
+        for(int sl=1; sl<nroi-14; sl++) {
+            slice = npcalevent(px*nroi+sl);
+            if((lastslice<threshold)&&(slice>threshold)) {
+                integral = 0;
+                for(int l=5; l<15; l++) {
+                    integral += npcalevent(px*nroi+sl+l);
+                }
+                c_integrals(singles) = integral;
+                ++singles;
+//                std::cout << sl << " ";
+            }
+            lastslice = slice;
+        }
+    }
+//    std::cout << std::endl << singles << std::endl;
+    """
+    
+    #Passing the caltest object to weave is not possible
+    #The int() statement is necessary to add additional data type information to the variable (ie. otherwise some things would work in the C-code, other would not)
+    nroi = int(caltest.nroi)
+    npix = int(caltest.npix)
+    
+    weave.inline(cppcode, ['c_integrals', 'npcalevent','nroi','npix'], type_converters=converters.blitz)
+    
+#    print "CalFitsPerformanceWeave"
+#    for i in range(10):
+#        print i, npcalevent[i], c_integrals[i]
+#    for x in c_integrals:
+#        if x:
+#            print x,
+
+#    #Old attempts using numpy functions
+#    npcalevent = npcalevent.reshape((caltest.npix, caltest.nroi))
+#    npthr = npcalevent>2.5 #true if above threshold
+#    npthr = npthr[:,1:-14] * np.logical_not(npthr[:,:-15]) #only true for the zero crossings, shape (1400,285) [smaller due to necessary integration range]
+##    print [(x,y) for x,y in zip(npthr.nonzero()[0],npthr.nonzero()[1])] #print the coordinates, range 0-1399,0-284
+#    
+#    #Various versions to get the integral, all with approximately the same miserable speed (3 Hz), except for the last one (vectorized function) with ~4.3 Hz
+#    #Missing: add deadtime after an integration, remove start & end of the array
+##    integrals = [np.sum(npcalevent[x,y+5:y+15]) for x,y in np.transpose(npthr.nonzero())]
+##    integrals = [np.sum(npcalevent[x,y+5:y+15]) for x,y in zip(npthr.nonzero()[0],npthr.nonzero()[1])]
+##    integrals = [np.sum(npcalevent[x,y+5:y+15]) for x,y in itertools.izip(npthr.nonzero()[0],npthr.nonzero()[1])]
+##    integrals = map((lambda index_a,index_b: np.sum(npcalevent[index_a,index_b+5:index_b+15])),npthr.nonzero()[0],npthr.nonzero()[1])
+#    integrals = vecoffsum(npthr.nonzero()[0],npthr.nonzero()[1])
+#    print len(integrals)
+
+#    print caltest.event_id, caltest.event_triggertype, caltest.event_caldata[10]
+#    pass
+
+del caltest
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_2.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_2.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_2.py	(revision 14173)
@@ -0,0 +1,168 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+
+datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         #
+calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    #
+
+#define filenames
+#datafilename = '/fact/raw/2012/01/25/20120125_042.fits.gz'     # light-pulser-ext
+#  = '/fact/raw/2012/01/25/20120125_095.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_094.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_093.fits.gz'     # pedestal
+
+#datafilename = '/fact/raw/2012/01/25/20120125_075.fits.gz'
+
+#calibfilename = '/fact/raw/2012/01/25/20120125_088.drs.fits.gz'
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+from ROOT import gSystem
+gSystem.Load("calfits_h.so")   # according to old naming scheme
+
+# gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+
+from ROOT import *
+print "Testing object creation: "
+caltest = CalFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created ... looping "
+
+
+
+#print "creating plotters ..."
+
+#####################################################################################################################
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#print "Plotters created "
+###################################################################################################################
+
+print "... looping..."
+
+
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    #print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+    event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+    run_average += event
+
+    # A first test of Adrians idea of primitive signal extractor
+    # signal and background
+    extracted_signal = np.zeros(numpix)
+    for signalslice in range(90, 100):
+        extracted_signal += event[0:(numpix), signalslice]
+    # background subtraction
+    for backgroundslice in range(15, 25):
+        extracted_signal -= event[0:(numpix), backgroundslice]
+    extracted_average += extracted_signal
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+del caltest
+
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+print "creating plotters ..."
+
+#####################################################################################################################
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#print "Plotters created "
+###################################################################################################################
+
+
+
+
+
+
+#myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+myplotter2( data_average_run / (numpix * numevents) , 'average signal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+mycamplotter( extracted_average / (10 * numevents) )      # plot the extracted signal of all pixel
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+    answer = raw_input('type "quit" to quit ')
+
+
+
+
+#del caltest
+
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_3.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_3.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_3.py	(revision 14173)
@@ -0,0 +1,174 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+
+
+
+# 2012 01 25
+#datafilename = '/fact/raw/2012/01/25/20120125_042.fits.gz'     # light-pulser-ext
+#  = '/fact/raw/2012/01/25/20120125_095.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_094.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_093.fits.gz'     # pedestal
+#datafilename = '/fact/raw/2012/01/25/20120125_075.fits.gz'
+#calibfilename = '/fact/raw/2012/01/25/20120125_088.drs.fits.gz'
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+#from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+from ROOT import gSystem
+## gSystem.Load("calfits_h.so")   # according to old naming scheme
+
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+
+from ROOT import *
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+#####################################################################################################################
+#print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#print "Plotters created "
+###################################################################################################################
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    #print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+    event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+    run_average += event
+
+    # A first test of Adrians idea of primitive signal extractor
+    # signal and background
+    extracted_signal = np.zeros(numpix)
+    for signalslice in range(90, 100):
+        extracted_signal += event[0:(numpix), signalslice]
+    # background subtraction
+    for backgroundslice in range(15, 25):
+        extracted_signal -= event[0:(numpix), backgroundslice]
+    extracted_average += extracted_signal
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+print "Plotters created "
+###################################################################################################################
+
+
+
+
+
+
+myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+#myplotter2( data_average_run / (numpix * numevents) , 'average signal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+#mycamplotter( extracted_average / (10 * numevents) )      # plot the extracted signal of all pixel
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+    answer = raw_input('type "quit" to quit ')
+
+
+
+
+del caltest
+print "caltest deleted "
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_4.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_4.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_4.py	(revision 14173)
@@ -0,0 +1,174 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+
+
+
+# 2012 01 25
+#datafilename = '/fact/raw/2012/01/25/20120125_042.fits.gz'     # light-pulser-ext
+#  = '/fact/raw/2012/01/25/20120125_095.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_094.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_093.fits.gz'     # pedestal
+#datafilename = '/fact/raw/2012/01/25/20120125_075.fits.gz'
+#calibfilename = '/fact/raw/2012/01/25/20120125_088.drs.fits.gz'
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+#####################################################################################################################
+#print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#print "Plotters created "
+###################################################################################################################
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    #print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+    event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+    run_average += event
+
+    # A first test of Adrians idea of primitive signal extractor
+    # signal and background
+    extracted_signal = np.zeros(numpix)
+    for signalslice in range(90, 100):
+        extracted_signal += event[0:(numpix), signalslice]
+    # background subtraction
+    for backgroundslice in range(15, 25):
+        extracted_signal -= event[0:(numpix), backgroundslice]
+    extracted_average += extracted_signal
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=-2, vmax=2)    # for pedestal data
+
+
+print "Plotters created "
+###################################################################################################################
+
+
+
+
+
+
+myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+myplotter2( data_average_run / (numpix * numevents) , 'average signal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+mycamplotter( extracted_average / (10 * numevents) )      # plot the extracted signal of all pixel
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+    answer = raw_input('type "quit" to quit ')
+
+
+
+
+del caltest
+print "caltest deleted "
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_5.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_5.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_5.py	(revision 14173)
@@ -0,0 +1,176 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+
+# 2012 01 25
+#datafilename = '/fact/raw/2012/01/25/20120125_042.fits.gz'     # light-pulser-ext
+#  = '/fact/raw/2012/01/25/20120125_095.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_094.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_093.fits.gz'     # pedestal
+#datafilename = '/fact/raw/2012/01/25/20120125_075.fits.gz'
+#calibfilename = '/fact/raw/2012/01/25/20120125_088.drs.fits.gz'
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+#####################################################################################################################
+#print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#print "Plotters created "
+###################################################################################################################
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+    print 'event id:', caltest.event_id
+    print 'Trigger Type:', caltest.event_triggertype
+    print
+
+    event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+    run_average += event
+
+    # A first test of Adrians idea of primitive signal extractor
+    # signal and background
+    extracted_signal = np.zeros(numpix)
+    for signalslice in range(90, 100):
+        extracted_signal += event[0:(numpix), signalslice]
+    # background subtraction
+    for backgroundslice in range(15, 25):
+        extracted_signal -= event[0:(numpix), backgroundslice]
+    extracted_average += extracted_signal
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+del caltest
+print "caltest deleted "
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+
+#####################################################################################################################
+#   print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#   myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#   myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#   mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=-2, vmax=2)    # for pedestal data
+
+
+#   print "Plotters created "
+###################################################################################################################
+
+
+
+
+
+
+#   myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+#   myplotter2( data_average_run / (numpix * numevents) , 'average signal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+#   mycamplotter( extracted_average / (10 * numevents) )      # plot the extracted signal of all pixel
+
+#   answer = raw_input('type "quit" to quit ')
+#   while not 'quit' in answer:
+#       answer = raw_input('type "quit" to quit ')
+
+
+
+
+#   del caltest
+#  print "caltest deleted "
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_6.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_6.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_6.py	(revision 14173)
@@ -0,0 +1,223 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+
+
+
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+datafilename = '/fact/raw/2012/04/17/20120417_046.fits.gz'          # NROI 300, 5 minutes physics data with
+                                                                    # interleaved LP_ext
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+pedestal = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array pedestal created"
+pedestal_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array pedestal_average created"
+ped_extracted_average = np.zeros(numpix)
+print "Array ped_extracted_average created "
+ped_data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+
+#####################################################################################################################
+#print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+#myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#print "Plotters created "
+###################################################################################################################
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if ((caltest.event_triggertype > 256) and (caltest.event_triggertype < 512)):  #ext LP event
+
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+
+        num_LP_ev = num_LP_ev + 1
+
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        run_average += event
+
+        # A first test of Adrians idea of primitive signal extractor
+        # signal and background
+        extracted_signal = np.zeros(numpix)
+        for signalslice in range(90, 100):
+            extracted_signal += event[0:(numpix), signalslice]
+        # background subtraction
+        for backgroundslice in range(15, 25):
+            extracted_signal -= event[0:(numpix), backgroundslice]
+        extracted_average += extracted_signal
+
+
+    elif (caltest.event_triggertype == 1024):    # Pedestal event
+        num_ped = num_ped +1
+        print 'pedestal events, event id:', caltest.event_id
+
+        pedestal = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        pedestal_average += pedestal
+
+        # A first test of Adrians idea of primitive signal extractor
+        # signal and background
+        extracted_pedestal = np.zeros(numpix)
+        for signalslice in range(90, 100):
+            extracted_pedestal += event[0:(numpix), signalslice]
+        # background subtraction
+        for backgroundslice in range(15, 25):
+            extracted_pedestal -= event[0:(numpix), backgroundslice]
+        ped_extracted_average += extracted_pedestal
+
+
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+    ped_data_average_run += pedestal_average[i]
+
+print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print "Number of pedestal: ", num_ped
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=0, vmax=350)  # for Lightpulser data
+
+mycamplotter2 = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=-2, vmax=2)    # for pedestal data
+
+
+print "Plotters created "
+###################################################################################################################
+
+
+#myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+myplotter2( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+myplotter( ped_data_average_run / (numpix * num_ped) , 'average pedestal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+mycamplotter( extracted_average / (10 * num_LP_ev) )     # plot the extracted signal of all pixel
+
+mycamplotter2( ped_extracted_average / (10 * num_ped) )  # plot the extracted pedestal of all pixel
+
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
+
+
+
+#   del caltest
+#  print "caltest deleted "
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_7.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_7.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsPerformanceWeave_7.py	(revision 14173)
@@ -0,0 +1,190 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+datafilename = '/fact/raw/2012/04/17/20120417_046.fits.gz'          # NROI 300, 5 minutes physics data with
+                                                                    # interleaved LP_ext
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+pedestal = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array pedestal created"
+pedestal_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array pedestal_average created"
+ped_extracted_average = np.zeros(numpix)
+print "Array ped_extracted_average created "
+ped_data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if ((caltest.event_triggertype > 256) and (caltest.event_triggertype < 512)):  #ext LP event
+
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+
+        num_LP_ev = num_LP_ev + 1
+
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        run_average += event
+
+        # A first test of Adrians idea of primitive signal extractor
+        # signal and background
+        extracted_signal = np.zeros(numpix)
+        for signalslice in range(90, 100):
+            extracted_signal += event[0:(numpix), signalslice]
+        # background subtraction
+        for backgroundslice in range(15, 25):
+            extracted_signal -= event[0:(numpix), backgroundslice]
+        extracted_average += extracted_signal
+
+
+    elif (caltest.event_triggertype == 1024):    # Pedestal event
+        num_ped = num_ped +1
+        print 'pedestal events, event id:', caltest.event_id
+
+        pedestal = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        pedestal_average += pedestal
+
+        # A first test of Adrians idea of primitive signal extractor
+        # signal and background
+        extracted_pedestal = np.zeros(numpix)
+        for signalslice in range(90, 100):
+            extracted_pedestal += event[0:(numpix), signalslice]
+        # background subtraction
+        for backgroundslice in range(15, 25):
+            extracted_pedestal -= event[0:(numpix), backgroundslice]
+        ped_extracted_average += extracted_pedestal
+
+
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+    ped_data_average_run += pedestal_average[i]
+
+print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print "Number of pedestal: ", num_ped
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+mycamplotter = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=0, vmax=450)  # for Lightpulser data
+mycamplotter2 = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=-10, vmax=10)    # for pedestal data
+
+print "Plotters created "
+###################################################################################################################
+
+
+#myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+myplotter2( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+myplotter( ped_data_average_run / (numpix * num_ped) , 'average pedestal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+mycamplotter( extracted_average / (10 * num_LP_ev) )     # plot the extracted signal of all pixel
+
+mycamplotter2( ped_extracted_average / (10 * num_ped) )  # plot the extracted pedestal of all pixel
+
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
Index: /fact/tools/pyscripts/sandbox/vogler/CalFitsTest.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/CalFitsTest.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/CalFitsTest.py	(revision 14173)
@@ -0,0 +1,58 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+
+datafilename = '/fact/raw/2012/04/17/20120417_004.fits.gz'
+calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'
+
+import numpy as np
+
+from ROOT import gSystem
+gSystem.Load("calfits_h.so")
+from ROOT import *
+print "Testing object creation: "
+caltest = CalFits(datafilename,calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+print "Common variables:"
+print "ROI: ", caltest.nroi
+print "#Pix: ", caltest.npix
+print "Number of events: ", caltest.nevents
+print
+
+print "Information per Event:"
+caltest.GetCalEvent()
+print "Calibrated data in numpy array: ", npcalevent
+print "Event ID: ", caltest.event_id
+print "Trigger type: ", caltest.event_triggertype
+print "Uncalibrated data: ", caltest.event_data
+print "Calibrated data: ", caltest.npcaldata
+print "Board times: ", caltest.event_boardtimes
+print "Trigger offsets: ", caltest.event_offset
+print
+
+print "Examples of other information"
+print "Calibfile ROI: ", caltest.calib_nroi
+print "Column size BaselineMean: ", caltest.calibfile.GetN("BaselineMean")
+print "Datafile ROI: ", caltest.data_nroi
+print "Data: ", caltest.datafile.GetN("Data")
+print "StartCellData: ", caltest.datafile.GetN("StartCellData")
+print "Direct datafile access: ", caltest.datafile.GetN("StartCellData")
+print
+print "Columns of the datafile: "
+caltest.datafile.PrintColumns()
+
+#while caltest.GetCalEvent():
+#    if caltest.event_id>10:
+#        break
+#    print caltest.event_id, caltest.event_triggertype, caltest.event_caldata[10]
+#    pass
+#print
+
+del caltest
Index: /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_1.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_1.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_1.py	(revision 14173)
@@ -0,0 +1,132 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+
+
+
+
+#define filenames
+
+# 2011 12 05
+calibfilename = '/fact/raw/2011/12/05/20111205_011.drs.fits.gz'    # NROI 300, pedestal
+
+datafilename = '/fact/raw/2011/12/05/20111205_022.fits.gz'          # NROI 300, 5 minutes physics data with
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+# from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if (caltest.event_triggertype == 4):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event
+
+print "Looped ... "
+
+
+
+
+#for i in range (0, (numpix - 1) ):
+#    data_average_run += run_average[i]
+#print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print "Number of pedestal: ", num_ped
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter3 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter4 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+print "Plotters created "
+###################################################################################################################
+
+myplotter((run_average[20]) / num_LP_ev, 'pix 20, average' )
+
+myplotter2((run_average[21]) / num_LP_ev, 'pix 21, average' )
+
+myplotter3((run_average[22]) / num_LP_ev, 'pix 22, average' )
+
+myplotter4( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
Index: /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_2.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_2.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_2.py	(revision 14173)
@@ -0,0 +1,132 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+
+
+
+
+#define filenames
+
+# 2011 12 05
+calibfilename = '/fact/raw/2011/12/05/20111205_011.drs.fits.gz'    # NROI 300, pedestal
+
+datafilename = '/fact/raw/2011/12/05/20111205_022.fits.gz'          # NROI 300, 5 minutes physics data with
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+# from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if (caltest.event_triggertype == 4):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event
+
+print "Looped ... "
+
+
+
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print "Number of pedestal: ", num_ped
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter3 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter4 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+print "Plotters created "
+###################################################################################################################
+
+myplotter((run_average[20]) / num_LP_ev, 'pix 20, average' )
+
+myplotter2((run_average[21]) / num_LP_ev, 'pix 21, average' )
+
+myplotter3((run_average[22]) / num_LP_ev, 'pix 22, average' )
+
+myplotter4( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
Index: /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS.py	(revision 14173)
@@ -0,0 +1,138 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+
+
+
+
+#define filenames
+
+# 2011 12 05
+calibfilename = '/fact/raw/2011/12/05/20111205_011.drs.fits.gz'    # NROI 300, pedestal
+
+datafilename = '/fact/raw/2011/12/05/20111205_022.fits.gz'          # NROI 300, 5 minutes physics data with
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+# from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if (caltest.event_triggertype == 4):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event
+
+print "Looped ... "
+
+
+
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]**2
+print "Looped second loop "
+data_average_run = data_average_run/(numpix * num_LP_ev)
+data_average_run = np.sqrt(data_average_run)
+
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print "Number of pedestal: ", num_ped
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+#myplotter3 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter4 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+print "Plotters created "
+###################################################################################################################
+
+myplotter((run_average[20]) / num_LP_ev, 'pix 20, average' )
+
+myplotter2((run_average[21]) / num_LP_ev, 'pix 21, average' )
+
+#myplotter3((run_average[22]) / num_LP_ev, 'pix 22, average' )
+
+#myplotter3(data_average_run / (numpix * num_LP_ev), 'average signal (all pixel) over the whole run' )
+
+myplotter4(data_average_run , 'RMS (all pixel) over the whole run' )
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
Index: /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_2.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_2.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_2.py	(revision 14173)
@@ -0,0 +1,142 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+
+
+
+
+#define filenames
+
+# 2011 12 05
+calibfilename = '/fact/raw/2011/12/05/20111205_011.drs.fits.gz'    # NROI 300, pedestal
+
+datafilename = '/fact/raw/2011/12/05/20111205_022.fits.gz'          # NROI 300, 5 minutes physics data with
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+# from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if (caltest.event_triggertype == 4):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event**2
+
+print "Looped ... "
+
+run_average = run_average/num_LP_ev
+run_average = np.sqrt(run_average)
+
+
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]**2
+print "Looped second loop "
+data_average_run = data_average_run/numpix
+data_average_run = np.sqrt(data_average_run)
+
+
+
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print "Number of pedestal: ", num_ped
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+#myplotter3 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter4 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+print "Plotters created "
+###################################################################################################################
+
+myplotter(run_average[20], 'pix 20, average' )
+
+myplotter2(run_average[21], 'pix 21, average' )
+
+#myplotter3((run_average[22]) / num_LP_ev, 'pix 22, average' )
+
+#myplotter3(data_average_run / (numpix * num_LP_ev), 'average signal (all pixel) over the whole run' )
+
+myplotter4(data_average_run , 'RMS (all pixel) over the whole run' )
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
Index: /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_3.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_3.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_3.py	(revision 14173)
@@ -0,0 +1,134 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+#define filenames
+
+# 2011 12 05
+calibfilename = '/fact/raw/2011/12/05/20111205_011.drs.fits.gz'    # NROI 300, pedestal
+
+datafilename = '/fact/raw/2011/12/05/20111205_022.fits.gz'          # NROI 300, 5 minutes physics data with
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+# from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+
+data_average_run = np.zeros(numroi)
+over_thresh = np.zeros(numpix)  # count for every pixel how many times first slice over 50mV
+
+run_rms = np.zeros((numpix, numroi))   # rms
+
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+
+
+    if (caltest.event_triggertype == 4):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        for j in range (0, (numpix - 1)):
+            if ((event[j,0] >50)and((j!=863)and(j!=297)and(j!=868))): #exclude crazy pixel (hard ID)
+                over_thresh[j]=over_thresh[j]+1
+                run_rms[j, : ]=run_rms[j, : ] + (event[j, : ])**2
+
+
+for k in range (0, (numpix - 1)):
+    run_rms[k, : ]=run_rms[k, : ]/over_thresh[k]
+run_rms = np.sqrt(run_rms)
+
+for i in range (0, (numpix - 1) ):
+    data_average_run = data_average_run + run_rms[i]**2
+
+data_average_run = data_average_run/numpix
+data_average_run = np.sqrt(data_average_run)
+
+maxindex = over_thresh.argmax()
+
+del caltest
+print "caltest deleted "
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter3 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter4 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+over_th_plotter = Plotter('first slice ofer 50mv', xlabel='pixel number', ylabel='number of times first slice over 50mV')
+
+print "Plotters created "
+###################################################################################################################
+
+myplotter(run_rms[20], 'pix 20 rms' )
+myplotter2(run_rms[21], 'pix 21 rms' )
+myplotter3(run_rms[maxindex], 'rms: pixel most times over 50mV')
+
+
+over_th_plotter(over_thresh, 'run 20111205_022')
+
+
+myplotter4(data_average_run , 'RMS (all pixel) over the whole run' )
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
Index: /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_4.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_4.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/DRS_End_Noise_RMS_4.py	(revision 14173)
@@ -0,0 +1,135 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+#define filenames
+
+# 2011 12 05
+calibfilename = '/fact/raw/2012/06/01/20120601_013.drs.fits.gz'    # NROI 300, pedestal
+
+datafilename = '/fact/raw/2012/06/01/20120601_017.fits.gz'          # NROI 300, 5 minutes physics data with
+
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+# from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+
+data_average_run = np.zeros(numroi)
+over_thresh = np.zeros(numpix)  # count for every pixel how many times first slice over 50mV
+
+run_rms = np.zeros((numpix, numroi))   # rms
+
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+
+
+    if (caltest.event_triggertype == 4):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        for j in range (0, (numpix - 1)):
+            if ((event[j,0] >50)and((j!=863)and(j!=297)and(j!=868))): #exclude crazy pixel (hard ID)
+                over_thresh[j]=over_thresh[j]+1
+                run_rms[j, : ]=run_rms[j, : ] + (event[j, : ])**2
+
+
+for k in range (0, (numpix - 1)):
+    run_rms[k, : ]=run_rms[k, : ]/over_thresh[k]
+run_rms = np.sqrt(run_rms)
+
+for i in range (0, (numpix - 1) ):
+    data_average_run = data_average_run + run_rms[i]**2
+
+data_average_run = data_average_run/numpix
+data_average_run = np.sqrt(data_average_run)
+
+maxindex = over_thresh.argmax()
+
+del caltest
+print "caltest deleted "
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print
+
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter3 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+myplotter4 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+over_th_plotter = Plotter('first slice ofer 50mv', xlabel='pixel number', ylabel='number of times first slice over 50mV')
+
+print "Plotters created "
+###################################################################################################################
+
+myplotter(run_rms[20], 'pix 20 rms' )
+myplotter2(run_rms[21], 'pix 21 rms' )
+myplotter3(run_rms[maxindex], 'rms: pixel most times over 50mV')
+
+print "Pix number (HW ID) most times over 50mV ", maxindex
+
+over_th_plotter(over_thresh, 'run 20111205_022')
+
+
+myplotter4(data_average_run , 'RMS (all pixel) over the whole run' )
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
+
Index: /fact/tools/pyscripts/sandbox/vogler/FACTmapV6a.txt
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/FACTmapV6a.txt	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/FACTmapV6a.txt	(revision 14173)
@@ -0,0 +1,1453 @@
+#
+# softID:  0 - 1439  (spiral from center)
+# hardID:  CBPX    Crate 0..3  Board 0..9  Patch 0..3  piXel 0..8
+# G-APD:   G_APD chip identifier
+# V_op:    default Bias Voltage to be applied
+# HV_B:    Bias Voltage Board   0..9
+# HV_Ch:   Bias Voltage Channel 0..32
+# pos_X/pos_Y: position in pixel-size units
+# hardCID: Continuous hard-ID
+# status:  0=ok, 1=crazy, 2=dead
+#
+#           CBPX
+# softID  hardID  geom_i  geom_j   G-APD   V_op  HV_B HV_C   pos_X     pos_Y    radius  hardCID stat
+       0    1036       0       0     957   70.64   4   7      0.00      0.50      0.25     393  0
+       1    1033       0       1     997   70.68   4   6      0.00     -0.50      0.25     390  0
+       2    1034      -1       0    1087   70.64   4   7     -0.87      0.00      0.75     391  0
+       3    1037      -1      -1     844   70.64   4   7     -0.87      1.00      1.75     394  0
+       4    3020       0      -1     769   70.68   9   4      0.00      1.50      2.25    1098  0
+       5    1038       1      -1     923   70.65   4   7      0.87      1.00      1.75     395  0
+       6    1035       1       0     977   70.64   4   7      0.87      0.00      0.75     392  0
+       7    1032       1       1    1107   70.68   4   6      0.87     -1.00      1.75     389  0
+       8    1030       0       2     915   70.67   4   6      0.00     -1.50      2.25     387  0
+       9    1031      -1       1     777   70.67   4   6     -0.87     -1.00      1.75     388  0
+      10    1028      -2       1     906   70.79   4   5     -1.73     -0.50      3.25     386  0
+      11    2732      -2       0    1090   70.72   6  30     -1.73      0.50      3.25    1001  0
+      12    2735      -2      -1    1200   70.72   6  31     -1.73      1.50      5.25    1004  0
+      13    3021      -1      -2    1338   70.69   9   4     -0.87      2.00      4.75    1099  0
+      14    3023       0      -2     794   70.69   9   4      0.00      2.50      6.25    1101  0
+      15    3022       1      -2     985   70.69   9   4      0.87      2.00      4.75    1100  0
+      16    3034       2      -1     898   70.77   9   7      1.73      1.50      5.25    1111  0
+      17    3031       2       0     900   70.73   9   6      1.73      0.50      3.25    1108  0
+      18     737       2       1     465   70.78   1  31      1.73     -0.50      3.25     286  0
+      19     734       2       2     513   70.77   1  31      1.73     -1.50      5.25     283  0
+      20    1018       1       2    1193   70.83   4   3      0.87     -2.00      4.75     377  0
+      21    1016       0       3     466   70.83   4   3      0.00     -2.50      6.25     375  0
+      22    1017      -1       2    1177   70.83   4   3     -0.87     -2.00      4.75     376  0
+      23    1025      -2       2     530   70.79   4   5     -1.73     -1.50      5.25     383  0
+      24    1026      -3       1    1085   70.79   4   5     -2.60     -1.00      7.75     384  0
+      25    2730      -3       0     802   70.72   6  30     -2.60      0.00      6.75     999  0
+      26    2733      -3      -1     916   70.72   6  30     -2.60      1.00      7.75    1002  0
+      27    2736      -3      -2     954   70.73   6  31     -2.60      2.00     10.75    1005  0
+      28    2738      -2      -2     932   70.73   6  31     -1.73      2.50      9.25    1007  0
+      29    3024      -1      -3    1088   70.69   9   5     -0.87      3.00      9.75    1102  0
+      30    3026       0      -3     907   70.70   9   5      0.00      3.50     12.25    1104  0
+      31    3025       1      -3     778   70.69   9   5      0.87      3.00      9.75    1103  0
+      32    3037       2      -2    1089   70.77   9   7      1.73      2.50      9.25    1114  0
+      33    3036       3      -2     561   70.77   9   7      2.60      2.00     10.75    1113  0
+      34    3033       3      -1     940   70.74   9   6      2.60      1.00      7.75    1110  0
+      35    3030       3       0     929   70.73   9   6      2.60      0.00      6.75    1107  0
+      36     736       3       1     563   70.78   1  31      2.60     -1.00      7.75     285  0
+      37     733       3       2    1197   70.75   1  30      2.60     -2.00     10.75     282  0
+      38     731       2       3     899   70.75   1  30      1.73     -2.50      9.25     280  0
+      39    1015       1       3    1195   70.82   4   3      0.87     -3.00      9.75     374  0
+      40    1013       0       4     159   70.82   4   2      0.00     -3.50     12.25     372  0
+      41    1014      -1       3     157   70.82   4   3     -0.87     -3.00      9.75     373  0
+      42    1022      -2       3     896   70.80   4   4     -1.73     -2.50      9.25     380  0
+      43    1023      -3       2     911   70.80   4   4     -2.60     -2.00     10.75     381  0
+      44    1024      -4       2     522   70.78   4   5     -3.46     -1.50     14.25     382  0
+      45    1027      -4       1     556   70.79   4   5     -3.46     -0.50     12.25     385  0
+      46    2731      -4       0     856   70.72   6  30     -3.46      0.50     12.25    1000  0
+      47    2734      -4      -1     927   70.72   6  31     -3.46      1.50     14.25    1003  0
+      48    2737      -4      -2     946   70.73   6  31     -3.46      2.50     18.25    1006  0
+      49    2720      -3      -3     453   70.83   6  28     -2.60      3.00     15.75     990  0
+      50    2722      -2      -3     883   70.83   6  28     -1.73      3.50     15.25     992  0
+      51    3027      -1      -4     937   70.71   9   5     -0.87      4.00     16.75    1105  0
+      52    3010       0      -4    1184   70.91   9   2      0.00      4.50     20.25    1089  0
+      53    3028       1      -4     886   70.71   9   5      0.87      4.00     16.75    1106  0
+      54    3111       2      -3     799   70.86   9  10      1.73      3.50     15.25    1126  0
+      55    3110       3      -3     419   70.86   9  10      2.60      3.00     15.75    1125  0
+      56    3038       4      -2     528   70.77   9   7      3.46      2.50     18.25    1115  0
+      57    3035       4      -1     878   70.77   9   7      3.46      1.50     14.25    1112  0
+      58    3032       4       0     986   70.74   9   6      3.46      0.50     12.25    1109  0
+      59     738       4       1     514   70.78   1  31      3.46     -0.50     12.25     287  0
+      60     735       4       2    1198   70.78   1  31      3.46     -1.50     14.25     284  0
+      61     732       4       3     842   70.75   1  30      3.46     -2.50     18.25     281  0
+      62     730       3       3     922   70.75   1  30      2.60     -3.00     15.75     279  0
+      63     727       2       4    1051   70.89   1  29      1.73     -3.50     15.25     277  0
+      64    1012       1       4     314   70.82   4   2      0.87     -4.00     16.75     371  0
+      65    1010       0       5     904   70.80   4   2      0.00     -4.50     20.25     369  0
+      66    1011      -1       4     458   70.81   4   2     -0.87     -4.00     16.75     370  0
+      67    1118      -2       4    1382   70.90   4  11     -1.73     -3.50     15.25     413  0
+      68    1020      -3       3     307   70.80   4   4     -2.60     -3.00     15.75     378  0
+      69    1021      -4       3     919   70.80   4   4     -3.46     -2.50     18.25     379  0
+      70    1128      -5       2     797   70.97   4  13     -4.33     -2.00     22.75     422  0
+      71    1132      -5       1     206   70.86   4  14     -4.33     -1.00     19.75     425  0
+      72    1135      -5       0    1335   70.87   4  15     -4.33      0.00     18.75     428  0
+      73    1138      -5      -1    1394   70.88   4  15     -4.33      1.00     19.75     431  0
+      74    2712      -5      -2     310   70.92   6  26     -4.33      2.00     22.75     983  0
+      75    2715      -5      -3     170   70.93   6  27     -4.33      3.00     27.75     986  0
+      76    2721      -4      -3     494   70.83   6  28     -3.46      3.50     24.25     991  0
+      77    2723      -3      -4    1082   70.84   6  28     -2.60      4.00     22.75     993  0
+      78    2725      -2      -4    1093   70.84   6  29     -1.73      4.50     23.25     995  0
+      79    3011      -1      -5     156   70.91   9   2     -0.87      5.00     25.75    1090  0
+      80    3013       0      -5    1153   70.91   9   2      0.00      5.50     30.25    1092  0
+      81    3012       1      -5     435   70.91   9   2      0.87      5.00     25.75    1091  0
+      82    3114       2      -4    1158   70.85   9  11      1.73      4.50     23.25    1129  0
+      83    3113       3      -4     941   70.86   9  10      2.60      4.00     22.75    1128  0
+      84    3112       4      -3     901   70.86   9  10      3.46      3.50     24.25    1127  0
+      85    3124       5      -3     443   70.94   9  13      4.33      3.00     27.75    1138  0
+      86    3121       5      -2     942   70.95   9  12      4.33      2.00     22.75    1135  0
+      87    3137       5      -1    1100   70.88   9  15      4.33      1.00     19.75    1150  0
+      88    3134       5       0     925   70.88   9  15      4.33      0.00     18.75    1147  0
+      89    3131       5       1     445   70.88   9  14      4.33     -1.00     19.75    1144  0
+      90     707       5       2     331   70.96   1  27      4.33     -2.00     22.75     259  0
+      91     704       5       3    1168   70.96   1  27      4.33     -3.00     27.75     256  0
+      92     728       4       4    1157   70.89   1  29      3.46     -3.50     24.25     278  0
+      93     726       3       4     909   70.89   1  29      2.60     -4.00     22.75     276  0
+      94     724       2       5     791   70.89   1  29      1.73     -4.50     23.25     274  0
+      95    1008       1       5    2283   71.00   4   1      0.87     -5.00     25.75     368  0
+      96    1006       0       6     173   70.99   4   1      0.00     -5.50     30.25     366  0
+      97    1007      -1       5    2301   70.99   4   1     -0.87     -5.00     25.75     367  0
+      98    1115      -2       5    1189   70.90   4  11     -1.73     -4.50     23.25     410  0
+      99    1116      -3       4    1343   70.90   4  11     -2.60     -4.00     22.75     411  0
+     100    1117      -4       4    1345   70.90   4  11     -3.46     -3.50     24.25     412  0
+     101    1125      -5       3    1143   70.97   4  13     -4.33     -3.00     27.75     419  0
+     102    1126      -6       3    2285   70.97   4  13     -5.20     -2.50     33.25     420  0
+     103    1130      -6       2    1104   70.86   4  14     -5.20     -1.50     29.25     423  0
+     104    1133      -6       1    1091   70.87   4  14     -5.20     -0.50     27.25     426  0
+     105    1136      -6       0    1392   70.87   4  15     -5.20      0.50     27.25     429  0
+     106    2710      -6      -1     491   70.92   6  26     -5.20      1.50     29.25     981  0
+     107    2713      -6      -2     918   70.92   6  26     -5.20      2.50     33.25     984  0
+     108    2716      -6      -3     356   70.93   6  27     -5.20      3.50     39.25     987  0
+     109    2718      -5      -4    1388   70.93   6  27     -4.33      4.00     34.75     989  0
+     110    2724      -4      -4    1110   70.84   6  29     -3.46      4.50     32.25     994  0
+     111    2726      -3      -5     467   70.85   6  29     -2.60      5.00     31.75     996  0
+     112    2728      -2      -5    1325   70.85   6  29     -1.73      5.50     33.25     998  0
+     113    3014      -1      -6    1181   70.91   9   3     -0.87      6.00     36.75    1093  0
+     114    3016       0      -6    1154   70.92   9   3      0.00      6.50     42.25    1095  0
+     115    3015       1      -6     890   70.91   9   3      0.87      6.00     36.75    1094  0
+     116    3117       2      -5     496   70.85   9  11      1.73      5.50     33.25    1132  0
+     117    3116       3      -5    1188   70.85   9  11      2.60      5.00     31.75    1131  0
+     118    3115       4      -4    1174   70.85   9  11      3.46      4.50     32.25    1130  0
+     119    3127       5      -4    1167   70.94   9  13      4.33      4.00     34.75    1141  0
+     120    3126       6      -3     775   70.94   9  13      5.20      3.50     39.25    1140  0
+     121    3123       6      -2    2291   70.95   9  12      5.20      2.50     33.25    1137  0
+     122    3120       6      -1    2294   70.95   9  12      5.20      1.50     29.25    1134  0
+     123    3136       6       0    1092   70.88   9  15      5.20      0.50     27.25    1149  0
+     124    3133       6       1     807   70.88   9  14      5.20     -0.50     27.25    1146  0
+     125    3130       6       2     315   70.88   9  14      5.20     -1.50     29.25    1143  0
+     126     706       6       3    2300   70.96   1  27      5.20     -2.50     33.25     258  0
+     127     703       6       4     421   70.96   1  26      5.20     -3.50     39.25     255  0
+     128     701       5       4    2296   70.95   1  26      4.33     -4.00     34.75     253  0
+     129     725       4       5     902   70.89   1  29      3.46     -4.50     32.25     275  0
+     130     723       3       5     483   70.89   1  28      2.60     -5.00     31.75     273  0
+     131     721       2       6     210   70.88   1  28      1.73     -5.50     33.25     271  0
+     132    1005       1       6    1037   70.98   4   1      0.87     -6.00     36.75     365  0
+     133    1003       0       7     806   70.98   4   0      0.00     -6.50     42.25     363  0
+     134    1004      -1       6    1170   70.98   4   1     -0.87     -6.00     36.75     364  0
+     135    1112      -2       6    1286   70.89   4  10     -1.73     -5.50     33.25     407  0
+     136    1113      -3       5    1332   70.89   4  10     -2.60     -5.00     31.75     408  0
+     137    1114      -4       5     933   70.90   4  11     -3.46     -4.50     32.25     409  0
+     138    1122      -5       4    2287   70.97   4  12     -4.33     -4.00     34.75     416  0
+     139    1123      -6       4     306   70.97   4  12     -5.20     -3.50     39.25     417  0
+     140    1124      -7       3     892   70.97   4  13     -6.06     -3.00     45.75     418  0
+     141    1127      -7       2     334   70.97   4  13     -6.06     -2.00     40.75     421  0
+     142    1131      -7       1    1333   70.86   4  14     -6.06     -1.00     37.75     424  0
+     143    1134      -7       0    1185   70.87   4  15     -6.06      0.00     36.75     427  0
+     144    1137      -7      -1    1180   70.87   4  15     -6.06      1.00     37.75     430  0
+     145    2711      -7      -2     773   70.92   6  26     -6.06      2.00     40.75     982  0
+     146    2714      -7      -3     166   70.93   6  27     -6.06      3.00     45.75     985  0
+     147    2717      -7      -4     429   70.93   6  27     -6.06      4.00     52.75     988  0
+     148    2700      -6      -4     798   71.01   6  24     -5.20      4.50     47.25     972  0
+     149    2702      -5      -5     808   71.02   6  24     -4.33      5.00     43.75     974  0
+     150    2727      -4      -5    1346   70.85   6  29     -3.46      5.50     42.25     997  0
+     151    2830      -3      -6    2281   71.00   7   6     -2.60      6.00     42.75    1035  0
+     152    2832      -2      -6     339   71.00   7   6     -1.73      6.50     45.25    1037  0
+     153    3017      -1      -7    1159   70.92   9   3     -0.87      7.00     49.75    1096  0
+     154    3000       0      -7     887   71.11   9   0      0.00      7.50     56.25    1080  0
+     155    3018       1      -7    1192   70.92   9   3      0.87      7.00     49.75    1097  0
+     156    3101       2      -6     789   71.00   9   8      1.73      6.50     45.25    1117  0
+     157    3100       3      -6    1163   71.00   9   8      2.60      6.00     42.75    1116  0
+     158    3118       4      -5    1086   70.85   9  11      3.46      5.50     42.25    1133  0
+     159    3411       5      -5    1970   71.03   8   2      4.33      5.00     43.75    1234  0
+     160    3410       6      -4    1958   71.03   8   2      5.20      4.50     47.25    1233  0
+     161    3128       7      -4     179   70.94   9  13      6.06      4.00     52.75    1142  0
+     162    3125       7      -3     497   70.94   9  13      6.06      3.00     45.75    1139  0
+     163    3122       7      -2    2297   70.95   9  12      6.06      2.00     40.75    1136  0
+     164    3138       7      -1    1103   70.88   9  15      6.06      1.00     37.75    1151  0
+     165    3135       7       0    1081   70.88   9  15      6.06      0.00     36.75    1148  0
+     166    3132       7       1     473   70.88   9  14      6.06     -1.00     37.75    1145  0
+     167     708       7       2     781   70.97   1  27      6.06     -2.00     40.75     260  0
+     168     705       7       3    2298   70.96   1  27      6.06     -3.00     45.75     257  0
+     169     702       7       4     874   70.96   1  26      6.06     -4.00     52.75     254  0
+     170     700       6       5    2295   70.95   1  26      5.20     -4.50     47.25     252  0
+     171     717       5       5     782   71.08   1  25      4.33     -5.00     43.75     268  0
+     172     722       4       6     456   70.89   1  28      3.46     -5.50     42.25     272  0
+     173     720       3       6    1106   70.88   1  28      2.60     -6.00     42.75     270  0
+     174     837       2       7     389   71.11   2   7      1.73     -6.50     45.25     322  0
+     175    1002       1       7    1162   70.97   4   0      0.87     -7.00     49.75     362  0
+     176    1000       0       8     934   70.97   4   0      0.00     -7.50     56.25     360  0
+     177    1001      -1       7    2286   70.97   4   0     -0.87     -7.00     49.75     361  0
+     178    1108      -2       7     871   71.11   4   9     -1.73     -6.50     45.25     404  0
+     179    1110      -3       6    1190   70.89   4  10     -2.60     -6.00     42.75     405  0
+     180    1111      -4       6    1186   70.89   4  10     -3.46     -5.50     42.25     406  0
+     181    1418      -5       5    1342   71.09   3   3     -4.33     -5.00     43.75     521  0
+     182    1120      -6       5    2299   70.97   4  12     -5.20     -4.50     47.25     414  0
+     183    1121      -7       4    2284   70.97   4  12     -6.06     -4.00     52.75     415  0
+     184    1408      -8       4    1212   71.14   3   1     -6.93     -3.50     60.25     512  0
+     185    1432      -8       3     776   71.08   3   6     -6.93     -2.50     54.25     533  0
+     186    1435      -8       2     881   71.08   3   7     -6.93     -1.50     50.25     536  0
+     187    1438      -8       1     353   71.08   3   7     -6.93     -0.50     48.25     539  0
+     188    2522      -8       0     200   71.05   6  12     -6.93      0.50     48.25     920  0
+     189    2525      -8      -1     176   71.05   6  13     -6.93      1.50     50.25     923  0
+     190    2528      -8      -2    1640   71.05   6  13     -6.93      2.50     54.25     926  0
+     191    2512      -8      -3    1611   71.12   6  10     -6.93      3.50     60.25     911  0
+     192    2515      -8      -4     616   71.12   6  11     -6.93      4.50     68.25     914  0
+     193    2701      -7      -5    1171   71.02   6  24     -6.06      5.00     61.75     973  0
+     194    2703      -6      -5    1169   71.02   6  24     -5.20      5.50     57.25     975  0
+     195    2705      -5      -6    2282   71.02   6  25     -4.33      6.00     54.75     977  0
+     196    2831      -4      -6     199   71.00   7   6     -3.46      6.50     54.25    1036  0
+     197    2833      -3      -7     345   71.00   7   6     -2.60      7.00     55.75    1038  0
+     198    2835      -2      -7     884   71.00   7   7     -1.73      7.50     59.25    1040  0
+     199    3001      -1      -8     416   71.12   9   0     -0.87      8.00     64.75    1081  0
+     200    3003       0      -8    1031   71.12   9   0      0.00      8.50     72.25    1083  0
+     201    3002       1      -8     768   71.12   9   0      0.87      8.00     64.75    1082  0
+     202    3104       2      -7     434   71.01   9   9      1.73      7.50     59.25    1120  0
+     203    3103       3      -7    1954   71.01   9   8      2.60      7.00     55.75    1119  0
+     204    3102       4      -6    1973   71.00   9   8      3.46      6.50     54.25    1118  0
+     205    3414       5      -6    1638   71.03   8   3      4.33      6.00     54.75    1237  0
+     206    3413       6      -5    1628   71.03   8   2      5.20      5.50     57.25    1236  0
+     207    3412       7      -5    2302   71.03   8   2      6.06      5.00     61.75    1235  0
+     208    3404       8      -4     827   71.13   8   1      6.93      4.50     68.25    1228  0
+     209    3401       8      -3     449   71.13   8   0      6.93      3.50     60.25    1225  0
+     210    3437       8      -2     804   71.05   8   7      6.93      2.50     54.25    1258  0
+     211    3434       8      -1     422   71.05   8   7      6.93      1.50     50.25    1255  0
+     212    3431       8       0    1029   71.06   8   6      6.93      0.50     48.25    1252  0
+     213     527       8       1     772   71.07   1  13      6.93     -0.50     48.25     205  0
+     214     524       8       2     872   71.07   1  13      6.93     -1.50     50.25     202  0
+     215     521       8       3     834   71.06   1  12      6.93     -2.50     54.25     199  0
+     216     517       8       4    1331   71.13   1  11      6.93     -3.50     60.25     196  0
+     217     514       8       5    1247   71.13   1  11      6.93     -4.50     68.25     193  0
+     218     718       7       5     814   71.08   1  25      6.06     -5.00     61.75     269  0
+     219     716       6       6    1726   71.08   1  25      5.20     -5.50     57.25     267  0
+     220     714       5       6    1289   71.08   1  25      4.33     -6.00     54.75     265  0
+     221     838       4       7    1963   71.11   2   7      3.46     -6.50     54.25     323  0
+     222     836       3       7    1269   71.10   2   7      2.60     -7.00     55.75     321  0
+     223     834       2       8     146   71.10   2   7      1.73     -7.50     59.25     319  0
+     224     938       1       8    1681   71.14   2  15      0.87     -8.00     64.75     359  0
+     225     936       0       9    1217   71.14   2  15      0.00     -8.50     72.25     357  0
+     226     937      -1       8    1341   71.14   2  15     -0.87     -8.00     64.75     358  0
+     227    1105      -2       8     822   71.11   4   9     -1.73     -7.50     59.25     401  0
+     228    1106      -3       7    1021   71.11   4   9     -2.60     -7.00     55.75     402  0
+     229    1107      -4       7     354   71.11   4   9     -3.46     -6.50     54.25     403  0
+     230    1415      -5       6    1391   71.09   3   3     -4.33     -6.00     54.75     518  0
+     231    1416      -6       6    1317   71.09   3   3     -5.20     -5.50     57.25     519  0
+     232    1417      -7       5    1285   71.09   3   3     -6.06     -5.00     61.75     520  0
+     233    1405      -8       5    1965   71.13   3   1     -6.93     -4.50     68.25     509  0
+     234    1406      -9       4    1729   71.14   3   1     -7.79     -4.00     76.75     510  0
+     235    1430      -9       3     803   71.07   3   6     -7.79     -3.00     69.75     531  0
+     236    1433      -9       2     885   71.08   3   6     -7.79     -2.00     64.75     534  0
+     237    1436      -9       1     869   71.08   3   7     -7.79     -1.00     61.75     537  0
+     238    2520      -9       0     829   71.04   6  12     -7.79      0.00     60.75     918  0
+     239    2523      -9      -1     858   71.05   6  12     -7.79      1.00     61.75     921  0
+     240    2526      -9      -2     208   71.05   6  13     -7.79      2.00     64.75     924  0
+     241    2510      -9      -3     649   71.12   6  10     -7.79      3.00     69.75     909  0
+     242    2513      -9      -4    1631   71.12   6  10     -7.79      4.00     76.75     912  0
+     243    2516      -9      -5     859   71.12   6  11     -7.79      5.00     85.75     915  0
+     244    2518      -8      -5    1324   71.12   6  11     -6.93      5.50     78.25     917  0
+     245    2704      -7      -6    1385   71.02   6  25     -6.06      6.00     72.75     976  0
+     246    2706      -6      -6     800   71.02   6  25     -5.20      6.50     69.25     978  0
+     247    2708      -5      -7     303   71.03   6  25     -4.33      7.00     67.75     980  0
+     248    2834      -4      -7     876   71.00   7   7     -3.46      7.50     68.25    1039  0
+     249    2836      -3      -8    1135   71.00   7   7     -2.60      8.00     70.75    1041  0
+     250    2838      -2      -8    1161   71.00   7   7     -1.73      8.50     75.25    1043  0
+     251    3004      -1      -9    1334   71.12   9   1     -0.87      9.00     81.75    1084  0
+     252    3006       0      -9    1618   71.12   9   1      0.00      9.50     90.25    1086  0
+     253    3005       1      -9    1369   71.12   9   1      0.87      9.00     81.75    1085  0
+     254    3107       2      -8     493   71.01   9   9      1.73      8.50     75.25    1123  0
+     255    3106       3      -8    1032   71.01   9   9      2.60      8.00     70.75    1122  0
+     256    3105       4      -7     788   71.01   9   9      3.46      7.50     68.25    1121  0
+     257    3417       5      -7     180   71.04   8   3      4.33      7.00     67.75    1240  0
+     258    3416       6      -6    1642   71.03   8   3      5.20      6.50     69.25    1239  0
+     259    3415       7      -6    1639   71.03   8   3      6.06      6.00     72.75    1238  0
+     260    3407       8      -5     982   71.13   8   1      6.93      5.50     78.25    1231  0
+     261    3406       9      -5     877   71.13   8   1      7.79      5.00     85.75    1230  0
+     262    3403       9      -4    1259   71.13   8   0      7.79      4.00     76.75    1227  0
+     263    3400       9      -3    1641   71.12   8   0      7.79      3.00     69.75    1224  0
+     264    3436       9      -2     857   71.05   8   7      7.79      2.00     64.75    1257  0
+     265    3433       9      -1     350   71.06   8   6      7.79      1.00     61.75    1254  0
+     266    3430       9       0     340   71.06   8   6      7.79      0.00     60.75    1251  0
+     267     526       9       1     150   71.07   1  13      7.79     -1.00     61.75     204  0
+     268     523       9       2     873   71.06   1  12      7.79     -2.00     64.75     201  0
+     269     520       9       3     780   71.06   1  12      7.79     -3.00     69.75     198  0
+     270     516       9       4     425   71.13   1  11      7.79     -4.00     76.75     195  0
+     271     513       9       5     605   71.13   1  10      7.79     -5.00     85.75     192  0
+     272     511       8       6     439   71.13   1  10      6.93     -5.50     78.25     190  0
+     273     715       7       6    1720   71.08   1  25      6.06     -6.00     72.75     266  0
+     274     713       6       7    1038   71.08   1  24      5.20     -6.50     69.25     264  0
+     275     711       5       7     831   71.08   1  24      4.33     -7.00     67.75     262  0
+     276     835       4       8     304   71.10   2   7      3.46     -7.50     68.25     320  0
+     277     833       3       8    1267   71.10   2   6      2.60     -8.00     70.75     318  0
+     278     831       2       9     420   71.10   2   6      1.73     -8.50     75.25     316  0
+     279     935       1       9     974   71.14   2  15      0.87     -9.00     81.75     356  0
+     280     933       0      10     624   71.14   2  14      0.00     -9.50     90.25     354  0
+     281     934      -1       9     667   71.14   2  15     -0.87     -9.00     81.75     355  0
+     282    1102      -2       9    1684   71.11   4   8     -1.73     -8.50     75.25     398  0
+     283    1103      -3       8     364   71.11   4   8     -2.60     -8.00     70.75     399  0
+     284    1104      -4       8     641   71.11   4   9     -3.46     -7.50     68.25     400  0
+     285    1412      -5       7     711   71.08   3   2     -4.33     -7.00     67.75     515  0
+     286    1413      -6       7    1133   71.08   3   2     -5.20     -6.50     69.25     516  0
+     287    1414      -7       6     346   71.09   3   3     -6.06     -6.00     72.75     517  0
+     288    1402      -8       6    1359   71.13   3   0     -6.93     -5.50     78.25     506  0
+     289    1403      -9       5    1718   71.13   3   0     -7.79     -5.00     85.75     507  0
+     290    1404     -10       5    1957   71.13   3   1     -8.66     -4.50     95.25     508  0
+     291    1407     -10       4     744   71.14   3   1     -8.66     -3.50     87.25     511  0
+     292    1431     -10       3    1309   71.07   3   6     -8.66     -2.50     81.25     532  0
+     293    1434     -10       2     338   71.08   3   7     -8.66     -1.50     77.25     535  0
+     294    1437     -10       1     197   71.08   3   7     -8.66     -0.50     75.25     538  0
+     295    2521     -10       0    1127   71.04   6  12     -8.66      0.50     75.25     919  0
+     296    2524     -10      -1     172   71.05   6  13     -8.66      1.50     77.25     922  0
+     297    2527     -10      -2     355   71.05   6  13     -8.66      2.50     81.25     925  0
+     298    2511     -10      -3    1378   71.12   6  10     -8.66      3.50     87.25     910  0
+     299    2514     -10      -4     441   71.12   6  11     -8.66      4.50     95.25     913  0
+     300    2517     -10      -5    1321   71.12   6  11     -8.66      5.50    105.25     916  0
+     301    2500      -9      -6    1964   71.17   6   8     -7.79      6.00     96.75     900  0
+     302    2502      -8      -6    1980   71.17   6   8     -6.93      6.50     90.25     902  0
+     303    2707      -7      -7     301   71.02   6  25     -6.06      7.00     85.75     979  0
+     304    2630      -6      -7     397   71.15   6  22     -5.20      7.50     83.25     963  0
+     305    2632      -5      -8     373   71.15   6  22     -4.33      8.00     82.75     965  0
+     306    2837      -4      -8    1156   71.00   7   7     -3.46      8.50     84.25    1042  0
+     307    2820      -3      -9     343   71.17   7   4     -2.60      9.00     87.75    1026  0
+     308    2822      -2      -9     594   71.17   7   4     -1.73      9.50     93.25    1028  0
+     309    3007      -1     -10     337   71.12   9   1     -0.87     10.00    100.75    1087  0
+     310    2930       0     -10    1329   71.21   7  14      0.00     10.50    110.25    1071  0
+     311    3008       1     -10     433   71.12   9   1      0.87     10.00    100.75    1088  0
+     312    3231       2      -9     693   71.17   9  22      1.73      9.50     93.25    1180  0
+     313    3230       3      -9     344   71.17   9  22      2.60      9.00     87.75    1179  0
+     314    3108       4      -8     796   71.01   9   9      3.46      8.50     84.25    1124  0
+     315    3331       5      -8     657   71.15   9  30      4.33      8.00     82.75    1216  0
+     316    3330       6      -7     643   71.15   9  30      5.20      7.50     83.25    1215  0
+     317    3418       7      -7     430   71.04   8   3      6.06      7.00     85.75    1241  0
+     318    3531       8      -6     759   71.18   8  14      6.93      6.50     90.25    1288  0
+     319    3530       9      -6     676   71.18   8  14      7.79      6.00     96.75    1287  0
+     320    3408      10      -5    1960   71.13   8   1      8.66      5.50    105.25    1232  0
+     321    3405      10      -4     870   71.13   8   1      8.66      4.50     95.25    1229  0
+     322    3402      10      -3     659   71.13   8   0      8.66      3.50     87.25    1226  0
+     323    3438      10      -2    1287   71.05   8   7      8.66      2.50     81.25    1259  0
+     324    3435      10      -1     450   71.05   8   7      8.66      1.50     77.25    1256  0
+     325    3432      10       0    1961   71.06   8   6      8.66      0.50     75.25    1253  0
+     326     528      10       1     861   71.07   1  13      8.66     -0.50     75.25     206  0
+     327     525      10       2    1649   71.07   1  13      8.66     -1.50     77.25     203  0
+     328     522      10       3     839   71.06   1  12      8.66     -2.50     81.25     200  0
+     329     518      10       4     143   71.13   1  11      8.66     -3.50     87.25     197  0
+     330     515      10       5    1735   71.13   1  11      8.66     -4.50     95.25     194  0
+     331     512      10       6     444   71.13   1  10      8.66     -5.50    105.25     191  0
+     332     510       9       6     436   71.13   1  10      7.79     -6.00     96.75     189  0
+     333     507       8       7     335   71.19   1   9      6.93     -6.50     90.25     187  0
+     334     712       7       7     865   71.08   1  24      6.06     -7.00     85.75     263  0
+     335     710       6       8     511   71.08   1  24      5.20     -7.50     83.25     261  0
+     336     637       5       8     830   71.16   1  23      4.33     -8.00     82.75     250  0
+     337     832       4       9     760   71.10   2   6      3.46     -8.50     84.25     317  0
+     338     830       3       9    1022   71.10   2   6      2.60     -9.00     87.75     315  0
+     339     827       2      10     728   71.20   2   5      1.73     -9.50     93.25     313  0
+     340     932       1      10    1376   71.14   2  14      0.87    -10.00    100.75     353  0
+     341     930       0      11    1229   71.14   2  14      0.00    -10.50    110.25     351  0
+     342     931      -1      10     608   71.14   2  14     -0.87    -10.00    100.75     352  0
+     343    1238      -2      10    1992   71.21   4  23     -1.73     -9.50     93.25     467  0
+     344    1100      -3       9     381   71.11   4   8     -2.60     -9.00     87.75     396  0
+     345    1101      -4       9     431   71.11   4   8     -3.46     -8.50     84.25     397  0
+     346    1338      -5       8    1002   71.17   4  31     -4.33     -8.00     82.75     503  0
+     347    1410      -6       8     825   71.08   3   2     -5.20     -7.50     83.25     513  0
+     348    1411      -7       7    1632   71.08   3   2     -6.06     -7.00     85.75     514  0
+     349    1538      -8       7     613   71.20   3  15     -6.93     -6.50     90.25     575  0
+     350    1400      -9       6    1278   71.13   3   0     -7.79     -6.00     96.75     504  0
+     351    1401     -10       6     351   71.13   3   0     -8.66     -5.50    105.25     505  0
+     352    1638     -11       5    1897   71.23   3  23     -9.53     -5.00    115.75     611  0
+     353    1422     -11       4    1280   71.19   3   4     -9.53     -4.00    106.75     524  0
+     354    1425     -11       3     691   71.19   3   5     -9.53     -3.00     99.75     527  0
+     355    1428     -11       2    1028   71.19   3   5     -9.53     -2.00     94.75     530  0
+     356    2532     -11       1     683   71.15   6  14     -9.53     -1.00     91.75     929  0
+     357    2535     -11       0    1336   71.15   6  15     -9.53      0.00     90.75     932  0
+     358    2538     -11      -1     727   71.16   6  15     -9.53      1.00     91.75     935  0
+     359    2322     -11      -2    1728   71.18   5  28     -9.53      2.00     94.75     848  0
+     360    2325     -11      -3     793   71.18   5  29     -9.53      3.00     99.75     851  0
+     361    2328     -11      -4    1367   71.18   5  29     -9.53      4.00    106.75     854  0
+     362    2232     -11      -5     601   71.21   5  22     -9.53      5.00    115.75     821  0
+     363    2235     -11      -6    1653   71.21   5  23     -9.53      6.00    126.75     824  0
+     364    2501     -10      -6    1969   71.17   6   8     -8.66      6.50    117.25     901  0
+     365    2503      -9      -7     654   71.17   6   8     -7.79      7.00    109.75     903  0
+     366    2505      -8      -7     668   71.17   6   9     -6.93      7.50    104.25     905  0
+     367    2631      -7      -8     168   71.15   6  22     -6.06      8.00    100.75     964  0
+     368    2633      -6      -8     424   71.15   6  22     -5.20      8.50     99.25     966  0
+     369    2635      -5      -9     696   71.14   6  23     -4.33      9.00     99.75     968  0
+     370    2821      -4      -9     582   71.17   7   4     -3.46      9.50    102.25    1027  0
+     371    2823      -3     -10     662   71.17   7   4     -2.60     10.00    106.75    1029  0
+     372    2825      -2     -10     785   71.17   7   5     -1.73     10.50    113.25    1031  0
+     373    2931      -1     -11     841   71.21   7  14     -0.87     11.00    121.75    1072  0
+     374    2933       0     -11    1131   71.21   7  14      0.00     11.50    132.25    1074  0
+     375    2932       1     -11     295   71.21   7  14      0.87     11.00    121.75    1073  0
+     376    3234       2     -10     995   71.17   9  23      1.73     10.50    113.25    1183  0
+     377    3233       3     -10     864   71.17   9  22      2.60     10.00    106.75    1182  0
+     378    3232       4      -9     828   71.17   9  22      3.46      9.50    102.25    1181  0
+     379    3334       5      -9     849   71.15   9  31      4.33      9.00     99.75    1219  0
+     380    3333       6      -8     787   71.15   9  30      5.20      8.50     99.25    1218  0
+     381    3332       7      -8     694   71.15   9  30      6.06      8.00    100.75    1217  0
+     382    3534       8      -7     598   71.18   8  15      6.93      7.50    104.25    1291  0
+     383    3533       9      -7     682   71.18   8  14      7.79      7.00    109.75    1290  0
+     384    3532      10      -6     670   71.18   8  14      8.66      6.50    117.25    1289  0
+     385    3634      11      -6    1050   71.22   8  23      9.53      6.00    126.75    1327  0
+     386    3631      11      -5    1349   71.22   8  22      9.53      5.00    115.75    1324  0
+     387    3427      11      -4    1991   71.19   8   5      9.53      4.00    106.75    1249  0
+     388    3424      11      -3     695   71.18   8   5      9.53      3.00     99.75    1246  0
+     389    3421      11      -2    1646   71.18   8   4      9.53      2.00     94.75    1243  0
+     390     537      11      -1    1736   71.15   1  15      9.53      1.00     91.75     214  0
+     391     534      11       0    1046   71.15   1  15      9.53      0.00     90.75     211  0
+     392     531      11       1     771   71.15   1  14      9.53     -1.00     91.75     208  0
+     393     337      11       2     609   71.19   0  31      9.53     -2.00     94.75     142  0
+     394     334      11       3     169   71.19   0  31      9.53     -3.00     99.75     139  0
+     395     331      11       4     673   71.19   0  30      9.53     -4.00    106.75     136  0
+     396     237      11       5    1209   71.22   0  23      9.53     -5.00    115.75     106  0
+     397     234      11       6     387   71.22   0  23      9.53     -6.00    126.75     103  0
+     398     508      10       7     635   71.19   1   9      8.66     -6.50    117.25     188  0
+     399     506       9       7    1984   71.19   1   9      7.79     -7.00    109.75     186  0
+     400     504       8       8    1293   71.19   1   9      6.93     -7.50    104.25     184  0
+     401     638       7       8     327   71.16   1  23      6.06     -8.00    100.75     251  0
+     402     636       6       9     868   71.16   1  23      5.20     -8.50     99.25     249  0
+     403     634       5       9     815   71.16   1  23      4.33     -9.00     99.75     247  0
+     404     828       4      10     965   71.20   2   5      3.46     -9.50    102.25     314  0
+     405     826       3      10     720   71.20   2   5      2.60    -10.00    106.75     312  0
+     406     824       2      11     165   71.20   2   5      1.73    -10.50    113.25     310  0
+     407     928       1      11    1654   71.23   2  13      0.87    -11.00    121.75     350  0
+     408     926       0      12    1126   71.23   2  13      0.00    -11.50    132.25     348  0
+     409     927      -1      11    1144   71.23   2  13     -0.87    -11.00    121.75     349  0
+     410    1235      -2      11     628   71.20   4  23     -1.73    -10.50    113.25     464  0
+     411    1236      -3      10    1270   71.21   4  23     -2.60    -10.00    106.75     465  0
+     412    1237      -4      10    1953   71.21   4  23     -3.46     -9.50    102.25     466  0
+     413    1335      -5       9     735   71.17   4  31     -4.33     -9.00     99.75     500  0
+     414    1336      -6       9    1201   71.17   4  31     -5.20     -8.50     99.25     501  0
+     415    1337      -7       8     801   71.17   4  31     -6.06     -8.00    100.75     502  0
+     416    1535      -8       8    1377   71.20   3  15     -6.93     -7.50    104.25     572  0
+     417    1536      -9       7     817   71.20   3  15     -7.79     -7.00    109.75     573  0
+     418    1537     -10       7    1674   71.20   3  15     -8.66     -6.50    117.25     574  0
+     419    1635     -11       6    1288   71.22   3  23     -9.53     -6.00    126.75     608  0
+     420    1636     -12       6    1129   71.23   3  23    -10.39     -5.50    138.25     609  0
+     421    1420     -12       5    1113   71.19   3   4    -10.39     -4.50    128.25     522  0
+     422    1423     -12       4     244   71.19   3   4    -10.39     -3.50    120.25     525  0
+     423    1426     -12       3     863   71.19   3   5    -10.39     -2.50    114.25     528  0
+     424    2530     -12       2    1955   71.15   6  14    -10.39     -1.50    110.25     927  2
+     425    2533     -12       1     850   71.15   6  14    -10.39     -0.50    108.25     930  0
+     426    2536     -12       0     447   71.16   6  15    -10.39      0.50    108.25     933  0
+     427    2320     -12      -1    1214   71.18   5  28    -10.39      1.50    110.25     846  0
+     428    2323     -12      -2     411   71.18   5  28    -10.39      2.50    114.25     849  0
+     429    2326     -12      -3     816   71.18   5  29    -10.39      3.50    120.25     852  0
+     430    2230     -12      -4     689   71.21   5  22    -10.39      4.50    128.25     819  0
+     431    2233     -12      -5    1147   71.21   5  22    -10.39      5.50    138.25     822  0
+     432    2236     -12      -6    1738   71.21   5  23    -10.39      6.50    150.25     825  0
+     433    2238     -11      -7     627   71.21   5  23     -9.53      7.00    139.75     827  0
+     434    2504     -10      -7     660   71.17   6   9     -8.66      7.50    131.25     904  0
+     435    2506      -9      -8     690   71.17   6   9     -7.79      8.00    124.75     906  0
+     436    2508      -8      -8    1330   71.18   6   9     -6.93      8.50    120.25     908  0
+     437    2634      -7      -9     675   71.14   6  23     -6.06      9.00    117.75     967  0
+     438    2636      -6      -9    1213   71.14   6  23     -5.20      9.50    117.25     969  0
+     439    2638      -5     -10    1621   71.14   6  23     -4.33     10.00    118.75     971  0
+     440    2824      -4     -10     751   71.17   7   5     -3.46     10.50    122.25    1030  0
+     441    2826      -3     -11     988   71.17   7   5     -2.60     11.00    127.75    1032  0
+     442    2828      -2     -11    1951   71.17   7   5     -1.73     11.50    135.25    1034  0
+     443    2934      -1     -12     448   71.21   7  15     -0.87     12.00    144.75    1075  0
+     444    2936       0     -12    1667   71.21   7  15      0.00     12.50    156.25    1077  0
+     445    2935       1     -12    1203   71.21   7  15      0.87     12.00    144.75    1076  0
+     446    3237       2     -11    1344   71.17   9  23      1.73     11.50    135.25    1186  0
+     447    3236       3     -11    1279   71.17   9  23      2.60     11.00    127.75    1185  0
+     448    3235       4     -10    1211   71.17   9  23      3.46     10.50    122.25    1184  0
+     449    3337       5     -10    1634   71.15   9  31      4.33     10.00    118.75    1222  0
+     450    3336       6      -9    1290   71.15   9  31      5.20      9.50    117.25    1221  0
+     451    3335       7      -9    1023   71.15   9  31      6.06      9.00    117.75    1220  0
+     452    3537       8      -8     743   71.18   8  15      6.93      8.50    120.25    1294  0
+     453    3536       9      -8     652   71.18   8  15      7.79      8.00    124.75    1293  0
+     454    3535      10      -7     365   71.18   8  15      8.66      7.50    131.25    1292  0
+     455    3637      11      -7    1116   71.22   8  23      9.53      7.00    139.75    1330  0
+     456    3636      12      -6     765   71.22   8  23     10.39      6.50    150.25    1329  0
+     457    3633      12      -5    1048   71.22   8  22     10.39      5.50    138.25    1326  0
+     458    3630      12      -4     699   71.21   8  22     10.39      4.50    128.25    1323  0
+     459    3426      12      -3    1360   71.19   8   5     10.39      3.50    120.25    1248  0
+     460    3423      12      -2     646   71.18   8   4     10.39      2.50    114.25    1245  0
+     461    3420      12      -1    1619   71.18   8   4     10.39      1.50    110.25    1242  0
+     462     536      12       0    1609   71.15   1  15     10.39      0.50    108.25     213  0
+     463     533      12       1    1026   71.15   1  14     10.39     -0.50    108.25     210  0
+     464     530      12       2     752   71.15   1  14     10.39     -1.50    110.25     207  0
+     465     336      12       3     557   71.19   0  31     10.39     -2.50    114.25     141  0
+     466     333      12       4     129   71.19   0  30     10.39     -3.50    120.25     138  0
+     467     330      12       5    1967   71.19   0  30     10.39     -4.50    128.25     135  0
+     468     236      12       6     597   71.22   0  23     10.39     -5.50    138.25     105  0
+     469     233      12       7     349   71.22   0  22     10.39     -6.50    150.25     102  0
+     470     231      11       7     135   71.22   0  22      9.53     -7.00    139.75     100  0
+     471     505      10       8     632   71.19   1   9      8.66     -7.50    131.25     185  0
+     472     503       9       8    1275   71.19   1   8      7.79     -8.00    124.75     183  0
+     473     501       8       9    1206   71.19   1   8      6.93     -8.50    120.25     181  0
+     474     635       7       9     852   71.16   1  23      6.06     -9.00    117.75     248  0
+     475     633       6      10     812   71.16   1  22      5.20     -9.50    117.25     246  0
+     476     631       5      10     398   71.16   1  22      4.33    -10.00    118.75     244  0
+     477     825       4      11     309   71.20   2   5      3.46    -10.50    122.25     311  0
+     478     823       3      11    1224   71.20   2   4      2.60    -11.00    127.75     309  0
+     479     821       2      12    1612   71.20   2   4      1.73    -11.50    135.25     307  0
+     480     925       1      12     972   71.23   2  13      0.87    -12.00    144.75     347  0
+     481     923       0      13    1225   71.23   2  12      0.00    -12.50    156.25     345  0
+     482     924      -1      12     636   71.23   2  13     -0.87    -12.00    144.75     346  0
+     483    1232      -2      12     195   71.20   4  22     -1.73    -11.50    135.25     461  0
+     484    1233      -3      11    1202   71.20   4  22     -2.60    -11.00    127.75     462  0
+     485    1234      -4      11     432   71.20   4  23     -3.46    -10.50    122.25     463  0
+     486    1332      -5      10     357   71.16   4  30     -4.33    -10.00    118.75     497  0
+     487    1333      -6      10     779   71.16   4  30     -5.20     -9.50    117.25     498  0
+     488    1334      -7       9    1228   71.17   4  31     -6.06     -9.00    117.75     499  0
+     489    1532      -8       9    1370   71.19   3  14     -6.93     -8.50    120.25     569  0
+     490    1533      -9       8    1664   71.19   3  14     -7.79     -8.00    124.75     570  0
+     491    1534     -10       8    1033   71.20   3  15     -8.66     -7.50    131.25     571  0
+     492    1632     -11       7     606   71.22   3  22     -9.53     -7.00    139.75     605  0
+     493    1633     -12       7     440   71.22   3  22    -10.39     -6.50    150.25     606  0
+     494    1634     -13       6    1271   71.22   3  23    -11.26     -6.00    162.75     607  0
+     495    1637     -13       5    1663   71.23   3  23    -11.26     -5.00    151.75     610  0
+     496    1421     -13       4    1139   71.19   3   4    -11.26     -4.00    142.75     523  0
+     497    1424     -13       3     590   71.19   3   5    -11.26     -3.00    135.75     526  0
+     498    1427     -13       2     981   71.19   3   5    -11.26     -2.00    130.75     529  0
+     499    2531     -13       1    1975   71.15   6  14    -11.26     -1.00    127.75     928  0
+     500    2534     -13       0    1322   71.15   6  15    -11.26      0.00    126.75     931  0
+     501    2537     -13      -1     684   71.16   6  15    -11.26      1.00    127.75     934  0
+     502    2321     -13      -2    1268   71.18   5  28    -11.26      2.00    130.75     847  0
+     503    2324     -13      -3     665   71.18   5  29    -11.26      3.00    135.75     850  0
+     504    2327     -13      -4     819   71.18   5  29    -11.26      4.00    142.75     853  0
+     505    2231     -13      -5     767   71.21   5  22    -11.26      5.00    151.75     820  0
+     506    2234     -13      -6    1230   71.21   5  23    -11.26      6.00    162.75     823  0
+     507    2237     -13      -7     299   71.21   5  23    -11.26      7.00    175.75     826  0
+     508    2220     -12      -7    2303   71.29   5  20    -10.39      7.50    164.25     810  0
+     509    2222     -11      -8      69   71.29   5  20     -9.53      8.00    154.75     812  0
+     510    2507     -10      -8     809   71.17   6   9     -8.66      8.50    147.25     907  0
+     511    2430      -9      -9     980   71.24   6   6     -7.79      9.00    141.75     891  0
+     512    2432      -8      -9    2311   71.25   6   6     -6.93      9.50    138.25     893  0
+     513    2637      -7     -10    1235   71.14   6  23     -6.06     10.00    136.75     970  0
+     514    2620      -6     -10     403   71.23   6  20     -5.20     10.50    137.25     954  0
+     515    2622      -5     -11     742   71.23   6  20     -4.33     11.00    139.75     956  0
+     516    2827      -4     -11    1727   71.17   7   5     -3.46     11.50    144.25    1033  0
+     517    2810      -3     -12     658   71.28   7   2     -2.60     12.00    150.75    1017  0
+     518    2812      -2     -12     489   71.29   7   2     -1.73     12.50    159.25    1019  0
+     519    2937      -1     -13     298   71.21   7  15     -0.87     13.00    169.75    1078  0
+     520    2920       0     -13      74   71.33   7  12      0.00     13.50    182.25    1062  0
+     521    2938       1     -13     395   71.21   7  15      0.87     13.00    169.75    1079  0
+     522    3221       2     -12    2308   71.29   9  20      1.73     12.50    159.25    1171  0
+     523    3220       3     -12    1940   71.29   9  20      2.60     12.00    150.75    1170  0
+     524    3238       4     -11    1647   71.17   9  23      3.46     11.50    144.25    1187  0
+     525    3321       5     -11     758   71.24   9  28      4.33     11.00    139.75    1207  0
+     526    3320       6     -10    1761   71.24   9  28      5.20     10.50    137.25    1206  0
+     527    3338       7     -10     719   71.15   9  31      6.06     10.00    136.75    1223  0
+     528    3521       8      -9    1977   71.25   8  12      6.93      9.50    138.25    1279  0
+     529    3520       9      -9    1635   71.25   8  12      7.79      9.00    141.75    1278  0
+     530    3538      10      -8     994   71.18   8  15      8.66      8.50    147.25    1295  0
+     531    3621      11      -8     603   71.30   8  20      9.53      8.00    154.75    1315  0
+     532    3620      12      -7     404   71.30   8  20     10.39      7.50    164.25    1314  0
+     533    3638      13      -7    1003   71.22   8  23     11.26      7.00    175.75    1331  0
+     534    3635      13      -6     631   71.22   8  23     11.26      6.00    162.75    1328  0
+     535    3632      13      -5     963   71.22   8  22     11.26      5.00    151.75    1325  0
+     536    3428      13      -4     824   71.19   8   5     11.26      4.00    142.75    1250  0
+     537    3425      13      -3     832   71.18   8   5     11.26      3.00    135.75    1247  0
+     538    3422      13      -2    1673   71.18   8   4     11.26      2.00    130.75    1244  0
+     539     538      13      -1    1739   71.15   1  15     11.26      1.00    127.75     215  0
+     540     535      13       0    1323   71.15   1  15     11.26      0.00    126.75     212  0
+     541     532      13       1     955   71.15   1  14     11.26     -1.00    127.75     209  0
+     542     338      13       2     833   71.19   0  31     11.26     -2.00    130.75     143  0
+     543     335      13       3     372   71.19   0  31     11.26     -3.00    135.75     140  0
+     544     332      13       4    1730   71.19   0  30     11.26     -4.00    142.75     137  0
+     545     238      13       5     127   71.22   0  23     11.26     -5.00    151.75     107  0
+     546     235      13       6     971   71.22   0  23     11.26     -6.00    162.75     104  0
+     547     232      13       7     300   71.22   0  22     11.26     -7.00    175.75     101  0
+     548     230      12       8     749   71.22   0  22     10.39     -7.50    164.25      99  0
+     549     227      11       8    1974   71.31   0  21      9.53     -8.00    154.75      97  0
+     550     502      10       9    1218   71.19   1   8      8.66     -8.50    147.25     182  0
+     551     500       9       9    1074   71.19   1   8      7.79     -9.00    141.75     180  0
+     552     437       8      10    1610   71.28   1   7      6.93     -9.50    138.25     178  0
+     553     632       7      10     736   71.16   1  22      6.06    -10.00    136.75     245  0
+     554     630       6      11     286   71.16   1  22      5.20    -10.50    137.25     243  0
+     555     627       5      11    1655   71.28   1  21      4.33    -11.00    139.75     241  0
+     556     822       4      12     133   71.20   2   4      3.46    -11.50    144.25     308  0
+     557     820       3      12     712   71.20   2   4      2.60    -12.00    150.75     306  0
+     558     817       2      13     291   71.32   2   3      1.73    -12.50    159.25     304  0
+     559     922       1      13     757   71.23   2  12      0.87    -13.00    169.75     344  0
+     560     920       0      14     854   71.23   2  12      0.00    -13.50    182.25     342  0
+     561     921      -1      13     964   71.23   2  12     -0.87    -13.00    169.75     343  0
+     562    1228      -2      13    1752   71.33   4  21     -1.73    -12.50    159.25     458  0
+     563    1230      -3      12     405   71.20   4  22     -2.60    -12.00    150.75     459  0
+     564    1231      -4      12     413   71.20   4  22     -3.46    -11.50    144.25     460  0
+     565    1328      -5      11     656   71.28   4  29     -4.33    -11.00    139.75     494  0
+     566    1330      -6      11     352   71.16   4  30     -5.20    -10.50    137.25     495  0
+     567    1331      -7      10     838   71.16   4  30     -6.06    -10.00    136.75     496  0
+     568    1528      -8      10     709   71.28   3  13     -6.93     -9.50    138.25     566  0
+     569    1530      -9       9     983   71.19   3  14     -7.79     -9.00    141.75     567  0
+     570    1531     -10       9    1122   71.19   3  14     -8.66     -8.50    147.25     568  0
+     571    1628     -11       8    1925   71.32   3  21     -9.53     -8.00    154.75     602  0
+     572    1630     -12       8     390   71.22   3  22    -10.39     -7.50    164.25     603  0
+     573    1631     -13       7     280   71.22   3  22    -11.26     -7.00    175.75     604  0
+     574    1738     -14       7     454   71.35   3  31    -12.12     -6.50    189.25     647  0
+     575    1802     -14       6     501   71.31   2  16    -12.12     -5.50    177.25     650  0
+     576    1805     -14       5     725   71.31   2  17    -12.12     -4.50    167.25     653  0
+     577    1808     -14       4    1215   71.31   2  17    -12.12     -3.50    159.25     656  0
+     578    1812     -14       3      68   71.27   2  18    -12.12     -2.50    153.25     659  0
+     579    1815     -14       2    1947   71.27   2  19    -12.12     -1.50    149.25     662  0
+     580    1818     -14       1     589   71.27   2  19    -12.12     -0.50    147.25     665  0
+     581    2332     -14       0    1064   71.26   5  30    -12.12      0.50    147.25     857  0
+     582    2335     -14      -1    1350   71.26   5  31    -12.12      1.50    149.25     860  0
+     583    2338     -14      -2     144   71.26   5  31    -12.12      2.50    153.25     863  1
+     584    2312     -14      -3    1616   71.30   5  26    -12.12      3.50    159.25     839  0
+     585    2315     -14      -4    1911   71.30   5  27    -12.12      4.50    167.25     842  0
+     586    2318     -14      -5       9   71.30   5  27    -12.12      5.50    177.25     845  0
+     587    2302     -14      -6    1709   71.33   5  24    -12.12      6.50    189.25     830  0
+     588    2305     -14      -7    1950   71.33   5  25    -12.12      7.50    203.25     833  0
+     589    2221     -13      -8      18   71.29   5  20    -11.26      8.00    190.75     811  0
+     590    2223     -12      -8     669   71.29   5  20    -10.39      8.50    180.25     813  0
+     591    2225     -11      -9    1152   71.29   5  21     -9.53      9.00    171.75     815  0
+     592    2431     -10      -9    1222   71.25   6   6     -8.66      9.50    165.25     892  0
+     593    2433      -9     -10     587   71.25   6   6     -7.79     10.00    160.75     894  0
+     594    2435      -8     -10     685   71.25   6   7     -6.93     10.50    158.25     896  0
+     595    2621      -7     -11     642   71.23   6  20     -6.06     11.00    157.75     955  0
+     596    2623      -6     -11     750   71.23   6  20     -5.20     11.50    159.25     957  0
+     597    2625      -5     -12    1204   71.23   6  21     -4.33     12.00    162.75     959  0
+     598    2811      -4     -12     661   71.28   7   2     -3.46     12.50    168.25    1018  0
+     599    2813      -3     -13     645   71.29   7   2     -2.60     13.00    175.75    1020  0
+     600    2815      -2     -13    1035   71.29   7   3     -1.73     13.50    185.25    1022  0
+     601    2921      -1     -14    1900   71.33   7  12     -0.87     14.00    196.75    1063  0
+     602    2923       0     -14     492   71.33   7  12      0.00     14.50    210.25    1065  0
+     603    2922       1     -14     488   71.33   7  12      0.87     14.00    196.75    1064  0
+     604    3224       2     -13     733   71.29   9  21      1.73     13.50    185.25    1174  0
+     605    3223       3     -13    1216   71.29   9  20      2.60     13.00    175.75    1173  0
+     606    3222       4     -12      27   71.29   9  20      3.46     12.50    168.25    1172  0
+     607    3324       5     -12     293   71.24   9  29      4.33     12.00    162.75    1210  0
+     608    3323       6     -11    1936   71.24   9  28      5.20     11.50    159.25    1209  0
+     609    3322       7     -11     697   71.24   9  28      6.06     11.00    157.75    1208  0
+     610    3524       8     -10     621   71.25   8  13      6.93     10.50    158.25    1282  0
+     611    3523       9     -10     615   71.25   8  12      7.79     10.00    160.75    1281  0
+     612    3522      10      -9     382   71.25   8  12      8.66      9.50    165.25    1280  0
+     613    3624      11      -9    1314   71.30   8  21      9.53      9.00    171.75    1318  0
+     614    3623      12      -8    1295   71.30   8  20     10.39      8.50    180.25    1317  0
+     615    3622      13      -8     653   71.30   8  20     11.26      8.00    190.75    1316  0
+     616    3734      14      -7     137   71.33   8  31     12.12      7.50    203.25    1363  0
+     617    3731      14      -6    1380   71.33   8  30     12.12      6.50    189.25    1360  0
+     618    3807      14      -5    1261   71.31   7  17     12.12      5.50    177.25    1375  0
+     619    3804      14      -4    1054   71.31   7  17     12.12      4.50    167.25    1372  0
+     620    3801      14      -3    1821   71.30   7  16     12.12      3.50    159.25    1369  0
+     621    3817      14      -2    2315   71.26   7  19     12.12      2.50    153.25    1384  0
+     622    3814      14      -1    2312   71.26   7  19     12.12      1.50    149.25    1381  0
+     623    3811      14       0    1219   71.26   7  18     12.12      0.50    147.25    1378  0
+     624     327      14       1     297   71.27   0  29     12.12     -0.50    147.25     133  0
+     625     324      14       2    1148   71.27   0  29     12.12     -1.50    149.25     130  0
+     626     321      14       3     666   71.27   0  28     12.12     -2.50    153.25     127  0
+     627     317      14       4    1357   71.31   0  27     12.12     -3.50    159.25     124  0
+     628     314      14       5     686   71.31   0  27     12.12     -4.50    167.25     121  0
+     629     311      14       6    1146   71.31   0  26     12.12     -5.50    177.25     118  0
+     630     307      14       7     140   71.34   0  25     12.12     -6.50    189.25     115  0
+     631     304      14       8    1754   71.34   0  25     12.12     -7.50    203.25     112  0
+     632     228      13       8     393   71.31   0  21     11.26     -8.00    190.75      98  0
+     633     226      12       9    1845   71.31   0  21     10.39     -8.50    180.25      96  0
+     634     224      11       9     958   71.31   0  21      9.53     -9.00    171.75      94  0
+     635     438      10      10      22   71.28   1   7      8.66     -9.50    165.25     179  0
+     636     436       9      10    1373   71.28   1   7      7.79    -10.00    160.75     177  0
+     637     434       8      11     379   71.27   1   7      6.93    -10.50    158.25     175  0
+     638     628       7      11    1656   71.28   1  21      6.06    -11.00    157.75     242  0
+     639     626       6      12    1365   71.28   1  21      5.20    -11.50    159.25     240  0
+     640     624       5      12    1652   71.28   1  21      4.33    -12.00    162.75     238  0
+     641     818       4      13     500   71.32   2   3      3.46    -12.50    168.25     305  0
+     642     816       3      13     121   71.32   2   3      2.60    -13.00    175.75     303  0
+     643     814       2      14    1208   71.32   2   3      1.73    -13.50    185.25     301  0
+     644     908       1      14     573   71.35   2  11      0.87    -14.00    196.75     332  0
+     645     906       0      15     539   71.35   2  11      0.00    -14.50    210.25     330  0
+     646     907      -1      14     566   71.35   2  11     -0.87    -14.00    196.75     331  0
+     647    1225      -2      14     328   71.32   4  21     -1.73    -13.50    185.25     455  0
+     648    1226      -3      13     213   71.33   4  21     -2.60    -13.00    175.75     456  0
+     649    1227      -4      13    1903   71.33   4  21     -3.46    -12.50    168.25     457  0
+     650    1325      -5      12     855   71.28   4  29     -4.33    -12.00    162.75     491  0
+     651    1326      -6      12    1355   71.28   4  29     -5.20    -11.50    159.25     492  0
+     652    1327      -7      11    1358   71.28   4  29     -6.06    -11.00    157.75     493  0
+     653    1525      -8      11     677   71.28   3  13     -6.93    -10.50    158.25     563  0
+     654    1526      -9      10      24   71.28   3  13     -7.79    -10.00    160.75     564  0
+     655    1527     -10      10    1124   71.28   3  13     -8.66     -9.50    165.25     565  0
+     656    1625     -11       9    1067   71.32   3  21     -9.53     -9.00    171.75     599  0
+     657    1626     -12       9    1710   71.32   3  21    -10.39     -8.50    180.25     600  0
+     658    1627     -13       8     688   71.32   3  21    -11.26     -8.00    190.75     601  0
+     659    1735     -14       8    1908   71.34   3  31    -12.12     -7.50    203.25     644  0
+     660    1736     -15       7    1066   71.34   3  31    -12.99     -7.00    217.75     645  0
+     661    1800     -15       6     366   71.31   2  16    -12.99     -6.00    204.75     648  0
+     662    1803     -15       5      44   71.31   2  16    -12.99     -5.00    193.75     651  0
+     663    1806     -15       4     746   71.31   2  17    -12.99     -4.00    184.75     654  0
+     664    1810     -15       3     407   71.27   2  18    -12.99     -3.00    177.75     657  0
+     665    1813     -15       2    1630   71.27   2  18    -12.99     -2.00    172.75     660  0
+     666    1816     -15       1    2317   71.27   2  19    -12.99     -1.00    169.75     663  0
+     667    2330     -15       0     592   71.25   5  30    -12.99      0.00    168.75     855  0
+     668    2333     -15      -1    2316   71.26   5  30    -12.99      1.00    169.75     858  0
+     669    2336     -15      -2    1753   71.26   5  31    -12.99      2.00    172.75     861  0
+     670    2310     -15      -3     593   71.30   5  26    -12.99      3.00    177.75     837  0
+     671    2313     -15      -4    1633   71.30   5  26    -12.99      4.00    184.75     840  0
+     672    2316     -15      -5    2309   71.30   5  27    -12.99      5.00    193.75     843  0
+     673    2300     -15      -6    1363   71.33   5  24    -12.99      6.00    204.75     828  0
+     674    2303     -15      -7    1881   71.33   5  24    -12.99      7.00    217.75     831  0
+     675    2306     -15      -8     502   71.33   5  25    -12.99      8.00    232.75     834  0
+     676    2308     -14      -8     507   71.33   5  25    -12.12      8.50    219.25     836  0
+     677    2224     -13      -9     698   71.29   5  21    -11.26      9.00    207.75     814  0
+     678    2226     -12      -9    1672   71.29   5  21    -10.39      9.50    198.25     816  0
+     679    2228     -11     -10     260   71.30   5  21     -9.53     10.00    190.75     818  0
+     680    2434     -10     -10     678   71.25   6   7     -8.66     10.50    185.25     895  0
+     681    2436      -9     -11     975   71.25   6   7     -7.79     11.00    181.75     897  0
+     682    2438      -8     -11    1339   71.25   6   7     -6.93     11.50    180.25     899  0
+     683    2624      -7     -12    1150   71.23   6  21     -6.06     12.00    180.75     958  0
+     684    2626      -6     -12    1340   71.23   6  21     -5.20     12.50    183.25     960  0
+     685    2628      -5     -13     674   71.23   6  21     -4.33     13.00    187.75     962  0
+     686    2814      -4     -13    1025   71.29   7   3     -3.46     13.50    194.25    1021  0
+     687    2816      -3     -14    1041   71.29   7   3     -2.60     14.00    202.75    1023  0
+     688    2818      -2     -14    1145   71.29   7   3     -1.73     14.50    213.25    1025  0
+     689    2924      -1     -15     510   71.33   7  13     -0.87     15.00    225.75    1066  0
+     690    2926       0     -15     704   71.33   7  13      0.00     15.50    240.25    1068  0
+     691    2925       1     -15     517   71.33   7  13      0.87     15.00    225.75    1067  0
+     692    3227       2     -14    1205   71.29   9  21      1.73     14.50    213.25    1177  0
+     693    3226       3     -14    1142   71.29   9  21      2.60     14.00    202.75    1176  0
+     694    3225       4     -13     960   71.29   9  21      3.46     13.50    194.25    1175  0
+     695    3327       5     -13    1946   71.24   9  29      4.33     13.00    187.75    1213  0
+     696    3326       6     -12     583   71.24   9  29      5.20     12.50    183.25    1212  0
+     697    3325       7     -12     579   71.24   9  29      6.06     12.00    180.75    1211  0
+     698    3527       8     -11     619   71.25   8  13      6.93     11.50    180.25    1285  0
+     699    3526       9     -11    1966   71.25   8  13      7.79     11.00    181.75    1284  0
+     700    3525      10     -10      84   71.25   8  13      8.66     10.50    185.25    1283  0
+     701    3627      11     -10     672   71.30   8  21      9.53     10.00    190.75    1321  0
+     702    3626      12      -9    1783   71.30   8  21     10.39      9.50    198.25    1320  0
+     703    3625      13      -9    1614   71.30   8  21     11.26      9.00    207.75    1319  0
+     704    3737      14      -8     633   71.33   8  31     12.12      8.50    219.25    1366  0
+     705    3736      15      -8     585   71.33   8  31     12.99      8.00    232.75    1365  0
+     706    3733      15      -7      20   71.33   8  30     12.99      7.00    217.75    1362  0
+     707    3730      15      -6     508   71.33   8  30     12.99      6.00    204.75    1359  0
+     708    3806      15      -5    1939   71.31   7  17     12.99      5.00    193.75    1374  0
+     709    3803      15      -4    1151   71.31   7  16     12.99      4.00    184.75    1371  0
+     710    3800      15      -3    1125   71.30   7  16     12.99      3.00    177.75    1368  0
+     711    3816      15      -2     967   71.26   7  19     12.99      2.00    172.75    1383  0
+     712    3813      15      -1    1620   71.26   7  18     12.99      1.00    169.75    1380  0
+     713    3810      15       0    1120   71.26   7  18     12.99      0.00    168.75    1377  0
+     714     326      15       1     289   71.27   0  29     12.99     -1.00    169.75     132  0
+     715     323      15       2     650   71.27   0  28     12.99     -2.00    172.75     129  0
+     716     320      15       3    2305   71.27   0  28     12.99     -3.00    177.75     126  0
+     717     316      15       4    1134   71.31   0  27     12.99     -4.00    184.75     123  0
+     718     313      15       5     100   71.31   0  26     12.99     -5.00    193.75     120  0
+     719     310      15       6      10   71.31   0  26     12.99     -6.00    204.75     117  0
+     720     306      15       7      30   71.34   0  25     12.99     -7.00    217.75     114  0
+     721     303      15       8    1629   71.34   0  24     12.99     -8.00    232.75     111  0
+     722     301      14       9     118   71.34   0  24     12.12     -8.50    219.25     109  0
+     723     225      13       9    1068   71.31   0  21     11.26     -9.00    207.75      95  0
+     724     223      12      10      52   71.31   0  20     10.39     -9.50    198.25      93  0
+     725     221      11      10     565   71.31   0  20      9.53    -10.00    190.75      91  0
+     726     435      10      11    1040   71.27   1   7      8.66    -10.50    185.25     176  0
+     727     433       9      11    1956   71.27   1   6      7.79    -11.00    181.75     174  0
+     728     431       8      12    1000   71.27   1   6      6.93    -11.50    180.25     172  0
+     729     625       7      12     584   71.28   1  21      6.06    -12.00    180.75     239  0
+     730     623       6      13    1648   71.28   1  20      5.20    -12.50    183.25     237  0
+     731     621       5      13    1615   71.28   1  20      4.33    -13.00    187.75     235  0
+     732     815       4      14      92   71.32   2   3      3.46    -13.50    194.25     302  0
+     733     813       3      14    1036   71.32   2   2      2.60    -14.00    202.75     300  0
+     734     811       2      15     476   71.32   2   2      1.73    -14.50    213.25     298  0
+     735     905       1      15     480   71.35   2  11      0.87    -15.00    225.75     329  0
+     736     903       0      16     360   71.35   2  10      0.00    -15.50    240.25     327  0
+     737     904      -1      15     464   71.35   2  11     -0.87    -15.00    225.75     328  0
+     738    1222      -2      15    1055   71.32   4  20     -1.73    -14.50    213.25     452  0
+     739    1223      -3      14    1668   71.32   4  20     -2.60    -14.00    202.75     453  0
+     740    1224      -4      14    1915   71.32   4  21     -3.46    -13.50    194.25     454  0
+     741    1322      -5      13     374   71.28   4  28     -4.33    -13.00    187.75     488  0
+     742    1323      -6      13     570   71.28   4  28     -5.20    -12.50    183.25     489  0
+     743    1324      -7      12    1049   71.28   4  29     -6.06    -12.00    180.75     490  0
+     744    1522      -8      12    2306   71.28   3  12     -6.93    -11.50    180.25     560  0
+     745    1523      -9      11    2307   71.28   3  12     -7.79    -11.00    181.75     561  0
+     746    1524     -10      11     700   71.28   3  13     -8.66    -10.50    185.25     562  0
+     747    1622     -11      10    1613   71.32   3  20     -9.53    -10.00    190.75     596  0
+     748    1623     -12      10     477   71.32   3  20    -10.39     -9.50    198.25     597  0
+     749    1624     -13       9     610   71.32   3  21    -11.26     -9.00    207.75     598  0
+     750    1732     -14       9    1863   71.34   3  30    -12.12     -8.50    219.25     641  0
+     751    1733     -15       8    1864   71.34   3  30    -12.99     -8.00    232.75     642  0
+     752    1734     -16       8    1892   71.34   3  31    -13.86     -7.50    248.25     643  0
+     753    1737     -16       7     394   71.35   3  31    -13.86     -6.50    234.25     646  0
+     754    1801     -16       6     409   71.31   2  16    -13.86     -5.50    222.25     649  0
+     755    1804     -16       5     141   71.31   2  17    -13.86     -4.50    212.25     652  0
+     756    1807     -16       4    1138   71.31   2  17    -13.86     -3.50    204.25     655  0
+     757    1811     -16       3     607   71.27   2  18    -13.86     -2.50    198.25     658  0
+     758    1814     -16       2    1661   71.27   2  19    -13.86     -1.50    194.25     661  0
+     759    1817     -16       1    1226   71.27   2  19    -13.86     -0.50    192.25     664  0
+     760    2331     -16       0     591   71.26   5  30    -13.86      0.50    192.25     856  0
+     761    2334     -16      -1    1149   71.26   5  31    -13.86      1.50    194.25     859  0
+     762    2337     -16      -2     648   71.26   5  31    -13.86      2.50    198.25     862  0
+     763    2311     -16      -3    1140   71.30   5  26    -13.86      3.50    204.25     838  0
+     764    2314     -16      -4    1686   71.30   5  27    -13.86      4.50    212.25     841  0
+     765    2317     -16      -5    1027   71.30   5  27    -13.86      5.50    222.25     844  0
+     766    2301     -16      -6    1379   71.33   5  24    -13.86      6.50    234.25     829  0
+     767    2304     -16      -7     324   71.33   5  25    -13.86      7.50    248.25     832  0
+     768    2307     -16      -8     504   71.33   5  25    -13.86      8.50    264.25     835  0
+     769    2100     -15      -9     259   71.42   5   8    -12.99      9.00    249.75     756  0
+     770    2102     -14      -9     534   71.42   5   8    -12.12      9.50    237.25     758  0
+     771    2227     -13     -10     279   71.30   5  21    -11.26     10.00    226.75     817  0
+     772    2200     -12     -10    1237   71.38   5  16    -10.39     10.50    218.25     792  0
+     773    2202     -11     -11    1299   71.38   5  16     -9.53     11.00    211.75     794  0
+     774    2437     -10     -11    1114   71.25   6   7     -8.66     11.50    207.25     898  0
+     775    2420      -9     -12     620   71.35   6   4     -7.79     12.00    204.75     882  0
+     776    2422      -8     -12    1115   71.35   6   4     -6.93     12.50    204.25     884  0
+     777    2627      -7     -13     380   71.23   6  21     -6.06     13.00    205.75     961  0
+     778    2610      -6     -13     460   71.37   6  18     -5.20     13.50    209.25     945  0
+     779    2612      -5     -14     377   71.37   6  18     -4.33     14.00    214.75     947  0
+     780    2817      -4     -14     664   71.29   7   3     -3.46     14.50    222.25    1024  0
+     781    2800      -3     -15    1814   71.41   7   0     -2.60     15.00    231.75    1008  0
+     782    2802      -2     -15     515   71.41   7   0     -1.73     15.50    243.25    1010  0
+     783    2927      -1     -16    1057   71.33   7  13     -0.87     16.00    256.75    1069  0
+     784    2900       0     -16     234   71.46   7   8      0.00     16.50    272.25    1044  0
+     785    2928       1     -16    1078   71.33   7  13      0.87     16.00    256.75    1070  0
+     786    3211       2     -15     729   71.42   9  18      1.73     15.50    243.25    1162  0
+     787    3210       3     -15      80   71.42   9  18      2.60     15.00    231.75    1161  0
+     788    3228       4     -14    1891   71.29   9  21      3.46     14.50    222.25    1178  0
+     789    3311       5     -14    1313   71.37   9  26      4.33     14.00    214.75    1198  0
+     790    3310       6     -13    1256   71.37   9  26      5.20     13.50    209.25    1197  0
+     791    3328       7     -13     623   71.24   9  29      6.06     13.00    205.75    1214  0
+     792    3511       8     -12    1291   71.36   8  10      6.93     12.50    204.25    1270  0
+     793    3510       9     -12    1257   71.36   8  10      7.79     12.00    204.75    1269  0
+     794    3528      10     -11    1223   71.25   8  13      8.66     11.50    207.25    1286  0
+     795    3611      11     -11     475   71.38   8  18      9.53     11.00    211.75    1306  0
+     796    3610      12     -10      72   71.38   8  18     10.39     10.50    218.25    1305  0
+     797    3628      13     -10     717   71.30   8  21     11.26     10.00    226.75    1322  0
+     798    3711      14      -9      70   71.42   8  26     12.12      9.50    237.25    1342  0
+     799    3710      15      -9    1914   71.42   8  26     12.99      9.00    249.75    1341  0
+     800    3738      16      -8     692   71.33   8  31     13.86      8.50    264.25    1367  0
+     801    3735      16      -7     281   71.33   8  31     13.86      7.50    248.25    1364  0
+     802    3732      16      -6    1751   71.33   8  30     13.86      6.50    234.25    1361  0
+     803    3808      16      -5     278   71.31   7  17     13.86      5.50    222.25    1376  0
+     804    3805      16      -4    1926   71.31   7  17     13.86      4.50    212.25    1373  0
+     805    3802      16      -3    1830   71.30   7  16     13.86      3.50    204.25    1370  0
+     806    3818      16      -2    1742   71.27   7  19     13.86      2.50    198.25    1385  0
+     807    3815      16      -1     640   71.26   7  19     13.86      1.50    194.25    1382  0
+     808    3812      16       0    1296   71.26   7  18     13.86      0.50    192.25    1379  0
+     809     328      16       1     388   71.27   0  29     13.86     -0.50    192.25     134  0
+     810     325      16       2    1671   71.27   0  29     13.86     -1.50    194.25     131  0
+     811     322      16       3    2314   71.27   0  28     13.86     -2.50    198.25     128  0
+     812     318      16       4    2310   71.31   0  27     13.86     -3.50    204.25     125  0
+     813     315      16       5    1039   71.31   0  27     13.86     -4.50    212.25     122  0
+     814     312      16       6     487   71.31   0  26     13.86     -5.50    222.25     119  0
+     815     308      16       7     754   71.34   0  25     13.86     -6.50    234.25     116  0
+     816     305      16       8    1823   71.34   0  25     13.86     -7.50    248.25     113  0
+     817     302      16       9     655   71.34   0  24     13.86     -8.50    264.25     110  0
+     818     300      15       9    1292   71.33   0  24     12.99     -9.00    249.75     108  0
+     819     107      14      10    1748   71.44   0   9     12.12     -9.50    237.25      43  0
+     820     222      13      10      26   71.31   0  20     11.26    -10.00    226.75      92  0
+     821     220      12      11    1651   71.31   0  20     10.39    -10.50    218.25      90  0
+     822     207      11      11     745   71.40   0  17      9.53    -11.00    211.75      79  0
+     823     432      10      12    1813   71.27   1   6      8.66    -11.50    207.25     173  0
+     824     430       9      12     599   71.27   1   6      7.79    -12.00    204.75     171  0
+     825     427       8      13    1770   71.37   1   5      6.93    -12.50    204.25     169  0
+     826     622       7      13    1624   71.28   1  20      6.06    -13.00    205.75     236  0
+     827     620       6      14     766   71.28   1  20      5.20    -13.50    209.25     234  0
+     828     617       5      14    1282   71.41   1  19      4.33    -14.00    214.75     232  0
+     829     812       4      15     490   71.32   2   2      3.46    -14.50    222.25     299  0
+     830     810       3      15     396   71.32   2   2      2.60    -15.00    231.75     297  1
+     831     807       2      16    1889   71.45   2   1      1.73    -15.50    243.25     295  0
+     832     902       1      16     333   71.35   2  10      0.87    -16.00    256.75     326  0
+     833     900       0      17     470   71.35   2  10      0.00    -16.50    272.25     324  0
+     834     901      -1      16     479   71.35   2  10     -0.87    -16.00    256.75     325  0
+     835    1218      -2      16     385   71.34   4  19     -1.73    -15.50    243.25     449  0
+     836    1220      -3      15     568   71.32   4  20     -2.60    -15.00    231.75     450  0
+     837    1221      -4      15    1030   71.32   4  20     -3.46    -14.50    222.25     451  0
+     838    1318      -5      14    1284   71.41   4  27     -4.33    -14.00    214.75     485  0
+     839    1320      -6      14    1697   71.28   4  28     -5.20    -13.50    209.25     486  0
+     840    1321      -7      13     341   71.28   4  28     -6.06    -13.00    205.75     487  0
+     841    1518      -8      13     577   71.38   3  11     -6.93    -12.50    204.25     557  0
+     842    1520      -9      12    1948   71.28   3  12     -7.79    -12.00    204.75     558  0
+     843    1521     -10      12    2304   71.28   3  12     -8.66    -11.50    207.25     559  0
+     844    1618     -11      11    1371   71.40   3  19     -9.53    -11.00    211.75     593  0
+     845    1620     -12      11     525   71.31   3  20    -10.39    -10.50    218.25     594  0
+     846    1621     -13      10     614   71.31   3  20    -11.26    -10.00    226.75     595  0
+     847    1718     -14      10    1928   71.45   3  27    -12.12     -9.50    237.25     629  0
+     848    1730     -15       9     846   71.34   3  30    -12.99     -9.00    249.75     639  0
+     849    1731     -16       9    1080   71.34   3  30    -13.86     -8.50    264.25     640  0
+     850    1728     -17       8     761   71.54   3  29    -14.72     -8.00    280.75     638  0
+     851    1912     -17       7     710   71.44   2  26    -14.72     -7.00    265.75     695  0
+     852    1915     -17       6    1319   71.44   2  27    -14.72     -6.00    252.75     698  0
+     853    1918     -17       5    1781   71.44   2  27    -14.72     -5.00    241.75     701  0
+     854    1822     -17       4     737   71.40   2  20    -14.72     -4.00    232.75     668  0
+     855    1825     -17       3    1901   71.40   2  21    -14.72     -3.00    225.75     671  0
+     856    1828     -17       2    1352   71.40   2  21    -14.72     -2.00    220.75     674  0
+     857    1832     -17       1    1249   71.36   2  22    -14.72     -1.00    217.75     677  0
+     858    1835     -17       0    1917   71.36   2  23    -14.72      0.00    216.75     680  0
+     859    1838     -17      -1     142   71.36   2  23    -14.72      1.00    217.75     683  0
+     860    2032     -17      -2     115   71.39   5   6    -14.72      2.00    220.75     749  0
+     861    2035     -17      -3    1927   71.39   5   7    -14.72      3.00    225.75     752  0
+     862    2038     -17      -4     391   71.39   5   7    -14.72      4.00    232.75     755  0
+     863    2022     -17      -5    1305   71.43   5   4    -14.72      5.00    241.75     740  0
+     864    2025     -17      -6    1808   71.43   5   5    -14.72      6.00    252.75     743  0
+     865    2028     -17      -7    1875   71.43   5   5    -14.72      7.00    265.75     746  0
+     866    2121     -17      -8    1807   71.47   5  12    -14.72      8.00    280.75     775  0
+     867    2123     -17      -9    1945   71.47   5  12    -14.72      9.00    297.75     777  0
+     868    2101     -16      -9     370   71.42   5   8    -13.86      9.50    282.25     757  0
+     869    2103     -15     -10     540   71.42   5   8    -12.99     10.00    268.75     759  0
+     870    2105     -14     -10     713   71.42   5   9    -12.12     10.50    257.25     761  0
+     871    2201     -13     -11    1297   71.38   5  16    -11.26     11.00    247.75     793  0
+     872    2203     -12     -11    1302   71.38   5  16    -10.39     11.50    240.25     795  0
+     873    2205     -11     -12    1679   71.38   5  17     -9.53     12.00    234.75     797  0
+     874    2421     -10     -12    1024   71.35   6   4     -8.66     12.50    231.25     883  0
+     875    2423      -9     -13    1938   71.35   6   4     -7.79     13.00    229.75     885  0
+     876    2425      -8     -13    1932   71.35   6   5     -6.93     13.50    230.25     887  0
+     877    2611      -7     -14     362   71.37   6  18     -6.06     14.00    232.75     946  0
+     878    2613      -6     -14     462   71.37   6  18     -5.20     14.50    237.25     948  0
+     879    2615      -5     -15     580   71.37   6  19     -4.33     15.00    243.75     950  0
+     880    2801      -4     -15      46   71.41   7   0     -3.46     15.50    252.25    1009  0
+     881    2803      -3     -16     718   71.41   7   0     -2.60     16.00    262.75    1011  0
+     882    2805      -2     -16    1312   71.41   7   1     -1.73     16.50    275.25    1013  0
+     883    2901      -1     -17    1988   71.46   7   8     -0.87     17.00    289.75    1045  0
+     884    2903       0     -17     231   71.47   7   8      0.00     17.50    306.25    1047  0
+     885    2902       1     -17      85   71.46   7   8      0.87     17.00    289.75    1046  0
+     886    3214       2     -16    1303   71.42   9  19      1.73     16.50    275.25    1165  0
+     887    3213       3     -16    1240   71.42   9  18      2.60     16.00    262.75    1164  0
+     888    3212       4     -15     756   71.42   9  18      3.46     15.50    252.25    1163  0
+     889    3314       5     -15    1797   71.37   9  27      4.33     15.00    243.75    1201  0
+     890    3313       6     -14    1793   71.37   9  26      5.20     14.50    237.25    1200  0
+     891    3312       7     -14    1690   71.37   9  26      6.06     14.00    232.75    1199  0
+     892    3514       8     -13     498   71.36   8  11      6.93     13.50    230.25    1273  0
+     893    3513       9     -13    1866   71.36   8  10      7.79     13.00    229.75    1272  0
+     894    3512      10     -12    1794   71.36   8  10      8.66     12.50    231.25    1271  0
+     895    3614      11     -12     722   71.38   8  19      9.53     12.00    234.75    1309  0
+     896    3613      12     -11     714   71.38   8  18     10.39     11.50    240.25    1308  0
+     897    3612      13     -11     572   71.38   8  18     11.26     11.00    247.75    1307  0
+     898    3714      14     -10     671   71.42   8  27     12.12     10.50    257.25    1345  0
+     899    3713      15     -10     228   71.42   8  26     12.99     10.00    268.75    1344  0
+     900    3712      16      -9    1232   71.42   8  26     13.86      9.50    282.25    1343  0
+     901    3723      17      -9    1829   71.48   8  28     14.72      9.00    297.75    1353  0
+     902    3721      17      -8    1362   71.48   8  28     14.72      8.00    280.75    1351  0
+     903    3917      17      -7    1879   71.43   7  27     14.72      7.00    265.75    1420  0
+     904    3914      17      -6    1244   71.43   7  27     14.72      6.00    252.75    1417  0
+     905    3911      17      -5     523   71.43   7  26     14.72      5.00    241.75    1414  0
+     906    3827      17      -4    1855   71.39   7  21     14.72      4.00    232.75    1393  0
+     907    3824      17      -3    1069   71.39   7  21     14.72      3.00    225.75    1390  0
+     908    3821      17      -2     518   71.39   7  20     14.72      2.00    220.75    1387  0
+     909    3837      17      -1      47   71.36   7  23     14.72      1.00    217.75    1402  0
+     910    3834      17       0    1707   71.36   7  23     14.72      0.00    216.75    1399  0
+     911    3831      17       1     516   71.36   7  22     14.72     -1.00    217.75    1396  0
+     912      37      17       2    1778   71.39   0   7     14.72     -2.00    220.75      34  0
+     913      34      17       3     740   71.39   0   7     14.72     -3.00    225.75      31  0
+     914      31      17       4      77   71.39   0   6     14.72     -4.00    232.75      28  0
+     915      27      17       5     217   71.44   0   5     14.72     -5.00    241.75      25  0
+     916      24      17       6    1877   71.43   0   5     14.72     -6.00    252.75      22  0
+     917      21      17       7    1658   71.43   0   4     14.72     -7.00    265.75      19  0
+     918     128      17       8    1886   71.53   0  13     14.72     -8.00    280.75      62  0
+     919     126      17       9    1683   71.53   0  13     14.72     -9.00    297.75      60  0
+     920     108      16      10     240   71.45   0   9     13.86     -9.50    282.25      44  0
+     921     106      15      10    1713   71.44   0   9     12.99    -10.00    268.75      42  0
+     922     104      14      11     131   71.44   0   9     12.12    -10.50    257.25      40  0
+     923     208      13      11     626   71.40   0  17     11.26    -11.00    247.75      80  2
+     924     206      12      12     468   71.40   0  17     10.39    -11.50    240.25      78  0
+     925     204      11      12    1777   71.40   0  17      9.53    -12.00    234.75      76  0
+     926     428      10      13     181   71.37   1   5      8.66    -12.50    231.25     170  0
+     927     426       9      13    1715   71.37   1   5      7.79    -13.00    229.75     168  0
+     928     424       8      14    1685   71.37   1   5      6.93    -13.50    230.25     166  0
+     929     618       7      14    1800   71.41   1  19      6.06    -14.00    232.75     233  0
+     930     616       6      15     612   71.41   1  19      5.20    -14.50    237.25     231  0
+     931     614       5      15     211   71.41   1  19      4.33    -15.00    243.75     229  0
+     932     808       4      16     225   71.46   2   1      3.46    -15.50    252.25     296  0
+     933     806       3      16    1884   71.45   2   1      2.60    -16.00    262.75     294  0
+     934     804       2      17      41   71.45   2   1      1.73    -16.50    275.25     292  0
+     935     918       1      17    1771   71.49   2   9      0.87    -17.00    289.75     341  0
+     936     916       0      18     226   71.49   2   9      0.00    -17.50    306.25     339  0
+     937     917      -1      17     400   71.49   2   9     -0.87    -17.00    289.75     340  0
+     938    1215      -2      17     505   71.34   4  19     -1.73    -16.50    275.25     446  0
+     939    1216      -3      16     647   71.34   4  19     -2.60    -16.00    262.75     447  0
+     940    1217      -4      16     359   71.34   4  19     -3.46    -15.50    252.25     448  0
+     941    1315      -5      15    1799   71.41   4  27     -4.33    -15.00    243.75     482  0
+     942    1316      -6      15    1785   71.41   4  27     -5.20    -14.50    237.25     483  0
+     943    1317      -7      14    1304   71.41   4  27     -6.06    -14.00    232.75     484  0
+     944    1515      -8      14     469   71.38   3  11     -6.93    -13.50    230.25     554  0
+     945    1516      -9      13     474   71.38   3  11     -7.79    -13.00    229.75     555  0
+     946    1517     -10      13     564   71.38   3  11     -8.66    -12.50    231.25     556  0
+     947    1615     -11      12      21   71.40   3  19     -9.53    -12.00    234.75     590  0
+     948    1616     -12      12    1075   71.40   3  19    -10.39    -11.50    240.25     591  0
+     949    1617     -13      11    1070   71.40   3  19    -11.26    -11.00    247.75     592  0
+     950    1715     -14      11    1818   71.45   3  27    -12.12    -10.50    257.25     626  0
+     951    1716     -15      10     747   71.45   3  27    -12.99    -10.00    268.75     627  0
+     952    1717     -16      10     219   71.45   3  27    -13.86     -9.50    282.25     628  0
+     953    1726     -17       9     222   71.54   3  29    -14.72     -9.00    297.75     636  0
+     954    1727     -18       9     262   71.54   3  29    -15.59     -8.50    315.25     637  0
+     955    1910     -18       8     520   71.44   2  26    -15.59     -7.50    299.25     693  0
+     956    1913     -18       7    1246   71.44   2  26    -15.59     -6.50    285.25     696  0
+     957    1916     -18       6    1694   71.44   2  27    -15.59     -5.50    273.25     699  0
+     958    1820     -18       5    1811   71.39   2  20    -15.59     -4.50    263.25     666  0
+     959    1823     -18       4    1810   71.40   2  20    -15.59     -3.50    255.25     669  0
+     960    1826     -18       3    1912   71.40   2  21    -15.59     -2.50    249.25     672  0
+     961    1830     -18       2     461   71.36   2  22    -15.59     -1.50    245.25     675  0
+     962    1833     -18       1    1812   71.36   2  22    -15.59     -0.50    243.25     678  0
+     963    1836     -18       0      63   71.36   2  23    -15.59      0.50    243.25     681  0
+     964    2030     -18      -1      59   71.39   5   6    -15.59      1.50    245.25     747  0
+     965    2033     -18      -2    1868   71.39   5   6    -15.59      2.50    249.25     750  0
+     966    2036     -18      -3    1931   71.39   5   7    -15.59      3.50    255.25     753  0
+     967    2020     -18      -4    1234   71.42   5   4    -15.59      4.50    263.25     738  0
+     968    2023     -18      -5      56   71.43   5   4    -15.59      5.50    273.25     741  0
+     969    2026     -18      -6    1825   71.43   5   5    -15.59      6.50    285.25     744  0
+     970    2120     -18      -7    1243   71.47   5  12    -15.59      7.50    299.25     774  0
+     971    2122     -18      -8     229   71.47   5  12    -15.59      8.50    315.25     776  0
+     972    2124     -18      -9     764   71.47   5  13    -15.59      9.50    333.25     778  0
+     973    2125     -17     -10    1272   71.47   5  13    -14.72     10.00    316.75     779  0
+     974    2104     -16     -10     596   71.42   5   9    -13.86     10.50    302.25     760  0
+     975    2106     -15     -11    1878   71.42   5   9    -12.99     11.00    289.75     762  0
+     976    2108     -14     -11    1896   71.42   5   9    -12.12     11.50    279.25     764  0
+     977    2204     -13     -12    1353   71.38   5  17    -11.26     12.00    270.75     796  0
+     978    2206     -12     -12    1693   71.38   5  17    -10.39     12.50    264.25     798  0
+     979    2208     -11     -13    1857   71.38   5  17     -9.53     13.00    259.75     800  0
+     980    2424     -10     -13    1905   71.35   6   5     -8.66     13.50    257.25     886  0
+     981    2426      -9     -14     687   71.35   6   5     -7.79     14.00    256.75     888  0
+     982    2428      -8     -14     485   71.36   6   5     -6.93     14.50    258.25     890  0
+     983    2614      -7     -15     554   71.37   6  19     -6.06     15.00    261.75     949  0
+     984    2616      -6     -15     618   71.37   6  19     -5.20     15.50    267.25     951  0
+     985    2618      -5     -16     703   71.37   6  19     -4.33     16.00    274.75     953  0
+     986    2804      -4     -16    1790   71.41   7   1     -3.46     16.50    284.25    1012  0
+     987    2806      -3     -17     401   71.42   7   1     -2.60     17.00    295.75    1014  0
+     988    2808      -2     -17    1263   71.42   7   1     -1.73     17.50    309.25    1016  0
+     989    2911      -1     -18    1895   71.28   7  10     -0.87     18.00    324.75    1054  0
+     990    2914       0     -18       8   71.28   7  11      0.00     18.50    342.25    1057  0
+     991    2904       1     -18     258   71.47   7   9      0.87     18.00    324.75    1048  0
+     992    3217       2     -17    1848   71.42   9  19      1.73     17.50    309.25    1168  0
+     993    3216       3     -17    1824   71.42   9  19      2.60     17.00    295.75    1167  0
+     994    3215       4     -16    1374   71.42   9  19      3.46     16.50    284.25    1166  0
+     995    3317       5     -16     484   71.37   9  27      4.33     16.00    274.75    1204  0
+     996    3316       6     -15     663   71.37   9  27      5.20     15.50    267.25    1203  0
+     997    3315       7     -15    1856   71.37   9  27      6.06     15.00    261.75    1202  0
+     998    3517       8     -14    1076   71.36   8  11      6.93     14.50    258.25    1276  0
+     999    3516       9     -14     730   71.36   8  11      7.79     14.00    256.75    1275  0
+    1000    3515      10     -13     581   71.36   8  11      8.66     13.50    257.25    1274  0
+    1001    3617      11     -13     630   71.38   8  19      9.53     13.00    259.75    1312  0
+    1002    3616      12     -12    1861   71.38   8  19     10.39     12.50    264.25    1311  0
+    1003    3615      13     -12     762   71.38   8  19     11.26     12.00    270.75    1310  0
+    1004    3717      14     -11     104   71.42   8  27     12.12     11.50    279.25    1348  0
+    1005    3716      15     -11      71   71.42   8  27     12.99     11.00    289.75    1347  0
+    1006    3715      16     -10    1942   71.42   8  27     13.86     10.50    302.25    1346  0
+    1007    3725      17     -10      45   71.48   8  29     14.72     10.00    316.75    1355  0
+    1008    3724      18      -9    1916   71.48   8  29     15.59      9.50    333.25    1354  0
+    1009    3722      18      -8    1773   71.48   8  28     15.59      8.50    315.25    1352  0
+    1010    3720      18      -7     763   71.48   8  28     15.59      7.50    299.25    1350  0
+    1011    3916      18      -6     109   71.43   7  27     15.59      6.50    285.25    1419  0
+    1012    3913      18      -5     721   71.43   7  26     15.59      5.50    273.25    1416  0
+    1013    3910      18      -4     237   71.43   7  26     15.59      4.50    263.25    1413  0
+    1014    3826      18      -3    1769   71.39   7  21     15.59      3.50    255.25    1392  0
+    1015    3823      18      -2     679   71.39   7  20     15.59      2.50    249.25    1389  0
+    1016    3820      18      -1     392   71.39   7  20     15.59      1.50    245.25    1386  0
+    1017    3836      18       0    1834   71.36   7  23     15.59      0.50    243.25    1401  0
+    1018    3833      18       1     406   71.36   7  22     15.59     -0.50    243.25    1398  0
+    1019    3830      18       2     478   71.36   7  22     15.59     -1.50    245.25    1395  0
+    1020      36      18       3    1368   71.39   0   7     15.59     -2.50    249.25      33  0
+    1021      33      18       4    1876   71.39   0   6     15.59     -3.50    255.25      30  0
+    1022      30      18       5      58   71.39   0   6     15.59     -4.50    263.25      27  0
+    1023      26      18       6     238   71.44   0   5     15.59     -5.50    273.25      24  0
+    1024      23      18       7    1258   71.43   0   4     15.59     -6.50    285.25      21  0
+    1025      20      18       8    1839   71.43   0   4     15.59     -7.50    299.25      18  0
+    1026     127      18       9    1883   71.53   0  13     15.59     -8.50    315.25      61  0
+    1027     125      18      10     221   71.53   0  13     15.59     -9.50    333.25      59  0
+    1028     124      17      10    1669   71.53   0  13     14.72    -10.00    316.75      58  0
+    1029     105      16      11    1791   71.44   0   9     13.86    -10.50    302.25      41  0
+    1030     103      15      11      13   71.44   0   8     12.99    -11.00    289.75      39  0
+    1031     101      14      12    1869   71.44   0   8     12.12    -11.50    279.25      37  0
+    1032     205      13      12    1688   71.40   0  17     11.26    -12.00    270.75      77  0
+    1033     203      12      13    1779   71.40   0  16     10.39    -12.50    264.25      75  0
+    1034     201      11      13    1786   71.40   0  16      9.53    -13.00    259.75      73  0
+    1035     425      10      14    1712   71.37   1   5      8.66    -13.50    257.25     167  0
+    1036     423       9      14    1300   71.37   1   4      7.79    -14.00    256.75     165  0
+    1037     421       8      15    1065   71.37   1   4      6.93    -14.50    258.25     163  0
+    1038     615       7      15     588   71.41   1  19      6.06    -15.00    261.75     230  0
+    1039     613       6      16     527   71.41   1  18      5.20    -15.50    267.25     228  0
+    1040     611       5      16      95   71.41   1  18      4.33    -16.00    274.75     226  0
+    1041     805       4      17     193   71.45   2   1      3.46    -16.50    284.25     293  0
+    1042     803       3      17      15   71.45   2   0      2.60    -17.00    295.75     291  0
+    1043     801       2      18    1937   71.45   2   0      1.73    -17.50    309.25     289  0
+    1044     915       1      18    1841   71.49   2   9      0.87    -18.00    324.75     338  0
+    1045     913       0      19     233   71.49   2   8      0.00    -18.50    342.25     336  0
+    1046     914      -1      18     731   71.49   2   9     -0.87    -18.00    324.75     337  0
+    1047    1212      -2      18    1276   71.33   4  18     -1.73    -17.50    309.25     443  0
+    1048    1213      -3      17     576   71.34   4  18     -2.60    -17.00    295.75     444  0
+    1049    1214      -4      17     325   71.34   4  19     -3.46    -16.50    284.25     445  0
+    1050    1312      -5      16    1941   71.41   4  26     -4.33    -16.00    274.75     479  0
+    1051    1313      -6      16      34   71.41   4  26     -5.20    -15.50    267.25     480  0
+    1052    1314      -7      15     182   71.41   4  27     -6.06    -15.00    261.75     481  0
+    1053    1512      -8      15    1882   71.38   3  10     -6.93    -14.50    258.25     551  0
+    1054    1513      -9      14    1851   71.38   3  10     -7.79    -14.00    256.75     552  0
+    1055    1514     -10      14     361   71.38   3  11     -8.66    -13.50    257.25     553  0
+    1056    1612     -11      13     386   71.40   3  18     -9.53    -13.00    259.75     587  0
+    1057    1613     -12      13     526   71.40   3  18    -10.39    -12.50    264.25     588  0
+    1058    1614     -13      12     537   71.40   3  19    -11.26    -12.00    270.75     589  0
+    1059    1712     -14      12    1262   71.45   3  26    -12.12    -11.50    279.25     623  0
+    1060    1713     -15      11    1354   71.45   3  26    -12.99    -11.00    289.75     624  0
+    1061    1714     -16      11    1364   71.45   3  27    -13.86    -10.50    302.25     625  0
+    1062    1724     -17      10     330   71.53   3  29    -14.72    -10.00    316.75     634  0
+    1063    1725     -18      10    1318   71.53   3  29    -15.59     -9.50    333.25     635  0
+    1064    1900     -19       9     257   71.53   2  24    -16.45     -9.00    351.75     684  0
+    1065    1903     -19       8    1837   71.62   2  24    -16.45     -8.00    334.75     687  0
+    1066    1911     -19       7     538   71.44   2  26    -16.45     -7.00    319.75     694  0
+    1067    1914     -19       6    1311   71.44   2  27    -16.45     -6.00    306.75     697  0
+    1068    1917     -19       5    1705   71.44   2  27    -16.45     -5.00    295.75     700  0
+    1069    1821     -19       4     571   71.39   2  20    -16.45     -4.00    286.75     667  0
+    1070    1824     -19       3    1802   71.40   2  21    -16.45     -3.00    279.75     670  0
+    1071    1827     -19       2    1943   71.40   2  21    -16.45     -2.00    274.75     673  0
+    1072    1831     -19       1     463   71.36   2  22    -16.45     -1.00    271.75     676  0
+    1073    1834     -19       0    1910   71.36   2  23    -16.45      0.00    270.75     679  0
+    1074    1837     -19      -1      97   71.36   2  23    -16.45      1.00    271.75     682  0
+    1075    2031     -19      -2      66   71.39   5   6    -16.45      2.00    274.75     748  0
+    1076    2034     -19      -3    1923   71.39   5   7    -16.45      3.00    279.75     751  0
+    1077    2037     -19      -4     369   71.39   5   7    -16.45      4.00    286.75     754  0
+    1078    2021     -19      -5    1245   71.42   5   4    -16.45      5.00    295.75     739  0
+    1079    2024     -19      -6    1734   71.43   5   5    -16.45      6.00    306.75     742  0
+    1080    2027     -19      -7    1852   71.43   5   5    -16.45      7.00    319.75     745  0
+    1081    2134     -19      -8    1862   71.36   5  15    -16.45      8.00    334.75     787  0
+    1082    2136     -19      -9     227   71.36   5  15    -16.45      9.00    351.75     789  0
+    1083    2138     -19     -10    1922   71.36   5  15    -16.45     10.00    370.75     791  0
+    1084    2126     -18     -10    1873   71.47   5  13    -15.59     10.50    353.25     780  0
+    1085    2110     -17     -11    1239   71.62   5  10    -14.72     11.00    337.75     765  0
+    1086    2107     -16     -11    1880   71.42   5   9    -13.86     11.50    324.25     763  0
+    1087    2114     -15     -12    1843   71.59   5  11    -12.99     12.00    312.75     769  0
+    1088    2115     -14     -12     329   71.60   5  11    -12.12     12.50    303.25     770  0
+    1089    2207     -13     -13    1762   71.38   5  17    -11.26     13.00    295.75     799  0
+    1090    2210     -12     -13    1283   71.57   5  18    -10.39     13.50    290.25     801  0
+    1091    2212     -11     -14    1732   71.57   5  18     -9.53     14.00    286.75     803  0
+    1092    2427     -10     -14    1689   71.35   6   5     -8.66     14.50    285.25     889  0
+    1093    2412      -9     -15     978   70.75   6   2     -7.79     15.00    285.75     875  0
+    1094    2400      -8     -15    1390   71.03   6   0     -6.93     15.50    288.25     864  0
+    1095    2617      -7     -16     638   71.37   6  19     -6.06     16.00    292.75     952  0
+    1096    2600      -6     -16    1061   70.84   6  16     -5.20     16.50    299.25     936  0
+    1097    2602      -5     -17    1084   70.85   6  16     -4.33     17.00    307.75     938  0
+    1098    2807      -4     -17    1898   71.42   7   1     -3.46     17.50    318.25    1015  0
+    1099    2910      -3     -18     284   71.27   7  10     -2.60     18.00    330.75    1053  0
+    1100    2912      -2     -18     625   71.28   7  10     -1.73     18.50    345.25    1055  0
+    1101    2915      -1     -19    1079   71.28   7  11     -0.87     19.00    361.75    1058  0
+    1102    2918       0     -19      28   71.29   7  11      0.00     19.50    380.25    1061  0
+    1103    2916       1     -19    1043   71.28   7  11      0.87     19.00    361.75    1059  0
+    1104    2906       2     -18     559   71.47   7   9      1.73     18.50    345.25    1050  0
+    1105    2905       3     -18     375   71.47   7   9      2.60     18.00    330.75    1049  0
+    1106    3218       4     -17    1867   71.42   9  19      3.46     17.50    318.25    1169  0
+    1107    3201       5     -17     318   70.90   9  16      4.33     17.00    307.75    1153  0
+    1108    3200       6     -16     783   70.90   9  16      5.20     16.50    299.25    1152  0
+    1109    3318       7     -16     558   71.37   9  27      6.06     16.00    292.75    1205  0
+    1110    3300       8     -15     820   71.08   9  24      6.93     15.50    288.25    1188  0
+    1111    3500       9     -15     950   70.83   8   8      7.79     15.00    285.75    1260  0
+    1112    3518      10     -14     410   71.36   8  11      8.66     14.50    285.25    1277  0
+    1113    3601      11     -14     376   71.58   8  16      9.53     14.00    286.75    1297  0
+    1114    3600      12     -13    1854   71.58   8  16     10.39     13.50    290.25    1296  0
+    1115    3618      13     -13    1982   71.39   8  19     11.26     13.00    295.75    1313  0
+    1116    3705      14     -12     786   70.69   8  25     12.12     12.50    303.25    1337  0
+    1117    3704      15     -12    1199   70.69   8  25     12.99     12.00    312.75    1336  0
+    1118    3718      16     -11     192   71.42   8  27     13.86     11.50    324.25    1349  0
+    1119    3700      17     -11     851   70.65   8  24     14.72     11.00    337.75    1332  0
+    1120    3726      18     -10     232   71.48   8  29     15.59     10.50    353.25    1356  0
+    1121    3908      19     -10     113   71.40   7  25     16.45     10.00    370.75    1412  0
+    1122    3906      19      -9    1806   71.39   7  25     16.45      9.00    351.75    1410  0
+    1123    3904      19      -8    1872   71.38   7  25     16.45      8.00    334.75    1408  0
+    1124    3918      19      -7    1320   71.43   7  27     16.45      7.00    319.75    1421  0
+    1125    3915      19      -6    1803   71.43   7  27     16.45      6.00    306.75    1418  0
+    1126    3912      19      -5     604   71.43   7  26     16.45      5.00    295.75    1415  0
+    1127    3828      19      -4    1865   71.39   7  21     16.45      4.00    286.75    1394  0
+    1128    3825      19      -3    1741   71.39   7  21     16.45      3.00    279.75    1391  0
+    1129    3822      19      -2     555   71.39   7  20     16.45      2.00    274.75    1388  0
+    1130    3838      19      -1     253   71.37   7  23     16.45      1.00    271.75    1403  0
+    1131    3835      19       0    1826   71.36   7  23     16.45      0.00    270.75    1400  0
+    1132    3832      19       1     323   71.36   7  22     16.45     -1.00    271.75    1397  0
+    1133      38      19       2    1798   71.39   0   7     16.45     -2.00    274.75      35  0
+    1134      35      19       3    1231   71.39   0   7     16.45     -3.00    279.75      32  0
+    1135      32      19       4      60   71.39   0   6     16.45     -4.00    286.75      29  0
+    1136      28      19       5     270   71.44   0   5     16.45     -5.00    295.75      26  0
+    1137      25      19       6     531   71.43   0   5     16.45     -6.00    306.75      23  0
+    1138      22      19       7     214   71.43   0   4     16.45     -7.00    319.75      20  0
+    1139     132      19       8    1744   71.41   0  14     16.45     -8.00    334.75      65  0
+    1140     130      19       9    1361   71.40   0  14     16.45     -9.00    351.75      63  0
+    1141     122      19      10    1281   71.53   0  12     16.45    -10.00    370.75      56  0
+    1142     121      18      11     367   71.53   0  12     15.59    -10.50    353.25      55  0
+    1143     118      17      11    1294   71.22   0  11     14.72    -11.00    337.75      53  0
+    1144     102      16      12    1920   71.44   0   8     13.86    -11.50    324.25      38  0
+    1145     100      15      12    1874   71.44   0   8     12.99    -12.00    312.75      36  0
+    1146     113      14      13     148   71.21   0  10     12.12    -12.50    303.25      48  0
+    1147     202      13      13    1780   71.40   0  16     11.26    -13.00    295.75      74  0
+    1148     200      12      14     705   71.40   0  16     10.39    -13.50    290.25      72  0
+    1149     418      11      14     163   70.99   1   3      9.53    -14.00    286.75     161  0
+    1150     422      10      15    1298   71.37   1   4      8.66    -14.50    285.25     164  0
+    1151     420       9      15     706   71.37   1   4      7.79    -15.00    285.75     162  0
+    1152     408       8      16    1836   71.55   1   1      6.93    -15.50    288.25     152  0
+    1153     612       7      16    1847   71.41   1  18      6.06    -16.00    292.75     227  0
+    1154     610       6      17     119   71.41   1  18      5.20    -16.50    299.25     225  0
+    1155     608       5      17     578   71.33   1  17      4.33    -17.00    307.75     224  0
+    1156     802       4      18      50   71.45   2   0      3.46    -17.50    318.25     290  0
+    1157     800       3      18    1933   71.45   2   0      2.60    -18.00    330.75     288  0
+    1158     603       2      19      81   71.31   1  16      1.73    -18.50    345.25     219  0
+    1159     912       1      19    1831   71.48   2   8      0.87    -19.00    361.75     335  0
+    1160     910       0      20     106   71.48   2   8      0.00    -19.50    380.25     333  0
+    1161     911      -1      19     269   71.48   2   8     -0.87    -19.00    361.75     334  0
+    1162    1203      -2      19    1666   71.46   4  16     -1.73    -18.50    345.25     435  0
+    1163    1210      -3      18     506   71.33   4  18     -2.60    -18.00    330.75     441  0
+    1164    1211      -4      18     562   71.33   4  18     -3.46    -17.50    318.25     442  0
+    1165    1208      -5      17     112   71.46   4  17     -4.33    -17.00    307.75     440  0
+    1166    1310      -6      17    1788   71.41   4  26     -5.20    -16.50    299.25     477  0
+    1167    1311      -7      16    1722   71.41   4  26     -6.06    -16.00    292.75     478  0
+    1168    1308      -8      16     716   71.57   4  25     -6.93    -15.50    288.25     476  0
+    1169    1510      -9      15     560   71.37   3  10     -7.79    -15.00    285.75     549  0
+    1170    1511     -10      15    1871   71.37   3  10     -8.66    -14.50    285.25     550  0
+    1171    1508     -11      14     784   71.03   3   9     -9.53    -14.00    286.75     548  0
+    1172    1610     -12      14    1782   71.40   3  18    -10.39    -13.50    290.25     585  0
+    1173    1611     -13      13    1721   71.40   3  18    -11.26    -13.00    295.75     586  0
+    1174    1703     -14      13     617   71.23   3  24    -12.12    -12.50    303.25     615  0
+    1175    1710     -15      12     186   71.45   3  26    -12.99    -12.00    312.75     621  0
+    1176    1711     -16      12     755   71.45   3  26    -13.86    -11.50    324.25     622  0
+    1177    1708     -17      11     998   71.24   3  25    -14.72    -11.00    337.75     620  0
+    1178    1721     -18      11      62   71.53   3  28    -15.59    -10.50    353.25     631  0
+    1179    1722     -19      10     203   71.53   3  28    -16.45    -10.00    370.75     632  0
+    1180    1723     -20      10     266   71.53   3  28    -17.32     -9.50    390.25     633  0
+    1181    1901     -20       9    1264   71.61   2  24    -17.32     -8.50    372.25     685  0
+    1182    1904     -20       8      33   71.47   2  25    -17.32     -7.50    356.25     688  0
+    1183    1907     -20       7     110   71.50   2  25    -17.32     -6.50    342.25     691  0
+    1184    1927     -20       6    1356   71.16   2  29    -17.32     -5.50    330.25     709  0
+    1185    1924     -20       5     996   71.16   2  29    -17.32     -4.50    320.25     706  0
+    1186    1921     -20       4     795   71.13   2  28    -17.32     -3.50    312.25     703  0
+    1187    1937     -20       3    1827   71.50   2  31    -17.32     -2.50    306.25     718  0
+    1188    1934     -20       2     223   71.50   2  31    -17.32     -1.50    302.25     715  0
+    1189    1931     -20       1       5   71.50   2  30    -17.32     -0.50    300.25     712  0
+    1190    2017     -20       0    1701   71.51   5   3    -17.32      0.50    300.25     736  0
+    1191    2014     -20      -1    1842   71.51   5   3    -17.32      1.50    302.25     733  0
+    1192    2011     -20      -2     267   71.50   5   2    -17.32      2.50    306.25     730  0
+    1193    2007     -20      -3     987   71.18   5   1    -17.32      3.50    312.25     727  0
+    1194    2004     -20      -4     992   71.18   5   1    -17.32      4.50    320.25     724  0
+    1195    2001     -20      -5     242   71.17   5   0    -17.32      5.50    330.25     721  0
+    1196    2130     -20      -6      12   71.33   5  14    -17.32      6.50    342.25     783  0
+    1197    2132     -20      -7    1796   71.35   5  14    -17.32      7.50    356.25     785  0
+    1198    2135     -20      -8     622   71.36   5  15    -17.32      8.50    372.25     788  0
+    1199    2137     -20      -9     748   71.36   5  15    -17.32      9.50    390.25     790  0
+    1200    2127     -19     -11    1930   71.48   5  13    -16.45     11.00    391.75     781  0
+    1201    2128     -18     -11     567   71.48   5  13    -15.59     11.50    375.25     782  0
+    1202    2111     -17     -12    1260   71.62   5  10    -14.72     12.00    360.75     766  0
+    1203    2112     -16     -12    1236   71.63   5  10    -13.86     12.50    348.25     767  0
+    1204    2116     -15     -13    1835   71.60   5  11    -12.99     13.00    337.75     771  0
+    1205    2118     -14     -13    1677   71.61   5  11    -12.12     13.50    329.25     773  0
+    1206    2211     -13     -14    1745   71.57   5  18    -11.26     14.00    322.75     802  0
+    1207    2213     -12     -14    1846   71.57   5  18    -10.39     14.50    318.25     804  0
+    1208    2410     -11     -15    1098   70.74   6   2     -9.53     15.00    315.75     873  2
+    1209    2411     -10     -15    1327   70.74   6   2     -8.66     15.50    315.25     874  0
+    1210    2401      -9     -16    1383   71.04   6   0     -7.79     16.00    316.75     865  0
+    1211    2402      -8     -16    1626   71.04   6   0     -6.93     16.50    320.25     866  0
+    1212    2601      -7     -17     459   70.85   6  16     -6.06     17.00    325.75     937  0
+    1213    2603      -6     -17    1095   70.85   6  16     -5.20     17.50    333.25     939  0
+    1214    2604      -5     -18    1099   70.86   6  17     -4.33     18.00    342.75     940  0
+    1215    2606      -4     -18    1105   70.87   6  17     -3.46     18.50    354.25     942  0
+    1216    2913      -3     -19     276   71.28   7  10     -2.60     19.00    367.75    1056  0
+    1217    2917      -2     -19    1034   71.28   7  11     -1.73     19.50    383.25    1060  0
+    1218    2908       2     -19    1233   71.47   7   9      1.73     19.50    383.25    1052  0
+    1219    2907       3     -19     739   71.47   7   9      2.60     19.00    367.75    1051  0
+    1220    3205       4     -18     509   70.91   9  17      3.46     18.50    354.25    1157  0
+    1221    3204       5     -18    1182   70.90   9  17      4.33     18.00    342.75    1156  0
+    1222    3203       6     -17     196   70.90   9  16      5.20     17.50    333.25    1155  0
+    1223    3202       7     -17     437   70.90   9  16      6.06     17.00    325.75    1154  0
+    1224    3302       8     -16     889   71.09   9  24      6.93     16.50    320.25    1190  0
+    1225    3301       9     -16    1625   71.08   9  24      7.79     16.00    316.75    1189  0
+    1226    3502      10     -15     161   70.83   8   8      8.66     15.50    315.25    1262  0
+    1227    3501      11     -15    1083   70.83   8   8      9.53     15.00    315.75    1261  0
+    1228    3603      12     -14     368   71.59   8  16     10.39     14.50    318.25    1299  0
+    1229    3602      13     -14     708   71.58   8  16     11.26     14.00    322.75    1298  0
+    1230    3707      14     -13     945   70.72   8  25     12.12     13.50    329.25    1339  0
+    1231    3706      15     -13     908   70.72   8  25     12.99     13.00    337.75    1338  0
+    1232    3702      16     -12     770   70.67   8  24     13.86     12.50    348.25    1334  0
+    1233    3701      17     -12     821   70.66   8  24     14.72     12.00    360.75    1333  0
+    1234    3728      18     -11     215   71.48   8  29     15.59     11.50    375.25    1358  0
+    1235    3727      19     -11    1817   71.48   8  29     16.45     11.00    391.75    1357  0
+    1236    3907      20      -9     378   71.39   7  25     17.32      9.50    390.25    1411  0
+    1237    3905      20      -8    1766   71.38   7  25     17.32      8.50    372.25    1409  0
+    1238    3902      20      -7    1822   71.38   7  24     17.32      7.50    356.25    1406  0
+    1239    3900      20      -6     701   71.36   7  24     17.32      6.50    342.25    1404  0
+    1240    3922      20      -5     811   71.20   7  28     17.32      5.50    330.25    1424  0
+    1241    3925      20      -4     147   71.19   7  29     17.32      4.50    320.25    1427  0
+    1242    3928      20      -3    1063   71.19   7  29     17.32      3.50    312.25    1430  0
+    1243    3932      20      -2     202   71.52   7  30     17.32      2.50    306.25    1433  0
+    1244    3935      20      -1      39   71.52   7  31     17.32      1.50    302.25    1436  0
+    1245    3938      20       0     753   71.52   7  31     17.32      0.50    300.25    1439  0
+    1246      12      20       1      73   71.49   0   2     17.32     -0.50    300.25      11  0
+    1247      15      20       2     524   71.49   0   3     17.32     -1.50    302.25      14  0
+    1248      18      20       3     723   71.50   0   3     17.32     -2.50    306.25      17  0
+    1249       2      20       4     428   71.11   0   0     17.32     -3.50    312.25       2  0
+    1250       5      20       5     888   71.12   0   1     17.32     -4.50    320.25       5  0
+    1251       8      20       6     867   71.13   0   1     17.32     -5.50    330.25       8  0
+    1252     136      20       7     194   71.45   0  15     17.32     -6.50    342.25      69  0
+    1253     134      20       8     535   71.44   0  15     17.32     -7.50    356.25      67  0
+    1254     131      20       9     634   71.40   0  14     17.32     -8.50    372.25      64  0
+    1255     123      20      10    1665   71.53   0  12     17.32     -9.50    390.25      57  0
+    1256     120      19      11    1757   71.52   0  12     16.45    -11.00    391.75      54  0
+    1257     117      18      12     939   71.22   0  11     15.59    -11.50    375.25      52  0
+    1258     116      17      12     248   71.22   0  11     14.72    -12.00    360.75      51  0
+    1259     115      16      13     290   71.22   0  11     13.86    -12.50    348.25      50  0
+    1260     112      15      13     847   71.20   0  10     12.99    -13.00    337.75      47  0
+    1261     218      14      14     602   71.25   0  19     12.12    -13.50    329.25      89  0
+    1262     217      13      14    1137   71.25   0  19     11.26    -14.00    322.75      88  0
+    1263     213      12      15    1045   71.24   0  18     10.39    -14.50    318.25      84  0
+    1264     417      11      15     442   70.98   1   3      9.53    -15.00    315.75     160  0
+    1265     416      10      16     171   70.98   1   3      8.66    -15.50    315.25     159  0
+    1266     407       9      16    1691   71.55   1   1      7.79    -16.00    316.75     151  0
+    1267     406       8      17    1315   71.55   1   1      6.93    -16.50    320.25     150  0
+    1268     404       7      17    1255   71.55   1   1      6.06    -17.00    325.75     148  0
+    1269     607       6      18     139   71.32   1  17      5.20    -17.50    333.25     223  0
+    1270     606       5      18     486   71.32   1  17      4.33    -18.00    342.75     222  0
+    1271     605       4      19    1207   71.32   1  17      3.46    -18.50    354.25     221  0
+    1272     602       3      19     272   71.29   1  16      2.60    -19.00    367.75     218  0
+    1273     600       2      20     275   71.27   1  16      1.73    -19.50    383.25     216  0
+    1274    1201      -2      20     732   71.46   4  16     -1.73    -19.50    383.25     433  0
+    1275    1202      -3      19     536   71.46   4  16     -2.60    -19.00    367.75     434  0
+    1276    1205      -4      19    1253   71.46   4  17     -3.46    -18.50    354.25     437  0
+    1277    1206      -5      18    1833   71.46   4  17     -4.33    -18.00    342.75     438  0
+    1278    1207      -6      18    1850   71.46   4  17     -5.20    -17.50    333.25     439  0
+    1279    1305      -7      17     268   71.56   4  25     -6.06    -17.00    325.75     473  0
+    1280    1306      -8      17    1885   71.56   4  25     -6.93    -16.50    320.25     474  0
+    1281    1307      -9      16     263   71.56   4  25     -7.79    -16.00    316.75     475  0
+    1282    1506     -10      16     348   71.03   3   9     -8.66    -15.50    315.25     546  0
+    1283    1507     -11      15    1395   71.03   3   9     -9.53    -15.00    315.75     547  0
+    1284    1603     -12      15    1047   71.27   3  16    -10.39    -14.50    318.25     579  0
+    1285    1607     -13      14    1141   71.26   3  17    -11.26    -14.00    322.75     583  0
+    1286    1608     -14      14     741   71.26   3  17    -12.12    -13.50    329.25     584  0
+    1287    1702     -15      13    1366   71.23   3  24    -12.99    -13.00    337.75     614  0
+    1288    1705     -16      13     285   71.23   3  25    -13.86    -12.50    348.25     617  0
+    1289    1706     -17      12    1117   71.23   3  25    -14.72    -12.00    360.75     618  0
+    1290    1707     -18      12     931   71.24   3  25    -15.59    -11.50    375.25     619  0
+    1291    1720     -19      11    1888   71.53   3  28    -16.45    -11.00    391.75     630  0
+    1292    1902     -21       8    1853   71.61   2  24    -18.19     -8.00    394.75     686  0
+    1293    1905     -21       7      49   71.48   2  25    -18.19     -7.00    379.75     689  0
+    1294    1908     -21       6    1859   71.52   2  25    -18.19     -6.00    366.75     692  0
+    1295    1926     -21       5    1273   71.16   2  29    -18.19     -5.00    355.75     708  0
+    1296    1923     -21       4     966   71.16   2  28    -18.19     -4.00    346.75     705  0
+    1297    1920     -21       3    1251   71.13   2  28    -18.19     -3.00    339.75     702  0
+    1298    1936     -21       2    1310   71.50   2  31    -18.19     -2.00    334.75     717  0
+    1299    1933     -21       1     103   71.50   2  30    -18.19     -1.00    331.75     714  0
+    1300    1930     -21       0    1809   71.50   2  30    -18.19      0.00    330.75     711  0
+    1301    2016     -21      -1     204   71.51   5   3    -18.19      1.00    331.75     735  0
+    1302    2013     -21      -2     715   71.51   5   2    -18.19      2.00    334.75     732  0
+    1303    2010     -21      -3      65   71.50   5   2    -18.19      3.00    339.75     729  0
+    1304    2006     -21      -4     319   71.18   5   1    -18.19      4.00    346.75     726  0
+    1305    2003     -21      -5     973   71.18   5   0    -18.19      5.00    355.75     723  0
+    1306    2000     -21      -6     114   71.17   5   0    -18.19      6.00    366.75     720  0
+    1307    2131     -21      -7     451   71.34   5  14    -18.19      7.00    379.75     784  0
+    1308    2133     -21      -8    1058   71.35   5  14    -18.19      8.00    394.75     786  0
+    1309    2113     -17     -13    1316   71.63   5  10    -14.72     13.00    385.75     768  0
+    1310    2117     -16     -13    1254   71.61   5  11    -13.86     13.50    374.25     772  0
+    1311    2214     -15     -14    1266   71.58   5  19    -12.99     14.00    364.75     805  0
+    1312    2215     -14     -14    1660   71.58   5  19    -12.12     14.50    357.25     806  0
+    1313    2217     -13     -15    1252   71.58   5  19    -11.26     15.00    351.75     808  0
+    1314    2417     -12     -15    1062   70.82   6   3    -10.39     15.50    348.25     880  0
+    1315    2414     -11     -16     313   70.81   6   3     -9.53     16.00    346.75     877  0
+    1316    2413     -10     -16     928   70.78   6   2     -8.66     16.50    347.25     876  0
+    1317    2403      -9     -17     495   71.05   6   0     -7.79     17.00    349.75     867  0
+    1318    2405      -8     -17     818   71.06   6   1     -6.93     17.50    354.25     869  0
+    1319    2407      -7     -18    1386   71.06   6   1     -6.06     18.00    360.75     871  0
+    1320    2605      -6     -18     894   70.86   6  17     -5.20     18.50    369.25     941  0
+    1321    2607      -5     -19     152   70.87   6  17     -4.33     19.00    379.75     943  0
+    1322    2608      -4     -19     482   70.87   6  17     -3.46     19.50    392.25     944  0
+    1323    3208       4     -19    1389   70.94   9  17      3.46     19.50    392.25    1160  0
+    1324    3207       5     -19    1191   70.94   9  17      4.33     19.00    379.75    1159  0
+    1325    3206       6     -18     882   70.94   9  17      5.20     18.50    369.25    1158  0
+    1326    3306       7     -18     418   71.09   9  25      6.06     18.00    360.75    1194  0
+    1327    3304       8     -17     836   71.09   9  25      6.93     17.50    354.25    1192  0
+    1328    3303       9     -17     332   71.09   9  24      7.79     17.00    349.75    1191  0
+    1329    3503      10     -16     895   70.83   8   8      8.66     16.50    347.25    1263  0
+    1330    3505      11     -16    1173   70.83   8   9      9.53     16.00    346.75    1265  0
+    1331    3504      12     -15    1094   70.83   8   9     10.39     15.50    348.25    1264  0
+    1332    3606      13     -15    1755   71.59   8  17     11.26     15.00    351.75    1302  0
+    1333    3605      14     -14    1746   71.59   8  17     12.12     14.50    357.25    1301  0
+    1334    3604      15     -14    1308   71.59   8  17     12.99     14.00    364.75    1300  0
+    1335    3708      16     -13     970   70.74   8  25     13.86     13.50    374.25    1340  0
+    1336    3703      17     -13     897   70.67   8  24     14.72     13.00    385.75    1335  0
+    1337    3903      21      -8     212   71.38   7  24     18.19      8.00    394.75    1407  0
+    1338    3901      21      -7     452   71.37   7  24     18.19      7.00    379.75    1405  0
+    1339    3920      21      -6    1004   71.20   7  28     18.19      6.00    366.75    1422  0
+    1340    3923      21      -5     317   71.20   7  28     18.19      5.00    355.75    1425  0
+    1341    3926      21      -4    1210   71.19   7  29     18.19      4.00    346.75    1428  0
+    1342    3930      21      -3     724   71.51   7  30     18.19      3.00    339.75    1431  0
+    1343    3933      21      -2     322   71.52   7  30     18.19      2.00    334.75    1434  0
+    1344    3936      21      -1    1849   71.52   7  31     18.19      1.00    331.75    1437  0
+    1345      10      21       0    1819   71.49   0   2     18.19      0.00    330.75       9  0
+    1346      13      21       1    1935   71.49   0   2     18.19     -1.00    331.75      12  0
+    1347      16      21       2      23   71.49   0   3     18.19     -2.00    334.75      15  0
+    1348       0      21       3     414   71.10   0   0     18.19     -3.00    339.75       0  0
+    1349       3      21       4     417   71.11   0   0     18.19     -4.00    346.75       3  0
+    1350       6      21       5     326   71.12   0   1     18.19     -5.00    355.75       6  0
+    1351     138      21       6     184   71.46   0  15     18.19     -6.00    366.75      71  0
+    1352     135      21       7      86   71.44   0  15     18.19     -7.00    379.75      68  0
+    1353     133      21       8    1301   71.41   0  14     18.19     -8.00    394.75      66  0
+    1354     114      17      13     292   71.22   0  11     14.72    -13.00    385.75      49  0
+    1355     111      16      14     209   71.20   0  10     13.86    -13.50    374.25      46  0
+    1356     110      15      14     125   71.20   0  10     12.99    -14.00    364.75      45  0
+    1357     216      14      15    1118   71.25   0  19     12.12    -14.50    357.25      87  0
+    1358     212      13      15     252   71.24   0  18     11.26    -15.00    351.75      83  0
+    1359     211      12      16    1306   71.24   0  18     10.39    -15.50    348.25      82  0
+    1360     415      11      16    2293   70.96   1   3      9.53    -16.00    346.75     158  0
+    1361     413      10      17     926   70.95   1   2      8.66    -16.50    347.25     156  0
+    1362     405       9      17    1307   71.55   1   1      7.79    -17.00    349.75     149  0
+    1363     403       8      18    1750   71.55   1   0      6.93    -17.50    354.25     147  0
+    1364     402       7      18     255   71.54   1   0      6.06    -18.00    360.75     146  0
+    1365     400       6      19    1241   71.54   1   0      5.20    -18.50    369.25     144  0
+    1366     604       5      19       6   71.31   1  17      4.33    -19.00    379.75     220  0
+    1367     601       4      20     371   71.29   1  16      3.46    -19.50    392.25     217  0
+    1368    1200      -4      20     254   71.46   4  16     -3.46    -19.50    392.25     432  0
+    1369    1204      -5      19    1372   71.46   4  17     -4.33    -19.00    379.75     436  0
+    1370    1301      -6      19      36   71.55   4  24     -5.20    -18.50    369.25     469  0
+    1371    1302      -7      18      55   71.55   4  24     -6.06    -18.00    360.75     470  0
+    1372    1303      -8      18      57   71.55   4  24     -6.93    -17.50    354.25     471  0
+    1373    1304      -9      17     256   71.56   4  25     -7.79    -17.00    349.75     472  0
+    1374    1503     -10      17     805   71.00   3   8     -8.66    -16.50    347.25     543  0
+    1375    1505     -11      16    1387   71.02   3   9     -9.53    -16.00    346.75     545  0
+    1376    1601     -12      16     277   71.27   3  16    -10.39    -15.50    348.25     577  0
+    1377    1602     -13      15     294   71.27   3  16    -11.26    -15.00    351.75     578  0
+    1378    1606     -14      15       4   71.26   3  17    -12.12    -14.50    357.25     582  0
+    1379    1700     -15      14    1123   71.23   3  24    -12.99    -14.00    364.75     612  0
+    1380    1701     -16      14     990   71.23   3  24    -13.86    -13.50    374.25     613  0
+    1381    1704     -17      13     282   71.23   3  25    -14.72    -13.00    385.75     616  0
+    1382    1928     -22       6    1952   71.16   2  29    -19.05     -5.50    393.25     710  0
+    1383    1925     -22       5    1044   71.16   2  29    -19.05     -4.50    383.25     707  0
+    1384    1922     -22       4     826   71.15   2  28    -19.05     -3.50    375.25     704  0
+    1385    1938     -22       3      48   71.50   2  31    -19.05     -2.50    369.25     719  0
+    1386    1935     -22       2     224   71.50   2  31    -19.05     -1.50    365.25     716  0
+    1387    1932     -22       1      90   71.50   2  30    -19.05     -0.50    363.25     713  0
+    1388    2018     -22       0     107   71.51   5   3    -19.05      0.50    363.25     737  0
+    1389    2015     -22      -1    1921   71.51   5   3    -19.05      1.50    365.25     734  0
+    1390    2012     -22      -2     201   71.51   5   2    -19.05      2.50    369.25     731  0
+    1391    2008     -22      -3    1112   71.18   5   1    -19.05      3.50    375.25     728  0
+    1392    2005     -22      -4     250   71.18   5   1    -19.05      4.50    383.25     725  0
+    1393    2002     -22      -5     586   71.17   5   0    -19.05      5.50    393.25     722  0
+    1394    2216     -15     -15    1659   71.58   5  19    -12.99     15.00    393.75     807  0
+    1395    2218     -14     -15    1675   71.58   5  19    -12.12     15.50    387.25     809  0
+    1396    2415     -13     -16     903   70.82   6   3    -11.26     16.00    382.75     878  0
+    1397    2416     -12     -16    1109   70.82   6   3    -10.39     16.50    380.25     879  0
+    1398    2418     -11     -17     512   70.82   6   3     -9.53     17.00    379.75     881  0
+    1399    2404     -10     -17     813   71.06   6   1     -8.66     17.50    381.25     868  1
+    1400    2406      -9     -18    1128   71.06   6   1     -7.79     18.00    384.75     870  0
+    1401    2408      -8     -18     823   71.06   6   1     -6.93     18.50    390.25     872  0
+    1402    3308       8     -18     302   71.10   9  25      6.93     18.50    390.25    1196  0
+    1403    3307       9     -18     412   71.10   9  25      7.79     18.00    384.75    1195  0
+    1404    3305      10     -17     880   71.09   9  25      8.66     17.50    381.25    1193  0
+    1405    3508      11     -17     891   70.84   8   9      9.53     17.00    379.75    1268  0
+    1406    3507      12     -16     472   70.84   8   9     10.39     16.50    380.25    1267  0
+    1407    3506      13     -16     205   70.84   8   9     11.26     16.00    382.75    1266  0
+    1408    3608      14     -15    1838   71.59   8  17     12.12     15.50    387.25    1304  0
+    1409    3607      15     -15    1763   71.59   8  17     12.99     15.00    393.75    1303  0
+    1410    3921      22      -5     959   71.20   7  28     19.05      5.50    393.25    1423  0
+    1411    3924      22      -4     962   71.19   7  29     19.05      4.50    383.25    1426  0
+    1412    3927      22      -3     243   71.19   7  29     19.05      3.50    375.25    1429  0
+    1413    3931      22      -2    1844   71.52   7  30     19.05      2.50    369.25    1432  0
+    1414    3934      22      -1     399   71.52   7  31     19.05      1.50    365.25    1435  0
+    1415    3937      22       0    1749   71.52   7  31     19.05      0.50    363.25    1438  0
+    1416      11      22       1    1989   71.49   0   2     19.05     -0.50    363.25      10  0
+    1417      14      22       2     236   71.49   0   3     19.05     -1.50    365.25      13  0
+    1418      17      22       3     707   71.50   0   3     19.05     -2.50    369.25      16  0
+    1419       1      22       4     415   71.11   0   0     19.05     -3.50    375.25       1  0
+    1420       4      22       5    1682   71.12   0   1     19.05     -4.50    383.25       4  0
+    1421       7      22       6     639   71.12   0   1     19.05     -5.50    393.25       7  0
+    1422     215      15      15     989   71.25   0  19     12.99    -15.00    393.75      86  0
+    1423     214      14      16    1221   71.25   0  19     12.12    -15.50    387.25      85  0
+    1424     210      13      16     993   71.24   0  18     11.26    -16.00    382.75      81  0
+    1425     414      12      17     427   70.96   1   3     10.39    -16.50    380.25     157  0
+    1426     412      11      17     311   70.95   1   2      9.53    -17.00    379.75     155  0
+    1427     411      10      18    2290   70.95   1   2      8.66    -17.50    381.25     154  0
+    1428     410       9      18     175   70.95   1   2      7.79    -18.00    384.75     153  0
+    1429     401       8      19      40   71.54   1   0      6.93    -18.50    390.25     145  0
+    1430    1300      -8      19    1760   71.55   4  24     -6.93    -18.50    390.25     468  0
+    1431    1500      -9      18     792   70.99   3   8     -7.79    -18.00    384.75     540  0
+    1432    1501     -10      18     207   70.99   3   8     -8.66    -17.50    381.25     541  0
+    1433    1502     -11      17     347   71.00   3   8     -9.53    -17.00    379.75     542  0
+    1434    1504     -12      17    1172   71.02   3   9    -10.39    -16.50    380.25     544  0
+    1435    1600     -13      16     283   71.27   3  16    -11.26    -16.00    382.75     576  0
+    1436    1604     -14      16    1111   71.25   3  17    -12.12    -15.50    387.25     580  0
+    1437    1605     -15      15     122   71.25   3  17    -12.99    -15.00    393.75     581  0
+    1438     137      22       7    1985   71.45   0  15     19.05     -6.50    405.25      70  0
+    1439    1906     -22       7     235   71.49   2  25    -19.05     -6.50    405.25     690  0
Index: /fact/tools/pyscripts/sandbox/vogler/LP_analysis_from_Patrick__example.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/LP_analysis_from_Patrick__example.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/LP_analysis_from_Patrick__example.py	(revision 14173)
@@ -0,0 +1,98 @@
+#!/usr/bin/python -tti
+#
+# Lightpulser Analysis Test Script
+# Written by DN but
+# but based on an idea from PV 
+# This script is intended for testing purposes, 
+# and has no real purpose so far....
+#
+print 'importing libraries ... takes a sec .. sorry'
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+# 2012 01 25
+#datafilename = '/fact/raw/2012/01/25/20120125_042.fits.gz'     # light-pulser-ext
+#  = '/fact/raw/2012/01/25/20120125_095.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_094.fits.gz'     # pedestal
+#  = '/fact/raw/2012/01/25/20120125_093.fits.gz'     # pedestal
+#datafilename = '/fact/raw/2012/01/25/20120125_075.fits.gz'
+#calibfilename = '/fact/raw/2012/01/25/20120125_088.drs.fits.gz'
+
+
+from pyfact import RawData
+import numpy as np
+import sys
+from plotters import Plotter
+from plotters import CamPlotter
+
+print 'creating RawData object...'
+run = RawData(datafilename, calibfilename, return_dict=True)
+
+print "... looping..."
+print ' over ', run.nevents, 'events  ... please wait and stay calm :-)'
+
+# create variables as 'None' so inside the loop the variables can be created 
+# with the right shape
+data_average = None
+extracted_average = None
+
+for event in run:
+    data = event['acal_data'] # this data is already in the shape number_of_pixel x ROI
+
+    # create an array to store the 'average event', the shape derived from the shape of the data
+    if data_average == None:
+        data_average = np.zeros( data.shape )
+    data_average += data
+
+
+    # A first test of Adrians idea of primitive signal extractor
+    # signal and background
+    
+    # axis=1 means, do not sum over all, but only over the slices, the output is a numpy array with len=numpix
+    extracted_signal = data[ : , 90:100 ].sum( axis=1 )  
+    
+    # background subtraction
+    extracted_signal -= data[ : , 15:25 ].sum( axis=1 )
+
+    if extracted_average == None:
+        extracted_average = np.zeros( extracted_signal.shape )
+    extracted_average += extracted_signal
+
+print "Looped ... "
+
+# After the loop we should divide 
+#   the data_average and 
+#   the extracted_average
+# by the number of events
+data_average /= run.nevents
+extracted_average /= 10 * run.nevents  # the 10 is hardcoded here ... this is bad coding ... but it works :-)
+
+# I guess data_average_run was intended to contain the mean over all pixel
+# the name is a bit strange ...
+# axis=0 means, to calculate the mean over all pixel.
+# so outcome is a 1D array of length = ROI
+data_average_run = data_average.mean( axis=0 )
+
+myplotter = Plotter('this is myplotter', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+mycamplotter = CamPlotter('this is mycamplotter',  vmax=350)  # for Lightpulser data
+#mycamplotter = CamPlotter('titel of the plot',  map_file_path = '../map_dn.txt', vmin=-1.2, vmax=1.2)    # for pedestal data
+
+myplotter( data_average[22], 'pix 22, average' )
+mycamplotter( extracted_average )
+
+print 
+print 'the script was started in "interactive mode" by using the cmdline option -tti in the first line of the script'
+print 'you have still all the variables from the script available here and can go on testing interactively....'
+print 
+print 'eg type:'
+print " p = Plotter('test')"
+print " p(data_average_run) "
+print 
+print ' the RawData instance called run, was not yet deleted, since in interactive mode this makes no sense ... you might still need it :-)'
Index: /fact/tools/pyscripts/sandbox/vogler/LP_hist_1.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/LP_hist_1.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/LP_hist_1.py	(revision 14173)
@@ -0,0 +1,172 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+# from ROOT import  TCanvas, TH1F
+
+
+c1 = TCanvas( 'c1', 'Example', 200, 10, 700, 500 )
+hpx = TH1F( 'hpx', 'px', 500,-50, 450 )
+
+
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+#calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/06/01/20120601_013.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+datafilename = '/fact/raw/2012/06/01/20120601_017.fits.gz'          # NROI 300, 5 minutes physics data with
+                                                                    # interleaved LP_ext
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+print "Array event created"
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+print "Array run_average created"
+extracted_average = np.zeros(numpix)
+print "Array extracted_average created "
+data_average_run = np.zeros(numroi)
+print "Arrays created "
+
+
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if ((caltest.event_triggertype > 256) and (caltest.event_triggertype < 512)):  #ext LP event
+
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+
+        num_LP_ev = num_LP_ev + 1
+
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+
+        run_average += event
+
+        # A first test of Adrians idea of primitive signal extractor
+        # signal and background
+        extracted_signal = np.zeros(numpix)
+        for signalslice in range(90, 100):
+            extracted_signal += event[0:(numpix), signalslice]
+        # background subtraction
+        for backgroundslice in range(15, 25):
+            extracted_signal -= event[0:(numpix), backgroundslice]
+        extracted_average += extracted_signal
+
+
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print
+
+
+
+
+for k in range (0, (numpix) ):
+   px = gRandom.Gaus()
+   hpx.Fill((extracted_average[k] / (10 * num_LP_ev)) )
+
+hpx.Draw()
+c1.Update()
+
+
+#####################################################################################################################
+print "creating plotters ..."
+
+#make a Plotter class ... this is an easy way for plotting ... but there are 
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+# make a CamPlotter class
+mycamplotter2 = CamPlotter('titel of the plot',  map_file_path = 'map_dn.txt', vmin=0, vmax=400)    # for pedestal data
+
+print "Plotters created "
+###################################################################################################################
+
+
+#myplotter((run_average[22]) / numevents, 'pix 22, average' )
+
+myplotter2( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+
+#mycamplotter( data[0:1443, 100] )    # plot slice 100 of all pixel
+
+
+mycamplotter2( extracted_average / (10 * num_LP_ev) )  # plot the extracted pedestal of all pixel
+
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
Index: /fact/tools/pyscripts/sandbox/vogler/LP_template.txt
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/LP_template.txt	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/LP_template.txt	(revision 14173)
@@ -0,0 +1,308 @@
+This file contains a template of the Lightpulser pulse, i.e. an average of one file. 
+data file: /fact/raw/2012/06/01/20120601_017.fits.gz
+DRS calib file: /fact/raw/2012/06/01/20120601_013.drs.fits.gz
+Number of Lightpulser events in this run: 293
+ROI: 300
+
+slice   signal [mV] 
+
+0   81.101632197
+1   383.325144338
+2   357.713120203
+3   394.916220983
+4   143.128366817
+5   137.196814364
+6   105.297741477
+7   141.627024467
+8   80.8449242273
+9   101.962916389
+10   93.6441335808
+11   98.0411556422
+12   90.2424330952
+13   75.0784559003
+14   81.6851040112
+15   91.6502856553
+16   87.5224937258
+17   91.0042538161
+18   89.1140772343
+19   93.8742736408
+20   92.4654998791
+21   101.82586041
+22   101.736631963
+23   110.39916842
+24   111.909732034
+25   119.11926512
+26   80.4046888743
+27   -2.7431122731
+28   -29.7984030588
+29   0.856187815618
+30   37.1271060785
+31   96.7748751841
+32   155.735651326
+33   241.855004426
+34   334.756192632
+35   454.738176723
+36   591.588480499
+37   761.494556053
+38   933.975773801
+39   1147.30013637
+40   1391.92246312
+41   1678.83244736
+42   1991.47671058
+43   2353.87418921
+44   2753.27272526
+45   3211.28649261
+46   3709.32450254
+47   4265.44674564
+48   4873.70943594
+49   5551.17763403
+50   6307.50003579
+51   7154.47506594
+52   8098.90054847
+53   9157.47004315
+54   10319.0137762
+55   11597.6466667
+56   12987.3950516
+57   14485.0232636
+58   16074.2403552
+59   17732.159852
+60   19442.8432997
+61   21181.8018293
+62   22917.0488469
+63   24630.0986412
+64   26294.5951739
+65   27895.9334901
+66   29407.6908184
+67   30829.7230839
+68   32153.4769299
+69   33384.0018483
+70   34499.9363489
+71   35518.9679421
+72   36440.4488046
+73   37278.5640646
+74   38022.3447248
+75   38699.4724346
+76   39302.434454
+77   39850.7621451
+78   40321.1665026
+79   40745.9382326
+80   41103.0306918
+81   41419.9631698
+82   41663.2905019
+83   41877.1632244
+84   42037.0739798
+85   42171.8827262
+86   42252.16726
+87   42310.6077799
+88   42317.7283328
+89   42310.2628422
+90   42253.7694358
+91   42180.4920231
+92   42062.761865
+93   41941.9292585
+94   41777.846564
+95   41607.671869
+96   41394.5926498
+97   41182.2588396
+98   40935.7534894
+99   40698.070615
+100   40421.779388
+101   40150.1133575
+102   39842.0284722
+103   39542.6757412
+104   39215.3842261
+105   38903.126799
+106   38549.4045511
+107   38215.9655798
+108   37858.4205894
+109   37509.1170803
+110   37131.5515163
+111   36766.6798046
+112   36383.4669847
+113   36019.65144
+114   35626.8145093
+115   35252.0208236
+116   34857.6910102
+117   34484.2523118
+118   34088.0614875
+119   33708.5069796
+120   33312.0821031
+121   32934.6104121
+122   32536.9463987
+123   32164.0093326
+124   31762.805782
+125   31386.1820634
+126   30986.321655
+127   30612.1651591
+128   30217.8850867
+129   29847.774615
+130   29454.1423145
+131   29079.7529676
+132   28683.4121889
+133   28313.1562067
+134   27917.0349449
+135   27542.3373445
+136   27145.2645894
+137   26765.8143602
+138   26363.0471276
+139   25984.2696708
+140   25584.0925703
+141   25209.7089999
+142   24811.0368519
+143   24438.0717551
+144   24029.6027894
+145   23652.0506426
+146   23252.500942
+147   22872.6098969
+148   22478.2495636
+149   22117.8787105
+150   21725.1784019
+151   21354.5105311
+152   20964.682166
+153   20611.6612844
+154   20230.4277832
+155   19863.3634852
+156   19486.5070829
+157   19144.7183524
+158   18772.8203414
+159   18424.3710728
+160   18061.0586557
+161   17732.5430386
+162   17382.0868139
+163   17058.5198817
+164   16718.5702555
+165   16412.2086668
+166   16082.90858
+167   15775.6451763
+168   15454.874117
+169   15165.7221609
+170   14850.0458172
+171   14561.8078228
+172   14261.368374
+173   13992.5773664
+174   13705.1053982
+175   13448.5506312
+176   13165.6329093
+177   12911.165729
+178   12635.5485405
+179   12387.040308
+180   12117.1197126
+181   11883.5105668
+182   11629.3569402
+183   11398.1952972
+184   11147.3186792
+185   10930.2983677
+186   10692.2238144
+187   10480.764524
+188   10252.8274153
+189   10057.1118094
+190   9839.08813238
+191   9649.65743486
+192   9437.41380726
+193   9260.22140833
+194   9060.62538749
+195   8891.08939523
+196   8696.52583666
+197   8539.31147739
+198   8360.90237921
+199   8202.52269379
+200   8027.90446293
+201   7878.35685459
+202   7704.60078847
+203   7560.94905917
+204   7400.32523078
+205   7276.38435818
+206   7132.73908773
+207   7006.32421074
+208   6842.83760653
+209   6720.98246075
+210   6573.50726798
+211   6451.98115469
+212   6313.14332414
+213   6208.85643044
+214   6080.21032619
+215   5975.20149524
+216   5849.89508033
+217   5755.81667914
+218   5635.20795188
+219   5539.91994741
+220   5423.56428732
+221   5338.00908529
+222   5225.57706232
+223   5143.60182654
+224   5043.50931541
+225   4966.90573593
+226   4858.13887149
+227   4779.99201046
+228   4681.1490984
+229   4609.68790618
+230   4509.51661075
+231   4442.74163818
+232   4351.04858319
+233   4283.38892408
+234   4191.32124401
+235   4137.44141254
+236   4058.83064003
+237   3998.6557804
+238   3909.92558026
+239   3857.27546398
+240   3784.03528943
+241   3735.45218415
+242   3652.91150249
+243   3603.6755885
+244   3530.39465217
+245   3483.64679586
+246   3412.27032819
+247   3377.60298026
+248   3310.33569245
+249   3263.56055281
+250   3186.88566086
+251   3142.45632257
+252   3080.54085686
+253   3046.47919274
+254   2981.07620858
+255   2932.11703888
+256   2860.99996372
+257   2831.54897856
+258   2772.74030313
+259   2742.62253964
+260   2705.48431585
+261   2718.52181788
+262   2727.90290194
+263   2801.81464017
+264   2885.12987586
+265   3042.99072677
+266   3253.53889406
+267   3615.28315169
+268   4098.98703674
+269   4705.71902971
+270   5342.44598071
+271   5959.79341712
+272   6423.51616019
+273   6753.20940282
+274   6915.40343452
+275   7003.23203771
+276   7004.0937727
+277   6989.29198258
+278   6904.38616069
+279   6801.41298224
+280   6635.20414273
+281   6465.27408055
+282   6203.44236301
+283   5855.3468345
+284   5316.36497906
+285   4681.65200646
+286   3971.2584195
+287   3334.28109635
+288   2761.27966478
+289   2365.08415201
+290   2078.16288875
+291   1921.21704581
+292   1791.57680671
+293   1742.26592751
+294   1661.4615245
+295   1616.57225639
+296   1569.61150449
+297   1550.44070535
+298   1507.42455437
+299   1497.75209912
Index: /fact/tools/pyscripts/sandbox/vogler/LP_template_1.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/LP_template_1.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/LP_template_1.py	(revision 14173)
@@ -0,0 +1,177 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+# c1 = TCanvas( 'c1', 'Example', 200, 10, 700, 500 )
+# hpx = TH1F( 'hpx', 'px', 500,-50, 450 )
+
+
+
+outfile = open(r'LP_template.txt','w')
+
+
+
+#############
+#
+    # write to the file
+#    outfile.write('The first number is: ' + str(num0) + '\n')
+#    outfile.write('The second number is: ' + str(num1) + '\n')
+#    outfile.write('The third number is: ' + str(num2) + '\n')
+#    outfile.write('The last number is: ' + str(num3) + '\n')
+#
+#    outfile.write('The sum is: ' + str(num0 + num1 + num2 + num3) + '\n')
+#    outfile.write('The product is: ' + str(num0 * num1 * num2 * num3) + '\n')
+
+    # close the file
+
+################
+
+
+
+
+
+
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+#calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/06/01/20120601_013.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+datafilename = '/fact/raw/2012/06/01/20120601_017.fits.gz'          # NROI 300, 5 minutes physics data with
+                                                                    # interleaved LP_ext
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+#from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+
+data_average_run = np.zeros(numroi)
+
+
+
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if ((caltest.event_triggertype > 256) and (caltest.event_triggertype < 512)):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event
+
+    if(num_LP_ev==50):    # just for testing, not to read the whole file
+        break
+
+
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+
+    # if (()and()and()and()and()and())
+
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print
+
+
+#####################################################################################################################
+#make a Plotter class ... this is an easy way for plotting ... but there are
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+###################################################################################################################
+
+myplotter2( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+
+
+outfile.write('This file contains a template of the Lightpulser pulse, i.e. an average of one file. \n')
+outfile.write('data file: ' + str(datafilename) + '\n')
+outfile.write('DRS calib file: ' + str(calibfilename) + '\n')
+outfile.write('Number of Lightpulser events in this run: ' + str(num_LP_ev) + '\n')
+outfile.write('ROI: ' + str(numroi) + '\n')
+outfile.write('\n')
+outfile.write('slice   signal [mV] \n')
+outfile.write('\n')
+
+
+for k in range(0,(numroi)):
+    outfile.write( str(k) + '   ' + str((data_average_run[k])/(10 * num_LP_ev)) +  '\n')
+
+outfile.close
+
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
Index: /fact/tools/pyscripts/sandbox/vogler/LP_template_1_time.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/LP_template_1_time.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/LP_template_1_time.py	(revision 14173)
@@ -0,0 +1,182 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+import time
+
+# c1 = TCanvas( 'c1', 'Example', 200, 10, 700, 500 )
+# hpx = TH1F( 'hpx', 'px', 500,-50, 450 )
+
+
+
+outfile = open(r'LP_template.txt','w')
+
+
+
+#############
+#
+    # write to the file
+#    outfile.write('The first number is: ' + str(num0) + '\n')
+#    outfile.write('The second number is: ' + str(num1) + '\n')
+#    outfile.write('The third number is: ' + str(num2) + '\n')
+#    outfile.write('The last number is: ' + str(num3) + '\n')
+#
+#    outfile.write('The sum is: ' + str(num0 + num1 + num2 + num3) + '\n')
+#    outfile.write('The product is: ' + str(num0 * num1 * num2 * num3) + '\n')
+
+    # close the file
+
+################
+
+
+
+
+
+
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+#calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/06/01/20120601_013.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+datafilename = '/fact/raw/2012/06/01/20120601_017.fits.gz'          # NROI 300, 5 minutes physics data with
+                                                                    # interleaved LP_ext
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+#from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+
+data_average_run = np.zeros(numroi)
+
+
+
+time_start = time.clock()
+print "start loop", time_start
+
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if ((caltest.event_triggertype > 256) and (caltest.event_triggertype < 512)):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event
+
+   # if(num_LP_ev==50):    # just for testing, not to read the whole file
+    #    break
+
+time_stop = time.clock()
+print "loop finished", time_stop
+
+print "Looped ... "
+
+for i in range (0, (numpix - 1) ):
+
+    # if (()and()and()and()and()and())
+
+    data_average_run += run_average[i]
+
+
+print "Looped second loop "
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print
+
+
+#####################################################################################################################
+#make a Plotter class ... this is an easy way for plotting ... but there are
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+###################################################################################################################
+
+myplotter2( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+
+
+outfile.write('This file contains a template of the Lightpulser pulse, i.e. an average of one file. \n')
+outfile.write('data file: ' + str(datafilename) + '\n')
+outfile.write('DRS calib file: ' + str(calibfilename) + '\n')
+outfile.write('Number of Lightpulser events in this run: ' + str(num_LP_ev) + '\n')
+outfile.write('ROI: ' + str(numroi) + '\n')
+outfile.write('\n')
+outfile.write('slice   signal [mV] \n')
+outfile.write('\n')
+
+
+for k in range(0,(numroi)):
+    outfile.write( str(k) + '   ' + str((data_average_run[k])/(10 * num_LP_ev)) +  '\n')
+
+outfile.close
+
+print
+print "The loop over the whole file took",(time_stop-time_start),"seconds to complete."
+print "processing rate: ",(numevents/(time_stop-time_start)),"events per second"
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
Index: /fact/tools/pyscripts/sandbox/vogler/LP_template_2.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/LP_template_2.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/LP_template_2.py	(revision 14173)
@@ -0,0 +1,204 @@
+#!/usr/bin/python -tt
+# ********************************
+# Test script for the CalFits class
+# 
+# written by Thomas Kraehenbuehl, ETH Zurich
+# tpk@phys.ethz.ch, +41 44 633 3973
+# April 2012
+# ********************************
+#
+# modified and adapted py Patrick Vogler
+#
+# ################################
+from ROOT import gSystem
+gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+from ROOT import *
+
+
+
+outfile = open(r'LP_template.txt','w')   # file where the template is written to
+
+infile = open(r'FACTmapV6a.txt','r')   # read in the FACT mapping file
+
+
+##############################################
+
+# Test: read from a file
+def file_read():
+    # open file test1.txt
+    infile = open('/home/pavogler/Python/test1.txt','r') 
+
+    # read lines from the file
+    line1 = infile.readline()
+    line2 = infile.readline()
+    line3 = infile.readline()
+
+    # strip the \n from each string
+    line1 = line1.rstrip('\n')
+    line2 = line2.rstrip('\n')
+    line3 = line3.rstrip('\n')
+
+    # close the file
+    infile.close
+
+  
+
+
+    text = 'base sample test'
+    text.split()[0][0]
+    >>> b
+
+
+############################################
+
+
+
+
+#define filenames
+
+# 2012 04 17
+#calibfilename = '/fact/raw/2012/04/17/20120417_003.drs.fits.gz'    # NROI 300, pedestal
+#calibfilename = '/fact/raw/2012/04/17/20120417_033.drs.fits.gz'    # NROI 300, pedestal
+calibfilename = '/fact/raw/2012/06/01/20120601_013.drs.fits.gz'    # NROI 300, pedestal
+
+#datafilename = '/fact/raw/2012/04/17/20120417_015.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_021.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_036.fits.gz'         # NROI 300, LP_ext
+#datafilename = '/fact/raw/2012/04/17/20120417_042.fits.gz'         # NROI 300, LP_ext
+
+datafilename = '/fact/raw/2012/06/01/20120601_017.fits.gz'          # NROI 300, 5 minutes physics data with
+                                                                    # interleaved LP_ext
+
+import numpy as np
+from scipy import weave
+from scipy.weave import converters
+
+from plotters import Plotter         # ADC display
+#from plotters import CamPlotter      # event display
+#from drs_spikes import DRSSpikes
+
+
+print "Testing object creation: "
+caltest = CalFactFits(datafilename, calibfilename)
+npcalevent  = np.empty( caltest.npix * caltest.nroi, np.float64) #.reshape(caltest.npix ,caltest.nroi)
+caltest.SetNpcaldataPtr(npcalevent)
+
+
+numroi = np.int64(caltest.nroi)
+numpix = np.int64(caltest.npix)
+numevents = np.int64(caltest.nevents)
+
+num_LP_ev = 0   # number of ext Lightpulser events
+num_ped = 0     # number of pedestal events
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print
+
+
+event = np.zeros((numpix, numroi))  # create an array to store an event in the format numpix * numroi (2-dim array)
+
+run_average = np.zeros((numpix, numroi))   # create an array to store the "average event" of a run
+
+data_average_run = np.zeros(numroi)
+
+
+
+
+
+print "... looping..."
+
+while caltest.GetCalEvent():    # Loop  ueber alle events
+    # print npcalevent  ## Daten, Array   1 dim Laenge caltest.npix * caltest.nroi   1 Event
+
+
+    if ((caltest.event_triggertype > 256) and (caltest.event_triggertype < 512)):  #ext LP event
+        print 'event id:', caltest.event_id, '  Trigger Type:', caltest.event_triggertype
+        num_LP_ev = num_LP_ev + 1
+        event = np.reshape(npcalevent, (numpix, -1))     # bring the event the shape numpix * numroi (2-dim array)
+        run_average += event
+
+    if(num_LP_ev==10):    # just for testing, not to read the whole file
+        break
+
+
+
+
+
+
+
+
+
+headerline = infile.readline()
+while not '#' in headerline:
+    headerline = infile.readline()
+
+
+
+
+
+
+
+
+
+
+
+
+
+for i in range (0, (numpix - 1) ):
+    # if (()and()and()and()and()and())
+    data_average_run += run_average[i]
+
+
+
+
+
+del caltest
+print "caltest deleted "
+
+
+
+print "Common variables run information: "
+print "ROI: ", numroi
+print "#Pix: ", numpix
+print "Number of events: ", numevents
+print "Number of external Lightpulser events: ", num_LP_ev
+print
+
+
+#####################################################################################################################
+#make a Plotter class ... this is an easy way for plotting ... but there are
+# many was to plot data ... without this class ... it was written for convenience, but there is no strong reason to use it...
+#myplotter = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+myplotter2 = Plotter('titel of the plot', xlabel='time in slices', ylabel='amplitude calibrated data ... in mV')
+
+###################################################################################################################
+
+myplotter2( data_average_run / (numpix * num_LP_ev) , 'average signal (all pixel) over the whole run' )
+
+
+
+outfile.write('This file contains a template of the Lightpulser pulse, i.e. an average of one file. \n')
+outfile.write('data file: ' + str(datafilename) + '\n')
+outfile.write('DRS calib file: ' + str(calibfilename) + '\n')
+outfile.write('Number of Lightpulser events in this run: ' + str(num_LP_ev) + '\n')
+outfile.write('ROI: ' + str(numroi) + '\n')
+outfile.write('\n')
+outfile.write('slice   signal [mV] \n')
+outfile.write('\n')
+
+
+for k in range(0,(numroi)):
+    outfile.write( str(k) + '   ' + str((data_average_run[k])/(10 * num_LP_ev)) +  '\n')
+
+outfile.close
+
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
Index: /fact/tools/pyscripts/sandbox/vogler/PyRoot_test1.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/PyRoot_test1.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/PyRoot_test1.py	(revision 14173)
@@ -0,0 +1,43 @@
+# ********************************
+#
+# just a test by Patrick Vogler
+#
+# ################################
+
+#from ROOT import gSystem
+#gSystem.Load("calfactfits_h.so")   # according to new naming scheme
+#from ROOT import *
+
+
+#TH1F *hist1 = new TH1F("name", "Lightpulser amplitudes ", 450, 0, 450);
+#TCanvas *canv = 0;
+
+
+
+
+
+
+from ROOT import gRandom, TCanvas, TH1F
+
+c1 = TCanvas( 'c1', 'Example', 200, 10, 700, 500 )
+hpx = TH1F( 'hpx', 'px', 100, -4, 4 )
+
+for i in xrange( 25000 ):
+   px = gRandom.Gaus()
+   hpx.Fill( px )
+
+hpx.Draw()
+c1.Update()
+
+
+
+
+print " ... histogram drawn ...  "
+
+
+
+
+
+answer = raw_input('type "quit" to quit ')
+while not 'quit' in answer:
+     answer = raw_input('type "quit" to quit ')
Index: /fact/tools/pyscripts/sandbox/vogler/calfits.h
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/calfits.h	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/calfits.h	(revision 14173)
@@ -0,0 +1,189 @@
+//********************************
+//
+// Class Calfits
+// Wrapper class for fits.h or pyfits.h
+// Provides fast access to calibrated events of FACT raw files
+//
+// written by Thomas Kraehenbuehl, ETH Zurich
+// tpk@phys.ethz.ch, +41 44 633 3973
+// April 2012
+//
+//********************************
+//
+// Compilation (root in pyfact directory)
+// root [0] gSystem->Load("/usr/lib64/libz.so");
+// root [1] .L pyfits.h++
+// root [2] .L ../sandbox/kraehenb/calfits.h++
+//
+// Usage in Python:
+// See CalFitsTest.py
+//
+//********************************
+
+//ToDo: shared library creation debuggen
+
+#ifndef CALFITS_H
+#define CALFITS_H
+
+#include <cstdio>
+#include <string>
+
+#ifndef __MARS__
+#include <vector>
+#include <iomanip>
+#include <iostream>
+#define gLog cerr
+#define ___err___ ""
+#define ___all___ ""
+#else
+#include "MLog.h"
+#include "MLogManip.h"
+#define ___err___ err
+#define ___all___ all
+#endif
+
+#ifdef __EXCEPTIONS
+#include <stdexcept>
+#endif
+
+#include "../../pyfact/pyfits.h"
+
+
+class CalFits
+{
+public:
+	//No standard constructor CalFits()!
+	
+	//Direct handlers of the files
+	fits datafile, calibfile; //Class name should be PyFits or better FactPyFits...
+	
+	//Basic file parameters
+	UInt_t calib_nroi, calib_npix;
+	UInt_t calib_blm_size, calib_gm_size, calib_tom_size;
+	UInt_t data_nroi, data_npix, data_ndata;
+	
+	//Common variables
+	UInt_t nroi, npix, nevents;
+	
+	//Calibration variables
+	float* calib_baselinemean;
+	float* calib_gainmean;
+	float* calib_triggeroffsetmean;
+	//Using <vector> instead of arrays makes no visible difference
+	//ToDo: use arrays of size 1440x1024 (x2 for wrap-arounds) and read all variables into those
+	
+	//Event variables
+	UInt_t event_id;
+	UShort_t event_triggertype;
+	int16_t* event_data;
+	int16_t* event_offset;
+	int32_t* event_boardtimes;
+	double* npcaldata;
+	
+	CalFits(const string &datafilename, const string &calibfilename) //Constructor with two filenames
+		: datafile(datafilename),
+			calibfile(calibfilename),
+			npcaldata(NULL)
+	{
+		//Read basic parameters of the two files
+//		std::cout << "...Reading basic file parameters..." << std::endl;
+		calib_nroi = calibfile.GetUInt("NROI");
+		calib_npix = calibfile.GetUInt("NPIX");
+		data_nroi = datafile.GetUInt("NROI");
+		data_npix = datafile.GetUInt("NPIX");
+		data_ndata = datafile.GetN("Data");
+		
+		calib_blm_size = calibfile.GetN("BaselineMean")/calib_npix;
+		calib_gm_size = calibfile.GetN("GainMean")/calib_npix;
+		calib_tom_size = calibfile.GetN("TriggerOffsetMean")/calib_npix;
+		
+//		std::cout << "Column sizes: " << calib_blm_size << " " << calib_gm_size << " " << calib_tom_size << std::endl;
+		
+		//Define the common variables
+		if((calib_nroi==data_nroi)&&(calib_npix==data_npix)&&(data_nroi*data_npix==data_ndata)&&(calib_blm_size==calib_gm_size)&&(calib_tom_size==calib_nroi)) {
+			nroi = data_nroi;
+			npix = data_npix;
+		}
+		else {
+			ostringstream str;
+			str << "Data/calib file error: NROI mismatch, NPIX mismatch, data column size wrong or calib columns mismatch.";
+#ifdef __EXCEPTIONS
+			throw runtime_error(str.str());
+#else
+			gLog << ___err___ << "ERROR - " << str.str() << endl;
+			return;
+#endif
+		}
+		nevents = datafile.GetNumRows();
+		
+		//Read the calibration data
+//		std::cout << "...Reading calibration data..." << std::endl;
+		calib_baselinemean = new float[calibfile.GetN("BaselineMean")];
+		calibfile.SetPtrAddress("BaselineMean", calib_baselinemean, calibfile.GetN("BaselineMean"));
+		calib_gainmean = new float[calibfile.GetN("GainMean")];
+		calibfile.SetPtrAddress("GainMean", calib_gainmean, calibfile.GetN("GainMean"));
+		calib_triggeroffsetmean = new float[calibfile.GetN("TriggerOffsetMean")];
+		calibfile.SetPtrAddress("TriggerOffsetMean", calib_triggeroffsetmean, calibfile.GetN("TriggerOffsetMean"));
+		calibfile.GetRow(0);
+		
+		//Set the event pointers
+//		std::cout << "...Setting event pointers..." << std::endl;
+		datafile.SetRefAddress("EventNum", event_id);
+		datafile.SetRefAddress("TriggerType", event_triggertype);
+		
+		event_data = new int16_t[data_ndata];
+		datafile.SetPtrAddress("Data", event_data, data_ndata);
+		
+		event_offset = new int16_t[datafile.GetN("StartCellData")];
+		datafile.SetPtrAddress("StartCellData", event_offset, datafile.GetN("StartCellData"));
+		
+		event_boardtimes = new int32_t[datafile.GetN("BoardTime")];
+		datafile.SetPtrAddress("BoardTime", event_boardtimes, datafile.GetN("BoardTime"));
+	}
+	
+	~CalFits() //Standard destructor
+	{
+		delete[] calib_baselinemean;
+		delete[] calib_gainmean;
+		delete[] calib_triggeroffsetmean;
+		delete[] event_data;
+		delete[] event_offset;
+		delete[] event_boardtimes;
+	}
+	
+	bool GetCalEvent() //Read calibrated event into the event variables
+	{
+		if(!npcaldata) {
+			ostringstream str;
+			str << "Pointer to the calibrated data not initialized!";
+#ifdef __EXCEPTIONS
+			throw runtime_error(str.str());
+#else
+			gLog << ___err___ << "ERROR - " << str.str() << endl;
+			return false;
+#endif
+		}
+		if(datafile.GetNextRow() == false) {
+//			std::cout << "Last event reached..." << std::endl;
+			return false;
+		}
+		else {
+			UInt_t drs_calib_offset;
+			for(UInt_t pixel=0;pixel<data_npix;pixel++) {
+				for(UInt_t slice=0;slice<data_nroi;slice++) {
+					drs_calib_offset = (slice+event_offset[pixel])%calib_blm_size;
+					npcaldata[pixel*data_nroi+slice] = double((event_data[pixel*data_nroi+slice]*2000./4096.-calib_baselinemean[pixel*calib_blm_size+drs_calib_offset]-calib_triggeroffsetmean[pixel*data_nroi+slice])/calib_gainmean[pixel*calib_blm_size+drs_calib_offset]*1907.35);
+					//Note: data_nroi=calib_nroi, calib_blm_size=calib_gm_size
+				}
+			}
+		}
+		return true;
+	}
+	
+	void SetNpcaldataPtr(double *numpyptr) //Set the pointer for the calibrated data to the numpy array
+	{
+		npcaldata = numpyptr;
+		return;
+	}
+};
+#endif
Index: /fact/tools/pyscripts/sandbox/vogler/calfits_h.d
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/calfits_h.d	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/calfits_h.d	(revision 14173)
@@ -0,0 +1,7 @@
+
+# DO NOT DELETE
+
+./../sandbox/kraehenb/calfits_h.so: /home_nfs/isdc/vogler/FACT_tools/tools/pyscripts/pyfact/./../pyfact/pyfits.h
+./../sandbox/kraehenb/calfits_h.so: izstream.h
+./../sandbox/kraehenb/calfits_h.so: /swdev_nfs/root_v5.32.00/include/cintdictversion.h /swdev_nfs/root_v5.32.00/include/RVersion.h
+calfits_h__ROOTBUILDVERSION= 5.32/00
Index: /fact/tools/pyscripts/sandbox/vogler/map_dn.txt
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/map_dn.txt	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/map_dn.txt	(revision 14173)
@@ -0,0 +1,1441 @@
+#	CHID	Y	X	x_euk	y_euk	y_h	x_h	softID	hardID
+	0	-7	21	18.1865334794732	3	3	21	1348	0
+	1	-7	22	19.0525588832576	3.5	4	22	1419	1
+	2	-6	20	17.3205080756888	3.5	4	20	1249	2
+	3	-6	21	18.1865334794732	4	4	21	1349	3
+	4	-6	22	19.0525588832576	4.5	5	22	1420	4
+	5	-5	20	17.3205080756888	4.5	5	20	1250	5
+	6	-5	21	18.1865334794732	5	5	21	1350	6
+	7	-5	22	19.0525588832576	5.5	6	22	1421	7
+	8	-4	20	17.3205080756888	5.5	6	20	1251	8
+	9	-10	21	18.1865334794732	0	0	21	1345	10
+	10	-10	22	19.0525588832576	0.5	1	22	1416	11
+	11	-9	20	17.3205080756888	0.5	1	20	1246	12
+	12	-9	21	18.1865334794732	1	1	21	1346	13
+	13	-9	22	19.0525588832576	1.5	2	22	1417	14
+	14	-8	20	17.3205080756888	1.5	2	20	1247	15
+	15	-8	21	18.1865334794732	2	2	21	1347	16
+	16	-8	22	19.0525588832576	2.5	3	22	1418	17
+	17	-7	20	17.3205080756888	2.5	3	20	1248	18
+	18	-1	18	15.5884572681199	7.5	8	18	1025	20
+	19	-1	17	14.7224318643355	7	7	17	917	21
+	20	-2	19	16.4544826719043	7	7	19	1138	22
+	21	-2	18	15.5884572681199	6.5	7	18	1024	23
+	22	-2	17	14.7224318643355	6	6	17	916	24
+	23	-3	19	16.4544826719043	6	6	19	1137	25
+	24	-3	18	15.5884572681199	5.5	6	18	1023	26
+	25	-3	17	14.7224318643355	5	5	17	915	27
+	26	-4	19	16.4544826719043	5	5	19	1136	28
+	27	-4	18	15.5884572681199	4.5	5	18	1022	30
+	28	-4	17	14.7224318643355	4	4	17	914	31
+	29	-5	19	16.4544826719043	4	4	19	1135	32
+	30	-5	18	15.5884572681199	3.5	4	18	1021	33
+	31	-5	17	14.7224318643355	3	3	17	913	34
+	32	-6	19	16.4544826719043	3	3	19	1134	35
+	33	-6	18	15.5884572681199	2.5	3	18	1020	36
+	34	-6	17	14.7224318643355	2	2	17	912	37
+	35	-7	19	16.4544826719043	2	2	19	1133	38
+	36	5	15	12.9903810567666	12	12	15	1145	100
+	37	5	14	12.1243556529821	11.5	12	14	1031	101
+	38	4	16	13.856406460551	11.5	12	16	1144	102
+	39	4	15	12.9903810567666	11	11	15	1030	103
+	40	4	14	12.1243556529821	10.5	11	14	922	104
+	41	3	16	13.856406460551	10.5	11	16	1029	105
+	42	3	15	12.9903810567666	10	10	15	921	106
+	43	3	14	12.1243556529821	9.5	10	14	819	107
+	44	2	16	13.856406460551	9.5	10	16	920	108
+	45	7	15	12.9903810567666	14	14	15	1356	110
+	46	6	16	13.856406460551	13.5	14	16	1355	111
+	47	6	15	12.9903810567666	13	13	15	1260	112
+	48	6	14	12.1243556529821	12.5	13	14	1146	113
+	49	5	17	14.7224318643355	13	13	17	1354	114
+	50	5	16	13.856406460551	12.5	13	16	1259	115
+	51	4	17	14.7224318643355	12	12	17	1258	116
+	52	3	18	15.5884572681199	11.5	12	18	1257	117
+	53	3	17	14.7224318643355	11	11	17	1143	118
+	54	2	19	16.4544826719043	11	11	19	1256	120
+	55	2	18	15.5884572681199	10.5	11	18	1142	121
+	56	1	19	16.4544826719043	10	10	19	1141	122
+	57	0	20	17.3205080756888	9.5	10	20	1255	123
+	58	2	17	14.7224318643355	10	10	17	1028	124
+	59	1	18	15.5884572681199	9.5	10	18	1027	125
+	60	1	17	14.7224318643355	9	9	17	919	126
+	61	0	18	15.5884572681199	8.5	9	18	1026	127
+	62	0	17	14.7224318643355	8	8	17	918	128
+	63	0	19	16.4544826719043	9	9	19	1140	130
+	64	-1	20	17.3205080756888	8.5	9	20	1254	131
+	65	-1	19	16.4544826719043	8	8	19	1139	132
+	66	-2	21	18.1865334794732	8	8	21	1353	133
+	67	-2	20	17.3205080756888	7.5	8	20	1253	134
+	68	-3	21	18.1865334794732	7	7	21	1352	135
+	69	-3	20	17.3205080756888	6.5	7	20	1252	136
+	70	-4	22	19.0525588832576	6.5	7	22	1438	137
+	71	-4	21	18.1865334794732	6	6	21	1351	138
+	72	8	12	10.3923048454133	13.5	14	12	1148	200
+	73	8	11	9.52627944162883	13	13	11	1034	201
+	74	7	13	11.2583302491977	13	13	13	1147	202
+	75	7	12	10.3923048454133	12.5	13	12	1033	203
+	76	7	11	9.52627944162883	12	12	11	925	204
+	77	6	13	11.2583302491977	12	12	13	1032	205
+	78	6	12	10.3923048454133	11.5	12	12	924	206
+	79	6	11	9.52627944162883	11	11	11	822	207
+	80	5	13	11.2583302491977	11	11	13	923	208
+	81	10	13	11.2583302491977	16	16	13	1424	210
+	82	10	12	10.3923048454133	15.5	16	12	1359	211
+	83	9	13	11.2583302491977	15	15	13	1358	212
+	84	9	12	10.3923048454133	14.5	15	12	1263	213
+	85	9	14	12.1243556529821	15.5	16	14	1423	214
+	86	8	15	12.9903810567666	15	15	15	1422	215
+	87	8	14	12.1243556529821	14.5	15	14	1357	216
+	88	8	13	11.2583302491977	14	14	13	1262	217
+	89	7	14	12.1243556529821	13.5	14	14	1261	218
+	90	5	12	10.3923048454133	10.5	11	12	821	220
+	91	5	11	9.52627944162883	10	10	11	725	221
+	92	4	13	11.2583302491977	10	10	13	820	222
+	93	4	12	10.3923048454133	9.5	10	12	724	223
+	94	4	11	9.52627944162883	9	9	11	634	224
+	95	3	13	11.2583302491977	9	9	13	723	225
+	96	3	12	10.3923048454133	8.5	9	12	633	226
+	97	3	11	9.52627944162883	8	8	11	549	227
+	98	2	13	11.2583302491977	8	8	13	632	228
+	99	2	12	10.3923048454133	7.5	8	12	548	230
+	100	2	11	9.52627944162883	7	7	11	470	231
+	101	1	13	11.2583302491977	7	7	13	547	232
+	102	1	12	10.3923048454133	6.5	7	12	469	233
+	103	1	11	9.52627944162883	6	6	11	397	234
+	104	0	13	11.2583302491977	6	6	13	546	235
+	105	0	12	10.3923048454133	5.5	6	12	468	236
+	106	0	11	9.52627944162883	5	5	11	396	237
+	107	-1	13	11.2583302491977	5	5	13	545	238
+	108	2	15	12.9903810567666	9	9	15	818	300
+	109	2	14	12.1243556529821	8.5	9	14	722	301
+	110	1	16	13.856406460551	8.5	9	16	817	302
+	111	1	15	12.9903810567666	8	8	15	721	303
+	112	1	14	12.1243556529821	7.5	8	14	631	304
+	113	0	16	13.856406460551	7.5	8	16	816	305
+	114	0	15	12.9903810567666	7	7	15	720	306
+	115	0	14	12.1243556529821	6.5	7	14	630	307
+	116	-1	16	13.856406460551	6.5	7	16	815	308
+	117	-1	15	12.9903810567666	6	6	15	719	310
+	118	-1	14	12.1243556529821	5.5	6	14	629	311
+	119	-2	16	13.856406460551	5.5	6	16	814	312
+	120	-2	15	12.9903810567666	5	5	15	718	313
+	121	-2	14	12.1243556529821	4.5	5	14	628	314
+	122	-3	16	13.856406460551	4.5	5	16	813	315
+	123	-3	15	12.9903810567666	4	4	15	717	316
+	124	-3	14	12.1243556529821	3.5	4	14	627	317
+	125	-4	16	13.856406460551	3.5	4	16	812	318
+	126	-4	15	12.9903810567666	3	3	15	716	320
+	127	-4	14	12.1243556529821	2.5	3	14	626	321
+	128	-5	16	13.856406460551	2.5	3	16	811	322
+	129	-5	15	12.9903810567666	2	2	15	715	323
+	130	-5	14	12.1243556529821	1.5	2	14	625	324
+	131	-6	16	13.856406460551	1.5	2	16	810	325
+	132	-6	15	12.9903810567666	1	1	15	714	326
+	133	-6	14	12.1243556529821	0.5	1	14	624	327
+	134	-7	16	13.856406460551	0.5	1	16	809	328
+	135	-1	12	10.3923048454133	4.5	5	12	467	330
+	136	-1	11	9.52627944162883	4	4	11	395	331
+	137	-2	13	11.2583302491977	4	4	13	544	332
+	138	-2	12	10.3923048454133	3.5	4	12	466	333
+	139	-2	11	9.52627944162883	3	3	11	394	334
+	140	-3	13	11.2583302491977	3	3	13	543	335
+	141	-3	12	10.3923048454133	2.5	3	12	465	336
+	142	-3	11	9.52627944162883	2	2	11	393	337
+	143	-4	13	11.2583302491977	2	2	13	542	338
+	144	16	6	5.19615242270663	18.5	19	6	1365	400
+	145	15	8	6.92820323027551	18.5	19	8	1429	401
+	146	15	7	6.06217782649107	18	18	7	1364	402
+	147	14	8	6.92820323027551	17.5	18	8	1363	403
+	148	14	7	6.06217782649107	17	17	7	1268	404
+	149	13	9	7.79422863405995	17	17	9	1362	405
+	150	13	8	6.92820323027551	16.5	17	8	1267	406
+	151	12	9	7.79422863405995	16	16	9	1266	407
+	152	12	8	6.92820323027551	15.5	16	8	1152	408
+	153	14	9	7.79422863405995	18	18	9	1428	410
+	154	13	10	8.66025403784439	17.5	18	10	1427	411
+	155	12	11	9.52627944162883	17	17	11	1426	412
+	156	12	10	8.66025403784439	16.5	17	10	1361	413
+	157	11	12	10.3923048454133	16.5	17	12	1425	414
+	158	11	11	9.52627944162883	16	16	11	1360	415
+	159	11	10	8.66025403784439	15.5	16	10	1265	416
+	160	10	11	9.52627944162883	15	15	11	1264	417
+	161	9	11	9.52627944162883	14	14	11	1149	418
+	162	11	9	7.79422863405995	15	15	9	1151	420
+	163	11	8	6.92820323027551	14.5	15	8	1037	421
+	164	10	10	8.66025403784439	14.5	15	10	1150	422
+	165	10	9	7.79422863405995	14	14	9	1036	423
+	166	10	8	6.92820323027551	13.5	14	8	928	424
+	167	9	10	8.66025403784439	13.5	14	10	1035	425
+	168	9	9	7.79422863405995	13	13	9	927	426
+	169	9	8	6.92820323027551	12.5	13	8	825	427
+	170	8	10	8.66025403784439	12.5	13	10	926	428
+	171	8	9	7.79422863405995	12	12	9	824	430
+	172	8	8	6.92820323027551	11.5	12	8	728	431
+	173	7	10	8.66025403784439	11.5	12	10	823	432
+	174	7	9	7.79422863405995	11	11	9	727	433
+	175	7	8	6.92820323027551	10.5	11	8	637	434
+	176	6	10	8.66025403784439	10.5	11	10	726	435
+	177	6	9	7.79422863405995	10	10	9	636	436
+	178	6	8	6.92820323027551	9.5	10	8	552	437
+	179	5	10	8.66025403784439	9.5	10	10	635	438
+	180	5	9	7.79422863405995	9	9	9	551	500
+	181	5	8	6.92820323027551	8.5	9	8	473	501
+	182	4	10	8.66025403784439	8.5	9	10	550	502
+	183	4	9	7.79422863405995	8	8	9	472	503
+	184	4	8	6.92820323027551	7.5	8	8	400	504
+	185	3	10	8.66025403784439	7.5	8	10	471	505
+	186	3	9	7.79422863405995	7	7	9	399	506
+	187	3	8	6.92820323027551	6.5	7	8	333	507
+	188	2	10	8.66025403784439	6.5	7	10	398	508
+	189	2	9	7.79422863405995	6	6	9	332	510
+	190	2	8	6.92820323027551	5.5	6	8	272	511
+	191	1	10	8.66025403784439	5.5	6	10	331	512
+	192	1	9	7.79422863405995	5	5	9	271	513
+	193	1	8	6.92820323027551	4.5	5	8	217	514
+	194	0	10	8.66025403784439	4.5	5	10	330	515
+	195	0	9	7.79422863405995	4	4	9	270	516
+	196	0	8	6.92820323027551	3.5	4	8	216	517
+	197	-1	10	8.66025403784439	3.5	4	10	329	518
+	198	-1	9	7.79422863405995	3	3	9	269	520
+	199	-1	8	6.92820323027551	2.5	3	8	215	521
+	200	-2	10	8.66025403784439	2.5	3	10	328	522
+	201	-2	9	7.79422863405995	2	2	9	268	523
+	202	-2	8	6.92820323027551	1.5	2	8	214	524
+	203	-3	10	8.66025403784439	1.5	2	10	327	525
+	204	-3	9	7.79422863405995	1	1	9	267	526
+	205	-3	8	6.92820323027551	0.5	1	8	213	527
+	206	-4	10	8.66025403784439	0.5	1	10	326	528
+	207	-4	12	10.3923048454133	1.5	2	12	464	530
+	208	-4	11	9.52627944162883	1	1	11	392	531
+	209	-5	13	11.2583302491977	1	1	13	541	532
+	210	-5	12	10.3923048454133	0.5	1	12	463	533
+	211	-5	11	9.52627944162883	0	0	11	391	534
+	212	-6	13	11.2583302491977	0	0	13	540	535
+	213	-6	12	10.3923048454133	-0.5	0	12	462	536
+	214	-6	11	9.52627944162883	-1	-1	11	390	537
+	215	-7	13	11.2583302491977	-1	-1	13	539	538
+	216	19	2	1.73205080756888	19.5	20	2	1273	600
+	217	18	4	3.46410161513775	19.5	20	4	1367	601
+	218	18	3	2.59807621135332	19	19	3	1272	602
+	219	18	2	1.73205080756888	18.5	19	2	1158	603
+	220	17	5	4.33012701892219	19	19	5	1366	604
+	221	17	4	3.46410161513775	18.5	19	4	1271	605
+	222	16	5	4.33012701892219	18	18	5	1270	606
+	223	15	6	5.19615242270663	17.5	18	6	1269	607
+	224	15	5	4.33012701892219	17	17	5	1155	608
+	225	14	6	5.19615242270663	16.5	17	6	1154	610
+	226	14	5	4.33012701892219	16	16	5	1040	611
+	227	13	7	6.06217782649107	16	16	7	1153	612
+	228	13	6	5.19615242270663	15.5	16	6	1039	613
+	229	13	5	4.33012701892219	15	15	5	931	614
+	230	12	7	6.06217782649107	15	15	7	1038	615
+	231	12	6	5.19615242270663	14.5	15	6	930	616
+	232	12	5	4.33012701892219	14	14	5	828	617
+	233	11	7	6.06217782649107	14	14	7	929	618
+	234	11	6	5.19615242270663	13.5	14	6	827	620
+	235	11	5	4.33012701892219	13	13	5	731	621
+	236	10	7	6.06217782649107	13	13	7	826	622
+	237	10	6	5.19615242270663	12.5	13	6	730	623
+	238	10	5	4.33012701892219	12	12	5	640	624
+	239	9	7	6.06217782649107	12	12	7	729	625
+	240	9	6	5.19615242270663	11.5	12	6	639	626
+	241	9	5	4.33012701892219	11	11	5	555	627
+	242	8	7	6.06217782649107	11	11	7	638	628
+	243	8	6	5.19615242270663	10.5	11	6	554	630
+	244	8	5	4.33012701892219	10	10	5	476	631
+	245	7	7	6.06217782649107	10	10	7	553	632
+	246	7	6	5.19615242270663	9.5	10	6	475	633
+	247	7	5	4.33012701892219	9	9	5	403	634
+	248	6	7	6.06217782649107	9	9	7	474	635
+	249	6	6	5.19615242270663	8.5	9	6	402	636
+	250	6	5	4.33012701892219	8	8	5	336	637
+	251	5	7	6.06217782649107	8	8	7	401	638
+	252	2	6	5.19615242270663	4.5	5	6	170	700
+	253	2	5	4.33012701892219	4	4	5	128	701
+	254	1	7	6.06217782649107	4	4	7	169	702
+	255	1	6	5.19615242270663	3.5	4	6	127	703
+	256	1	5	4.33012701892219	3	3	5	91	704
+	257	0	7	6.06217782649107	3	3	7	168	705
+	258	0	6	5.19615242270663	2.5	3	6	126	706
+	259	0	5	4.33012701892219	2	2	5	90	707
+	260	-1	7	6.06217782649107	2	2	7	167	708
+	261	5	6	5.19615242270663	7.5	8	6	335	710
+	262	5	5	4.33012701892219	7	7	5	275	711
+	263	4	7	6.06217782649107	7	7	7	334	712
+	264	4	6	5.19615242270663	6.5	7	6	274	713
+	265	4	5	4.33012701892219	6	6	5	220	714
+	266	3	7	6.06217782649107	6	6	7	273	715
+	267	3	6	5.19615242270663	5.5	6	6	219	716
+	268	3	5	4.33012701892219	5	5	5	171	717
+	269	2	7	6.06217782649107	5	5	7	218	718
+	270	5	3	2.59807621135332	6	6	3	173	720
+	271	5	2	1.73205080756888	5.5	6	2	131	721
+	272	4	4	3.46410161513775	5.5	6	4	172	722
+	273	4	3	2.59807621135332	5	5	3	130	723
+	274	4	2	1.73205080756888	4.5	5	2	94	724
+	275	3	4	3.46410161513775	4.5	5	4	129	725
+	276	3	3	2.59807621135332	4	4	3	93	726
+	277	3	2	1.73205080756888	3.5	4	2	63	727
+	278	2	4	3.46410161513775	3.5	4	4	92	728
+	279	2	3	2.59807621135332	3	3	3	62	730
+	280	2	2	1.73205080756888	2.5	3	2	38	731
+	281	1	4	3.46410161513775	2.5	3	4	61	732
+	282	1	3	2.59807621135332	2	2	3	37	733
+	283	1	2	1.73205080756888	1.5	2	2	19	734
+	284	0	4	3.46410161513775	1.5	2	4	60	735
+	285	0	3	2.59807621135332	1	1	3	36	736
+	286	0	2	1.73205080756888	0.5	1	2	18	737
+	287	-1	4	3.46410161513775	0.5	1	4	59	738
+	288	17	3	2.59807621135332	18	18	3	1157	800
+	289	17	2	1.73205080756888	17.5	18	2	1043	801
+	290	16	4	3.46410161513775	17.5	18	4	1156	802
+	291	16	3	2.59807621135332	17	17	3	1042	803
+	292	16	2	1.73205080756888	16.5	17	2	934	804
+	293	15	4	3.46410161513775	16.5	17	4	1041	805
+	294	15	3	2.59807621135332	16	16	3	933	806
+	295	15	2	1.73205080756888	15.5	16	2	831	807
+	296	14	4	3.46410161513775	15.5	16	4	932	808
+	297	14	3	2.59807621135332	15	15	3	830	810
+	298	14	2	1.73205080756888	14.5	15	2	734	811
+	299	13	4	3.46410161513775	14.5	15	4	829	812
+	300	13	3	2.59807621135332	14	14	3	733	813
+	301	13	2	1.73205080756888	13.5	14	2	643	814
+	302	12	4	3.46410161513775	13.5	14	4	732	815
+	303	12	3	2.59807621135332	13	13	3	642	816
+	304	12	2	1.73205080756888	12.5	13	2	558	817
+	305	11	4	3.46410161513775	12.5	13	4	641	818
+	306	11	3	2.59807621135332	12	12	3	557	820
+	307	11	2	1.73205080756888	11.5	12	2	479	821
+	308	10	4	3.46410161513775	11.5	12	4	556	822
+	309	10	3	2.59807621135332	11	11	3	478	823
+	310	10	2	1.73205080756888	10.5	11	2	406	824
+	311	9	4	3.46410161513775	10.5	11	4	477	825
+	312	9	3	2.59807621135332	10	10	3	405	826
+	313	9	2	1.73205080756888	9.5	10	2	339	827
+	314	8	4	3.46410161513775	9.5	10	4	404	828
+	315	8	3	2.59807621135332	9	9	3	338	830
+	316	8	2	1.73205080756888	8.5	9	2	278	831
+	317	7	4	3.46410161513775	8.5	9	4	337	832
+	318	7	3	2.59807621135332	8	8	3	277	833
+	319	7	2	1.73205080756888	7.5	8	2	223	834
+	320	6	4	3.46410161513775	7.5	8	4	276	835
+	321	6	3	2.59807621135332	7	7	3	222	836
+	322	6	2	1.73205080756888	6.5	7	2	174	837
+	323	5	4	3.46410161513775	6.5	7	4	221	838
+	324	17	0	0	16.5	17	0	833	900
+	325	17	-1	-0.866025403784439	16	16	-1	834	901
+	326	16	1	0.866025403784439	16	16	1	832	902
+	327	16	0	0	15.5	16	0	736	903
+	328	16	-1	-0.866025403784439	15	15	-1	737	904
+	329	15	1	0.866025403784439	15	15	1	735	905
+	330	15	0	0	14.5	15	0	645	906
+	331	15	-1	-0.866025403784439	14	14	-1	646	907
+	332	14	1	0.866025403784439	14	14	1	644	908
+	333	20	0	0	19.5	20	0	1160	910
+	334	20	-1	-0.866025403784439	19	19	-1	1161	911
+	335	19	1	0.866025403784439	19	19	1	1159	912
+	336	19	0	0	18.5	19	0	1045	913
+	337	19	-1	-0.866025403784439	18	18	-1	1046	914
+	338	18	1	0.866025403784439	18	18	1	1044	915
+	339	18	0	0	17.5	18	0	936	916
+	340	18	-1	-0.866025403784439	17	17	-1	937	917
+	341	17	1	0.866025403784439	17	17	1	935	918
+	342	14	0	0	13.5	14	0	560	920
+	343	14	-1	-0.866025403784439	13	13	-1	561	921
+	344	13	1	0.866025403784439	13	13	1	559	922
+	345	13	0	0	12.5	13	0	481	923
+	346	13	-1	-0.866025403784439	12	12	-1	482	924
+	347	12	1	0.866025403784439	12	12	1	480	925
+	348	12	0	0	11.5	12	0	408	926
+	349	12	-1	-0.866025403784439	11	11	-1	409	927
+	350	11	1	0.866025403784439	11	11	1	407	928
+	351	11	0	0	10.5	11	0	341	930
+	352	11	-1	-0.866025403784439	10	10	-1	342	931
+	353	10	1	0.866025403784439	10	10	1	340	932
+	354	10	0	0	9.5	10	0	280	933
+	355	10	-1	-0.866025403784439	9	9	-1	281	934
+	356	9	1	0.866025403784439	9	9	1	279	935
+	357	9	0	0	8.5	9	0	225	936
+	358	9	-1	-0.866025403784439	8	8	-1	226	937
+	359	8	1	0.866025403784439	8	8	1	224	938
+	360	8	0	0	7.5	8	0	176	1000
+	361	8	-1	-0.866025403784439	7	7	-1	177	1001
+	362	7	1	0.866025403784439	7	7	1	175	1002
+	363	7	0	0	6.5	7	0	133	1003
+	364	7	-1	-0.866025403784439	6	6	-1	134	1004
+	365	6	1	0.866025403784439	6	6	1	132	1005
+	366	6	0	0	5.5	6	0	96	1006
+	367	6	-1	-0.866025403784439	5	5	-1	97	1007
+	368	5	1	0.866025403784439	5	5	1	95	1008
+	369	5	0	0	4.5	5	0	65	1010
+	370	5	-1	-0.866025403784439	4	4	-1	66	1011
+	371	4	1	0.866025403784439	4	4	1	64	1012
+	372	4	0	0	3.5	4	0	40	1013
+	373	4	-1	-0.866025403784439	3	3	-1	41	1014
+	374	3	1	0.866025403784439	3	3	1	39	1015
+	375	3	0	0	2.5	3	0	21	1016
+	376	3	-1	-0.866025403784439	2	2	-1	22	1017
+	377	2	1	0.866025403784439	2	2	1	20	1018
+	378	5	-3	-2.59807621135332	3	3	-3	68	1020
+	379	5	-4	-3.46410161513775	2.5	3	-4	69	1021
+	380	4	-2	-1.73205080756888	2.5	3	-2	42	1022
+	381	4	-3	-2.59807621135332	2	2	-3	43	1023
+	382	4	-4	-3.46410161513775	1.5	2	-4	44	1024
+	383	3	-2	-1.73205080756888	1.5	2	-2	23	1025
+	384	3	-3	-2.59807621135332	1	1	-3	24	1026
+	385	3	-4	-3.46410161513775	0.5	1	-4	45	1027
+	386	2	-2	-1.73205080756888	0.5	1	-2	10	1028
+	387	2	0	0	1.5	2	0	8	1030
+	388	2	-1	-0.866025403784439	1	1	-1	9	1031
+	389	1	1	0.866025403784439	1	1	1	7	1032
+	390	1	0	0	0.5	1	0	1	1033
+	391	1	-1	-0.866025403784439	0	0	-1	2	1034
+	392	0	1	0.866025403784439	0	0	1	6	1035
+	393	0	0	0	-0.5	0	0	0	1036
+	394	0	-1	-0.866025403784439	-1	-1	-1	3	1037
+	395	-1	1	0.866025403784439	-1	-1	1	5	1038
+	396	11	-3	-2.59807621135332	9	9	-3	344	1100
+	397	11	-4	-3.46410161513775	8.5	9	-4	345	1101
+	398	10	-2	-1.73205080756888	8.5	9	-2	282	1102
+	399	10	-3	-2.59807621135332	8	8	-3	283	1103
+	400	10	-4	-3.46410161513775	7.5	8	-4	284	1104
+	401	9	-2	-1.73205080756888	7.5	8	-2	227	1105
+	402	9	-3	-2.59807621135332	7	7	-3	228	1106
+	403	9	-4	-3.46410161513775	6.5	7	-4	229	1107
+	404	8	-2	-1.73205080756888	6.5	7	-2	178	1108
+	405	8	-3	-2.59807621135332	6	6	-3	179	1110
+	406	8	-4	-3.46410161513775	5.5	6	-4	180	1111
+	407	7	-2	-1.73205080756888	5.5	6	-2	135	1112
+	408	7	-3	-2.59807621135332	5	5	-3	136	1113
+	409	7	-4	-3.46410161513775	4.5	5	-4	137	1114
+	410	6	-2	-1.73205080756888	4.5	5	-2	98	1115
+	411	6	-3	-2.59807621135332	4	4	-3	99	1116
+	412	6	-4	-3.46410161513775	3.5	4	-4	100	1117
+	413	5	-2	-1.73205080756888	3.5	4	-2	67	1118
+	414	8	-6	-5.19615242270663	4.5	5	-6	182	1120
+	415	8	-7	-6.06217782649107	4	4	-7	183	1121
+	416	7	-5	-4.33012701892219	4	4	-5	138	1122
+	417	7	-6	-5.19615242270663	3.5	4	-6	139	1123
+	418	7	-7	-6.06217782649107	3	3	-7	140	1124
+	419	6	-5	-4.33012701892219	3	3	-5	101	1125
+	420	6	-6	-5.19615242270663	2.5	3	-6	102	1126
+	421	6	-7	-6.06217782649107	2	2	-7	141	1127
+	422	5	-5	-4.33012701892219	2	2	-5	70	1128
+	423	5	-6	-5.19615242270663	1.5	2	-6	103	1130
+	424	5	-7	-6.06217782649107	1	1	-7	142	1131
+	425	4	-5	-4.33012701892219	1	1	-5	71	1132
+	426	4	-6	-5.19615242270663	0.5	1	-6	104	1133
+	427	4	-7	-6.06217782649107	0	0	-7	143	1134
+	428	3	-5	-4.33012701892219	0	0	-5	72	1135
+	429	3	-6	-5.19615242270663	-0.5	0	-6	105	1136
+	430	3	-7	-6.06217782649107	-1	-1	-7	144	1137
+	431	2	-5	-4.33012701892219	-1	-1	-5	73	1138
+	432	22	-4	-3.46410161513775	19.5	20	-4	1368	1200
+	433	21	-2	-1.73205080756888	19.5	20	-2	1274	1201
+	434	21	-3	-2.59807621135332	19	19	-3	1275	1202
+	435	20	-2	-1.73205080756888	18.5	19	-2	1162	1203
+	436	22	-5	-4.33012701892219	19	19	-5	1369	1204
+	437	21	-4	-3.46410161513775	18.5	19	-4	1276	1205
+	438	21	-5	-4.33012701892219	18	18	-5	1277	1206
+	439	21	-6	-5.19615242270663	17.5	18	-6	1278	1207
+	440	20	-5	-4.33012701892219	17	17	-5	1165	1208
+	441	20	-3	-2.59807621135332	18	18	-3	1163	1210
+	442	20	-4	-3.46410161513775	17.5	18	-4	1164	1211
+	443	19	-2	-1.73205080756888	17.5	18	-2	1047	1212
+	444	19	-3	-2.59807621135332	17	17	-3	1048	1213
+	445	19	-4	-3.46410161513775	16.5	17	-4	1049	1214
+	446	18	-2	-1.73205080756888	16.5	17	-2	938	1215
+	447	18	-3	-2.59807621135332	16	16	-3	939	1216
+	448	18	-4	-3.46410161513775	15.5	16	-4	940	1217
+	449	17	-2	-1.73205080756888	15.5	16	-2	835	1218
+	450	17	-3	-2.59807621135332	15	15	-3	836	1220
+	451	17	-4	-3.46410161513775	14.5	15	-4	837	1221
+	452	16	-2	-1.73205080756888	14.5	15	-2	738	1222
+	453	16	-3	-2.59807621135332	14	14	-3	739	1223
+	454	16	-4	-3.46410161513775	13.5	14	-4	740	1224
+	455	15	-2	-1.73205080756888	13.5	14	-2	647	1225
+	456	15	-3	-2.59807621135332	13	13	-3	648	1226
+	457	15	-4	-3.46410161513775	12.5	13	-4	649	1227
+	458	14	-2	-1.73205080756888	12.5	13	-2	562	1228
+	459	14	-3	-2.59807621135332	12	12	-3	563	1230
+	460	14	-4	-3.46410161513775	11.5	12	-4	564	1231
+	461	13	-2	-1.73205080756888	11.5	12	-2	483	1232
+	462	13	-3	-2.59807621135332	11	11	-3	484	1233
+	463	13	-4	-3.46410161513775	10.5	11	-4	485	1234
+	464	12	-2	-1.73205080756888	10.5	11	-2	410	1235
+	465	12	-3	-2.59807621135332	10	10	-3	411	1236
+	466	12	-4	-3.46410161513775	9.5	10	-4	412	1237
+	467	11	-2	-1.73205080756888	9.5	10	-2	343	1238
+	468	23	-8	-6.92820323027551	18.5	19	-8	1430	1300
+	469	22	-6	-5.19615242270663	18.5	19	-6	1370	1301
+	470	22	-7	-6.06217782649107	18	18	-7	1371	1302
+	471	22	-8	-6.92820323027551	17.5	18	-8	1372	1303
+	472	22	-9	-7.79422863405995	17	17	-9	1373	1304
+	473	21	-7	-6.06217782649107	17	17	-7	1279	1305
+	474	21	-8	-6.92820323027551	16.5	17	-8	1280	1306
+	475	21	-9	-7.79422863405995	16	16	-9	1281	1307
+	476	20	-8	-6.92820323027551	15.5	16	-8	1168	1308
+	477	20	-6	-5.19615242270663	16.5	17	-6	1166	1310
+	478	20	-7	-6.06217782649107	16	16	-7	1167	1311
+	479	19	-5	-4.33012701892219	16	16	-5	1050	1312
+	480	19	-6	-5.19615242270663	15.5	16	-6	1051	1313
+	481	19	-7	-6.06217782649107	15	15	-7	1052	1314
+	482	18	-5	-4.33012701892219	15	15	-5	941	1315
+	483	18	-6	-5.19615242270663	14.5	15	-6	942	1316
+	484	18	-7	-6.06217782649107	14	14	-7	943	1317
+	485	17	-5	-4.33012701892219	14	14	-5	838	1318
+	486	17	-6	-5.19615242270663	13.5	14	-6	839	1320
+	487	17	-7	-6.06217782649107	13	13	-7	840	1321
+	488	16	-5	-4.33012701892219	13	13	-5	741	1322
+	489	16	-6	-5.19615242270663	12.5	13	-6	742	1323
+	490	16	-7	-6.06217782649107	12	12	-7	743	1324
+	491	15	-5	-4.33012701892219	12	12	-5	650	1325
+	492	15	-6	-5.19615242270663	11.5	12	-6	651	1326
+	493	15	-7	-6.06217782649107	11	11	-7	652	1327
+	494	14	-5	-4.33012701892219	11	11	-5	565	1328
+	495	14	-6	-5.19615242270663	10.5	11	-6	566	1330
+	496	14	-7	-6.06217782649107	10	10	-7	567	1331
+	497	13	-5	-4.33012701892219	10	10	-5	486	1332
+	498	13	-6	-5.19615242270663	9.5	10	-6	487	1333
+	499	13	-7	-6.06217782649107	9	9	-7	488	1334
+	500	12	-5	-4.33012701892219	9	9	-5	413	1335
+	501	12	-6	-5.19615242270663	8.5	9	-6	414	1336
+	502	12	-7	-6.06217782649107	8	8	-7	415	1337
+	503	11	-5	-4.33012701892219	8	8	-5	346	1338
+	504	11	-9	-7.79422863405995	6	6	-9	350	1400
+	505	11	-10	-8.66025403784439	5.5	6	-10	351	1401
+	506	10	-8	-6.92820323027551	5.5	6	-8	288	1402
+	507	10	-9	-7.79422863405995	5	5	-9	289	1403
+	508	10	-10	-8.66025403784439	4.5	5	-10	290	1404
+	509	9	-8	-6.92820323027551	4.5	5	-8	233	1405
+	510	9	-9	-7.79422863405995	4	4	-9	234	1406
+	511	9	-10	-8.66025403784439	3.5	4	-10	291	1407
+	512	8	-8	-6.92820323027551	3.5	4	-8	184	1408
+	513	11	-6	-5.19615242270663	7.5	8	-6	347	1410
+	514	11	-7	-6.06217782649107	7	7	-7	348	1411
+	515	10	-5	-4.33012701892219	7	7	-5	285	1412
+	516	10	-6	-5.19615242270663	6.5	7	-6	286	1413
+	517	10	-7	-6.06217782649107	6	6	-7	287	1414
+	518	9	-5	-4.33012701892219	6	6	-5	230	1415
+	519	9	-6	-5.19615242270663	5.5	6	-6	231	1416
+	520	9	-7	-6.06217782649107	5	5	-7	232	1417
+	521	8	-5	-4.33012701892219	5	5	-5	181	1418
+	522	11	-12	-10.3923048454133	4.5	5	-12	421	1420
+	523	11	-13	-11.2583302491977	4	4	-13	496	1421
+	524	10	-11	-9.52627944162883	4	4	-11	353	1422
+	525	10	-12	-10.3923048454133	3.5	4	-12	422	1423
+	526	10	-13	-11.2583302491977	3	3	-13	497	1424
+	527	9	-11	-9.52627944162883	3	3	-11	354	1425
+	528	9	-12	-10.3923048454133	2.5	3	-12	423	1426
+	529	9	-13	-11.2583302491977	2	2	-13	498	1427
+	530	8	-11	-9.52627944162883	2	2	-11	355	1428
+	531	8	-9	-7.79422863405995	3	3	-9	235	1430
+	532	8	-10	-8.66025403784439	2.5	3	-10	292	1431
+	533	7	-8	-6.92820323027551	2.5	3	-8	185	1432
+	534	7	-9	-7.79422863405995	2	2	-9	236	1433
+	535	7	-10	-8.66025403784439	1.5	2	-10	293	1434
+	536	6	-8	-6.92820323027551	1.5	2	-8	186	1435
+	537	6	-9	-7.79422863405995	1	1	-9	237	1436
+	538	6	-10	-8.66025403784439	0.5	1	-10	294	1437
+	539	5	-8	-6.92820323027551	0.5	1	-8	187	1438
+	540	23	-9	-7.79422863405995	18	18	-9	1431	1500
+	541	23	-10	-8.66025403784439	17.5	18	-10	1432	1501
+	542	23	-11	-9.52627944162883	17	17	-11	1433	1502
+	543	22	-10	-8.66025403784439	16.5	17	-10	1374	1503
+	544	23	-12	-10.3923048454133	16.5	17	-12	1434	1504
+	545	22	-11	-9.52627944162883	16	16	-11	1375	1505
+	546	21	-10	-8.66025403784439	15.5	16	-10	1282	1506
+	547	21	-11	-9.52627944162883	15	15	-11	1283	1507
+	548	20	-11	-9.52627944162883	14	14	-11	1171	1508
+	549	20	-9	-7.79422863405995	15	15	-9	1169	1510
+	550	20	-10	-8.66025403784439	14.5	15	-10	1170	1511
+	551	19	-8	-6.92820323027551	14.5	15	-8	1053	1512
+	552	19	-9	-7.79422863405995	14	14	-9	1054	1513
+	553	19	-10	-8.66025403784439	13.5	14	-10	1055	1514
+	554	18	-8	-6.92820323027551	13.5	14	-8	944	1515
+	555	18	-9	-7.79422863405995	13	13	-9	945	1516
+	556	18	-10	-8.66025403784439	12.5	13	-10	946	1517
+	557	17	-8	-6.92820323027551	12.5	13	-8	841	1518
+	558	17	-9	-7.79422863405995	12	12	-9	842	1520
+	559	17	-10	-8.66025403784439	11.5	12	-10	843	1521
+	560	16	-8	-6.92820323027551	11.5	12	-8	744	1522
+	561	16	-9	-7.79422863405995	11	11	-9	745	1523
+	562	16	-10	-8.66025403784439	10.5	11	-10	746	1524
+	563	15	-8	-6.92820323027551	10.5	11	-8	653	1525
+	564	15	-9	-7.79422863405995	10	10	-9	654	1526
+	565	15	-10	-8.66025403784439	9.5	10	-10	655	1527
+	566	14	-8	-6.92820323027551	9.5	10	-8	568	1528
+	567	14	-9	-7.79422863405995	9	9	-9	569	1530
+	568	14	-10	-8.66025403784439	8.5	9	-10	570	1531
+	569	13	-8	-6.92820323027551	8.5	9	-8	489	1532
+	570	13	-9	-7.79422863405995	8	8	-9	490	1533
+	571	13	-10	-8.66025403784439	7.5	8	-10	491	1534
+	572	12	-8	-6.92820323027551	7.5	8	-8	416	1535
+	573	12	-9	-7.79422863405995	7	7	-9	417	1536
+	574	12	-10	-8.66025403784439	6.5	7	-10	418	1537
+	575	11	-8	-6.92820323027551	6.5	7	-8	349	1538
+	576	23	-13	-11.2583302491977	16	16	-13	1435	1600
+	577	22	-12	-10.3923048454133	15.5	16	-12	1376	1601
+	578	22	-13	-11.2583302491977	15	15	-13	1377	1602
+	579	21	-12	-10.3923048454133	14.5	15	-12	1284	1603
+	580	23	-14	-12.1243556529821	15.5	16	-14	1436	1604
+	581	23	-15	-12.9903810567666	15	15	-15	1437	1605
+	582	22	-14	-12.1243556529821	14.5	15	-14	1378	1606
+	583	21	-13	-11.2583302491977	14	14	-13	1285	1607
+	584	21	-14	-12.1243556529821	13.5	14	-14	1286	1608
+	585	20	-12	-10.3923048454133	13.5	14	-12	1172	1610
+	586	20	-13	-11.2583302491977	13	13	-13	1173	1611
+	587	19	-11	-9.52627944162883	13	13	-11	1056	1612
+	588	19	-12	-10.3923048454133	12.5	13	-12	1057	1613
+	589	19	-13	-11.2583302491977	12	12	-13	1058	1614
+	590	18	-11	-9.52627944162883	12	12	-11	947	1615
+	591	18	-12	-10.3923048454133	11.5	12	-12	948	1616
+	592	18	-13	-11.2583302491977	11	11	-13	949	1617
+	593	17	-11	-9.52627944162883	11	11	-11	844	1618
+	594	17	-12	-10.3923048454133	10.5	11	-12	845	1620
+	595	17	-13	-11.2583302491977	10	10	-13	846	1621
+	596	16	-11	-9.52627944162883	10	10	-11	747	1622
+	597	16	-12	-10.3923048454133	9.5	10	-12	748	1623
+	598	16	-13	-11.2583302491977	9	9	-13	749	1624
+	599	15	-11	-9.52627944162883	9	9	-11	656	1625
+	600	15	-12	-10.3923048454133	8.5	9	-12	657	1626
+	601	15	-13	-11.2583302491977	8	8	-13	658	1627
+	602	14	-11	-9.52627944162883	8	8	-11	571	1628
+	603	14	-12	-10.3923048454133	7.5	8	-12	572	1630
+	604	14	-13	-11.2583302491977	7	7	-13	573	1631
+	605	13	-11	-9.52627944162883	7	7	-11	492	1632
+	606	13	-12	-10.3923048454133	6.5	7	-12	493	1633
+	607	13	-13	-11.2583302491977	6	6	-13	494	1634
+	608	12	-11	-9.52627944162883	6	6	-11	419	1635
+	609	12	-12	-10.3923048454133	5.5	6	-12	420	1636
+	610	12	-13	-11.2583302491977	5	5	-13	495	1637
+	611	11	-11	-9.52627944162883	5	5	-11	352	1638
+	612	22	-15	-12.9903810567666	14	14	-15	1379	1700
+	613	22	-16	-13.856406460551	13.5	14	-16	1380	1701
+	614	21	-15	-12.9903810567666	13	13	-15	1287	1702
+	615	20	-14	-12.1243556529821	12.5	13	-14	1174	1703
+	616	22	-17	-14.7224318643355	13	13	-17	1381	1704
+	617	21	-16	-13.856406460551	12.5	13	-16	1288	1705
+	618	21	-17	-14.7224318643355	12	12	-17	1289	1706
+	619	21	-18	-15.5884572681199	11.5	12	-18	1290	1707
+	620	20	-17	-14.7224318643355	11	11	-17	1177	1708
+	621	20	-15	-12.9903810567666	12	12	-15	1175	1710
+	622	20	-16	-13.856406460551	11.5	12	-16	1176	1711
+	623	19	-14	-12.1243556529821	11.5	12	-14	1059	1712
+	624	19	-15	-12.9903810567666	11	11	-15	1060	1713
+	625	19	-16	-13.856406460551	10.5	11	-16	1061	1714
+	626	18	-14	-12.1243556529821	10.5	11	-14	950	1715
+	627	18	-15	-12.9903810567666	10	10	-15	951	1716
+	628	18	-16	-13.856406460551	9.5	10	-16	952	1717
+	629	17	-14	-12.1243556529821	9.5	10	-14	847	1718
+	630	21	-19	-16.4544826719043	11	11	-19	1291	1720
+	631	20	-18	-15.5884572681199	10.5	11	-18	1178	1721
+	632	20	-19	-16.4544826719043	10	10	-19	1179	1722
+	633	20	-20	-17.3205080756888	9.5	10	-20	1180	1723
+	634	19	-17	-14.7224318643355	10	10	-17	1062	1724
+	635	19	-18	-15.5884572681199	9.5	10	-18	1063	1725
+	636	18	-17	-14.7224318643355	9	9	-17	953	1726
+	637	18	-18	-15.5884572681199	8.5	9	-18	954	1727
+	638	17	-17	-14.7224318643355	8	8	-17	850	1728
+	639	17	-15	-12.9903810567666	9	9	-15	848	1730
+	640	17	-16	-13.856406460551	8.5	9	-16	849	1731
+	641	16	-14	-12.1243556529821	8.5	9	-14	750	1732
+	642	16	-15	-12.9903810567666	8	8	-15	751	1733
+	643	16	-16	-13.856406460551	7.5	8	-16	752	1734
+	644	15	-14	-12.1243556529821	7.5	8	-14	659	1735
+	645	15	-15	-12.9903810567666	7	7	-15	660	1736
+	646	15	-16	-13.856406460551	6.5	7	-16	753	1737
+	647	14	-14	-12.1243556529821	6.5	7	-14	574	1738
+	648	14	-15	-12.9903810567666	6	6	-15	661	1800
+	649	14	-16	-13.856406460551	5.5	6	-16	754	1801
+	650	13	-14	-12.1243556529821	5.5	6	-14	575	1802
+	651	13	-15	-12.9903810567666	5	5	-15	662	1803
+	652	13	-16	-13.856406460551	4.5	5	-16	755	1804
+	653	12	-14	-12.1243556529821	4.5	5	-14	576	1805
+	654	12	-15	-12.9903810567666	4	4	-15	663	1806
+	655	12	-16	-13.856406460551	3.5	4	-16	756	1807
+	656	11	-14	-12.1243556529821	3.5	4	-14	577	1808
+	657	11	-15	-12.9903810567666	3	3	-15	664	1810
+	658	11	-16	-13.856406460551	2.5	3	-16	757	1811
+	659	10	-14	-12.1243556529821	2.5	3	-14	578	1812
+	660	10	-15	-12.9903810567666	2	2	-15	665	1813
+	661	10	-16	-13.856406460551	1.5	2	-16	758	1814
+	662	9	-14	-12.1243556529821	1.5	2	-14	579	1815
+	663	9	-15	-12.9903810567666	1	1	-15	666	1816
+	664	9	-16	-13.856406460551	0.5	1	-16	759	1817
+	665	8	-14	-12.1243556529821	0.5	1	-14	580	1818
+	666	14	-18	-15.5884572681199	4.5	5	-18	958	1820
+	667	14	-19	-16.4544826719043	4	4	-19	1069	1821
+	668	13	-17	-14.7224318643355	4	4	-17	854	1822
+	669	13	-18	-15.5884572681199	3.5	4	-18	959	1823
+	670	13	-19	-16.4544826719043	3	3	-19	1070	1824
+	671	12	-17	-14.7224318643355	3	3	-17	855	1825
+	672	12	-18	-15.5884572681199	2.5	3	-18	960	1826
+	673	12	-19	-16.4544826719043	2	2	-19	1071	1827
+	674	11	-17	-14.7224318643355	2	2	-17	856	1828
+	675	11	-18	-15.5884572681199	1.5	2	-18	961	1830
+	676	11	-19	-16.4544826719043	1	1	-19	1072	1831
+	677	10	-17	-14.7224318643355	1	1	-17	857	1832
+	678	10	-18	-15.5884572681199	0.5	1	-18	962	1833
+	679	10	-19	-16.4544826719043	0	0	-19	1073	1834
+	680	9	-17	-14.7224318643355	0	0	-17	858	1835
+	681	9	-18	-15.5884572681199	-0.5	0	-18	963	1836
+	682	9	-19	-16.4544826719043	-1	-1	-19	1074	1837
+	683	8	-17	-14.7224318643355	-1	-1	-17	859	1838
+	684	19	-19	-16.4544826719043	9	9	-19	1064	1900
+	685	19	-20	-17.3205080756888	8.5	9	-20	1181	1901
+	686	19	-21	-18.1865334794732	8	8	-21	1292	1902
+	687	18	-19	-16.4544826719043	8	8	-19	1065	1903
+	688	18	-20	-17.3205080756888	7.5	8	-20	1182	1904
+	689	18	-21	-18.1865334794732	7	7	-21	1293	1905
+	690	18	-22	-19.0525588832576	6.5	7	-22	1439	1906
+	691	17	-20	-17.3205080756888	6.5	7	-20	1183	1907
+	692	17	-21	-18.1865334794732	6	6	-21	1294	1908
+	693	17	-18	-15.5884572681199	7.5	8	-18	955	1910
+	694	17	-19	-16.4544826719043	7	7	-19	1066	1911
+	695	16	-17	-14.7224318643355	7	7	-17	851	1912
+	696	16	-18	-15.5884572681199	6.5	7	-18	956	1913
+	697	16	-19	-16.4544826719043	6	6	-19	1067	1914
+	698	15	-17	-14.7224318643355	6	6	-17	852	1915
+	699	15	-18	-15.5884572681199	5.5	6	-18	957	1916
+	700	15	-19	-16.4544826719043	5	5	-19	1068	1917
+	701	14	-17	-14.7224318643355	5	5	-17	853	1918
+	702	14	-21	-18.1865334794732	3	3	-21	1297	1920
+	703	14	-20	-17.3205080756888	3.5	4	-20	1186	1921
+	704	15	-22	-19.0525588832576	3.5	4	-22	1384	1922
+	705	15	-21	-18.1865334794732	4	4	-21	1296	1923
+	706	15	-20	-17.3205080756888	4.5	5	-20	1185	1924
+	707	16	-22	-19.0525588832576	4.5	5	-22	1383	1925
+	708	16	-21	-18.1865334794732	5	5	-21	1295	1926
+	709	16	-20	-17.3205080756888	5.5	6	-20	1184	1927
+	710	17	-22	-19.0525588832576	5.5	6	-22	1382	1928
+	711	11	-21	-18.1865334794732	0	0	-21	1300	1930
+	712	11	-20	-17.3205080756888	0.5	1	-20	1189	1931
+	713	12	-22	-19.0525588832576	0.5	1	-22	1387	1932
+	714	12	-21	-18.1865334794732	1	1	-21	1299	1933
+	715	12	-20	-17.3205080756888	1.5	2	-20	1188	1934
+	716	13	-22	-19.0525588832576	1.5	2	-22	1386	1935
+	717	13	-21	-18.1865334794732	2	2	-21	1298	1936
+	718	13	-20	-17.3205080756888	2.5	3	-20	1187	1937
+	719	14	-22	-19.0525588832576	2.5	3	-22	1385	1938
+	720	5	-21	-18.1865334794732	-6	-6	-21	1306	2000
+	721	5	-20	-17.3205080756888	-5.5	-5	-20	1195	2001
+	722	6	-22	-19.0525588832576	-5.5	-5	-22	1393	2002
+	723	6	-21	-18.1865334794732	-5	-5	-21	1305	2003
+	724	6	-20	-17.3205080756888	-4.5	-4	-20	1194	2004
+	725	7	-22	-19.0525588832576	-4.5	-4	-22	1392	2005
+	726	7	-21	-18.1865334794732	-4	-4	-21	1304	2006
+	727	7	-20	-17.3205080756888	-3.5	-3	-20	1193	2007
+	728	8	-22	-19.0525588832576	-3.5	-3	-22	1391	2008
+	729	8	-21	-18.1865334794732	-3	-3	-21	1303	2010
+	730	8	-20	-17.3205080756888	-2.5	-2	-20	1192	2011
+	731	9	-22	-19.0525588832576	-2.5	-2	-22	1390	2012
+	732	9	-21	-18.1865334794732	-2	-2	-21	1302	2013
+	733	9	-20	-17.3205080756888	-1.5	-1	-20	1191	2014
+	734	10	-22	-19.0525588832576	-1.5	-1	-22	1389	2015
+	735	10	-21	-18.1865334794732	-1	-1	-21	1301	2016
+	736	10	-20	-17.3205080756888	-0.5	0	-20	1190	2017
+	737	11	-22	-19.0525588832576	-0.5	0	-22	1388	2018
+	738	5	-18	-15.5884572681199	-4.5	-4	-18	967	2020
+	739	5	-19	-16.4544826719043	-5	-5	-19	1078	2021
+	740	4	-17	-14.7224318643355	-5	-5	-17	863	2022
+	741	4	-18	-15.5884572681199	-5.5	-5	-18	968	2023
+	742	4	-19	-16.4544826719043	-6	-6	-19	1079	2024
+	743	3	-17	-14.7224318643355	-6	-6	-17	864	2025
+	744	3	-18	-15.5884572681199	-6.5	-6	-18	969	2026
+	745	3	-19	-16.4544826719043	-7	-7	-19	1080	2027
+	746	2	-17	-14.7224318643355	-7	-7	-17	865	2028
+	747	8	-18	-15.5884572681199	-1.5	-1	-18	964	2030
+	748	8	-19	-16.4544826719043	-2	-2	-19	1075	2031
+	749	7	-17	-14.7224318643355	-2	-2	-17	860	2032
+	750	7	-18	-15.5884572681199	-2.5	-2	-18	965	2033
+	751	7	-19	-16.4544826719043	-3	-3	-19	1076	2034
+	752	6	-17	-14.7224318643355	-3	-3	-17	861	2035
+	753	6	-18	-15.5884572681199	-3.5	-3	-18	966	2036
+	754	6	-19	-16.4544826719043	-4	-4	-19	1077	2037
+	755	5	-17	-14.7224318643355	-4	-4	-17	862	2038
+	756	-1	-15	-12.9903810567666	-9	-9	-15	769	2100
+	757	-1	-16	-13.856406460551	-9.5	-9	-16	868	2101
+	758	-2	-14	-12.1243556529821	-9.5	-9	-14	770	2102
+	759	-2	-15	-12.9903810567666	-10	-10	-15	869	2103
+	760	-2	-16	-13.856406460551	-10.5	-10	-16	974	2104
+	761	-3	-14	-12.1243556529821	-10.5	-10	-14	870	2105
+	762	-3	-15	-12.9903810567666	-11	-11	-15	975	2106
+	763	-3	-16	-13.856406460551	-11.5	-11	-16	1086	2107
+	764	-4	-14	-12.1243556529821	-11.5	-11	-14	976	2108
+	765	-2	-17	-14.7224318643355	-11	-11	-17	1085	2110
+	766	-3	-17	-14.7224318643355	-12	-12	-17	1202	2111
+	767	-4	-16	-13.856406460551	-12.5	-12	-16	1203	2112
+	768	-4	-17	-14.7224318643355	-13	-13	-17	1309	2113
+	769	-4	-15	-12.9903810567666	-12	-12	-15	1087	2114
+	770	-5	-14	-12.1243556529821	-12.5	-12	-14	1088	2115
+	771	-5	-15	-12.9903810567666	-13	-13	-15	1204	2116
+	772	-5	-16	-13.856406460551	-13.5	-13	-16	1310	2117
+	773	-6	-14	-12.1243556529821	-13.5	-13	-14	1205	2118
+	774	2	-18	-15.5884572681199	-7.5	-7	-18	970	2120
+	775	1	-17	-14.7224318643355	-8	-8	-17	866	2121
+	776	1	-18	-15.5884572681199	-8.5	-8	-18	971	2122
+	777	0	-17	-14.7224318643355	-9	-9	-17	867	2123
+	778	0	-18	-15.5884572681199	-9.5	-9	-18	972	2124
+	779	-1	-17	-14.7224318643355	-10	-10	-17	973	2125
+	780	-1	-18	-15.5884572681199	-10.5	-10	-18	1084	2126
+	781	-1	-19	-16.4544826719043	-11	-11	-19	1200	2127
+	782	-2	-18	-15.5884572681199	-11.5	-11	-18	1201	2128
+	783	4	-20	-17.3205080756888	-6.5	-6	-20	1196	2130
+	784	4	-21	-18.1865334794732	-7	-7	-21	1307	2131
+	785	3	-20	-17.3205080756888	-7.5	-7	-20	1197	2132
+	786	3	-21	-18.1865334794732	-8	-8	-21	1308	2133
+	787	2	-19	-16.4544826719043	-8	-8	-19	1081	2134
+	788	2	-20	-17.3205080756888	-8.5	-8	-20	1198	2135
+	789	1	-19	-16.4544826719043	-9	-9	-19	1082	2136
+	790	1	-20	-17.3205080756888	-9.5	-9	-20	1199	2137
+	791	0	-19	-16.4544826719043	-10	-10	-19	1083	2138
+	792	-4	-12	-10.3923048454133	-10.5	-10	-12	772	2200
+	793	-4	-13	-11.2583302491977	-11	-11	-13	871	2201
+	794	-5	-11	-9.52627944162883	-11	-11	-11	773	2202
+	795	-5	-12	-10.3923048454133	-11.5	-11	-12	872	2203
+	796	-5	-13	-11.2583302491977	-12	-12	-13	977	2204
+	797	-6	-11	-9.52627944162883	-12	-12	-11	873	2205
+	798	-6	-12	-10.3923048454133	-12.5	-12	-12	978	2206
+	799	-6	-13	-11.2583302491977	-13	-13	-13	1089	2207
+	800	-7	-11	-9.52627944162883	-13	-13	-11	979	2208
+	801	-7	-12	-10.3923048454133	-13.5	-13	-12	1090	2210
+	802	-7	-13	-11.2583302491977	-14	-14	-13	1206	2211
+	803	-8	-11	-9.52627944162883	-14	-14	-11	1091	2212
+	804	-8	-12	-10.3923048454133	-14.5	-14	-12	1207	2213
+	805	-6	-15	-12.9903810567666	-14	-14	-15	1311	2214
+	806	-7	-14	-12.1243556529821	-14.5	-14	-14	1312	2215
+	807	-7	-15	-12.9903810567666	-15	-15	-15	1394	2216
+	808	-8	-13	-11.2583302491977	-15	-15	-13	1313	2217
+	809	-8	-14	-12.1243556529821	-15.5	-15	-14	1395	2218
+	810	-1	-12	-10.3923048454133	-7.5	-7	-12	508	2220
+	811	-1	-13	-11.2583302491977	-8	-8	-13	589	2221
+	812	-2	-11	-9.52627944162883	-8	-8	-11	509	2222
+	813	-2	-12	-10.3923048454133	-8.5	-8	-12	590	2223
+	814	-2	-13	-11.2583302491977	-9	-9	-13	677	2224
+	815	-3	-11	-9.52627944162883	-9	-9	-11	591	2225
+	816	-3	-12	-10.3923048454133	-9.5	-9	-12	678	2226
+	817	-3	-13	-11.2583302491977	-10	-10	-13	771	2227
+	818	-4	-11	-9.52627944162883	-10	-10	-11	679	2228
+	819	2	-12	-10.3923048454133	-4.5	-4	-12	430	2230
+	820	2	-13	-11.2583302491977	-5	-5	-13	505	2231
+	821	1	-11	-9.52627944162883	-5	-5	-11	362	2232
+	822	1	-12	-10.3923048454133	-5.5	-5	-12	431	2233
+	823	1	-13	-11.2583302491977	-6	-6	-13	506	2234
+	824	0	-11	-9.52627944162883	-6	-6	-11	363	2235
+	825	0	-12	-10.3923048454133	-6.5	-6	-12	432	2236
+	826	0	-13	-11.2583302491977	-7	-7	-13	507	2237
+	827	-1	-11	-9.52627944162883	-7	-7	-11	433	2238
+	828	2	-15	-12.9903810567666	-6	-6	-15	673	2300
+	829	2	-16	-13.856406460551	-6.5	-6	-16	766	2301
+	830	1	-14	-12.1243556529821	-6.5	-6	-14	587	2302
+	831	1	-15	-12.9903810567666	-7	-7	-15	674	2303
+	832	1	-16	-13.856406460551	-7.5	-7	-16	767	2304
+	833	0	-14	-12.1243556529821	-7.5	-7	-14	588	2305
+	834	0	-15	-12.9903810567666	-8	-8	-15	675	2306
+	835	0	-16	-13.856406460551	-8.5	-8	-16	768	2307
+	836	-1	-14	-12.1243556529821	-8.5	-8	-14	676	2308
+	837	5	-15	-12.9903810567666	-3	-3	-15	670	2310
+	838	5	-16	-13.856406460551	-3.5	-3	-16	763	2311
+	839	4	-14	-12.1243556529821	-3.5	-3	-14	584	2312
+	840	4	-15	-12.9903810567666	-4	-4	-15	671	2313
+	841	4	-16	-13.856406460551	-4.5	-4	-16	764	2314
+	842	3	-14	-12.1243556529821	-4.5	-4	-14	585	2315
+	843	3	-15	-12.9903810567666	-5	-5	-15	672	2316
+	844	3	-16	-13.856406460551	-5.5	-5	-16	765	2317
+	845	2	-14	-12.1243556529821	-5.5	-5	-14	586	2318
+	846	5	-12	-10.3923048454133	-1.5	-1	-12	427	2320
+	847	5	-13	-11.2583302491977	-2	-2	-13	502	2321
+	848	4	-11	-9.52627944162883	-2	-2	-11	359	2322
+	849	4	-12	-10.3923048454133	-2.5	-2	-12	428	2323
+	850	4	-13	-11.2583302491977	-3	-3	-13	503	2324
+	851	3	-11	-9.52627944162883	-3	-3	-11	360	2325
+	852	3	-12	-10.3923048454133	-3.5	-3	-12	429	2326
+	853	3	-13	-11.2583302491977	-4	-4	-13	504	2327
+	854	2	-11	-9.52627944162883	-4	-4	-11	361	2328
+	855	8	-15	-12.9903810567666	0	0	-15	667	2330
+	856	8	-16	-13.856406460551	-0.5	0	-16	760	2331
+	857	7	-14	-12.1243556529821	-0.5	0	-14	581	2332
+	858	7	-15	-12.9903810567666	-1	-1	-15	668	2333
+	859	7	-16	-13.856406460551	-1.5	-1	-16	761	2334
+	860	6	-14	-12.1243556529821	-1.5	-1	-14	582	2335
+	861	6	-15	-12.9903810567666	-2	-2	-15	669	2336
+	862	6	-16	-13.856406460551	-2.5	-2	-16	762	2337
+	863	5	-14	-12.1243556529821	-2.5	-2	-14	583	2338
+	864	-11	-8	-6.92820323027551	-15.5	-15	-8	1094	2400
+	865	-11	-9	-7.79422863405995	-16	-16	-9	1210	2401
+	866	-12	-8	-6.92820323027551	-16.5	-16	-8	1211	2402
+	867	-12	-9	-7.79422863405995	-17	-17	-9	1317	2403
+	868	-12	-10	-8.66025403784439	-17.5	-17	-10	1399	2404
+	869	-13	-8	-6.92820323027551	-17.5	-17	-8	1318	2405
+	870	-13	-9	-7.79422863405995	-18	-18	-9	1400	2406
+	871	-14	-7	-6.06217782649107	-18	-18	-7	1319	2407
+	872	-14	-8	-6.92820323027551	-18.5	-18	-8	1401	2408
+	873	-9	-11	-9.52627944162883	-15	-15	-11	1208	2410
+	874	-10	-10	-8.66025403784439	-15.5	-15	-10	1209	2411
+	875	-10	-9	-7.79422863405995	-15	-15	-9	1093	2412
+	876	-11	-10	-8.66025403784439	-16.5	-16	-10	1316	2413
+	877	-10	-11	-9.52627944162883	-16	-16	-11	1315	2414
+	878	-9	-13	-11.2583302491977	-16	-16	-13	1396	2415
+	879	-10	-12	-10.3923048454133	-16.5	-16	-12	1397	2416
+	880	-9	-12	-10.3923048454133	-15.5	-15	-12	1314	2417
+	881	-11	-11	-9.52627944162883	-17	-17	-11	1398	2418
+	882	-7	-9	-7.79422863405995	-12	-12	-9	775	2420
+	883	-7	-10	-8.66025403784439	-12.5	-12	-10	874	2421
+	884	-8	-8	-6.92820323027551	-12.5	-12	-8	776	2422
+	885	-8	-9	-7.79422863405995	-13	-13	-9	875	2423
+	886	-8	-10	-8.66025403784439	-13.5	-13	-10	980	2424
+	887	-9	-8	-6.92820323027551	-13.5	-13	-8	876	2425
+	888	-9	-9	-7.79422863405995	-14	-14	-9	981	2426
+	889	-9	-10	-8.66025403784439	-14.5	-14	-10	1092	2427
+	890	-10	-8	-6.92820323027551	-14.5	-14	-8	982	2428
+	891	-4	-9	-7.79422863405995	-9	-9	-9	511	2430
+	892	-4	-10	-8.66025403784439	-9.5	-9	-10	592	2431
+	893	-5	-8	-6.92820323027551	-9.5	-9	-8	512	2432
+	894	-5	-9	-7.79422863405995	-10	-10	-9	593	2433
+	895	-5	-10	-8.66025403784439	-10.5	-10	-10	680	2434
+	896	-6	-8	-6.92820323027551	-10.5	-10	-8	594	2435
+	897	-6	-9	-7.79422863405995	-11	-11	-9	681	2436
+	898	-6	-10	-8.66025403784439	-11.5	-11	-10	774	2437
+	899	-7	-8	-6.92820323027551	-11.5	-11	-8	682	2438
+	900	-1	-9	-7.79422863405995	-6	-6	-9	301	2500
+	901	-1	-10	-8.66025403784439	-6.5	-6	-10	364	2501
+	902	-2	-8	-6.92820323027551	-6.5	-6	-8	302	2502
+	903	-2	-9	-7.79422863405995	-7	-7	-9	365	2503
+	904	-2	-10	-8.66025403784439	-7.5	-7	-10	434	2504
+	905	-3	-8	-6.92820323027551	-7.5	-7	-8	366	2505
+	906	-3	-9	-7.79422863405995	-8	-8	-9	435	2506
+	907	-3	-10	-8.66025403784439	-8.5	-8	-10	510	2507
+	908	-4	-8	-6.92820323027551	-8.5	-8	-8	436	2508
+	909	2	-9	-7.79422863405995	-3	-3	-9	241	2510
+	910	2	-10	-8.66025403784439	-3.5	-3	-10	298	2511
+	911	1	-8	-6.92820323027551	-3.5	-3	-8	191	2512
+	912	1	-9	-7.79422863405995	-4	-4	-9	242	2513
+	913	1	-10	-8.66025403784439	-4.5	-4	-10	299	2514
+	914	0	-8	-6.92820323027551	-4.5	-4	-8	192	2515
+	915	0	-9	-7.79422863405995	-5	-5	-9	243	2516
+	916	0	-10	-8.66025403784439	-5.5	-5	-10	300	2517
+	917	-1	-8	-6.92820323027551	-5.5	-5	-8	244	2518
+	918	5	-9	-7.79422863405995	0	0	-9	238	2520
+	919	5	-10	-8.66025403784439	-0.5	0	-10	295	2521
+	920	4	-8	-6.92820323027551	-0.5	0	-8	188	2522
+	921	4	-9	-7.79422863405995	-1	-1	-9	239	2523
+	922	4	-10	-8.66025403784439	-1.5	-1	-10	296	2524
+	923	3	-8	-6.92820323027551	-1.5	-1	-8	189	2525
+	924	3	-9	-7.79422863405995	-2	-2	-9	240	2526
+	925	3	-10	-8.66025403784439	-2.5	-2	-10	297	2527
+	926	2	-8	-6.92820323027551	-2.5	-2	-8	190	2528
+	927	8	-12	-10.3923048454133	1.5	2	-12	424	2530
+	928	8	-13	-11.2583302491977	1	1	-13	499	2531
+	929	7	-11	-9.52627944162883	1	1	-11	356	2532
+	930	7	-12	-10.3923048454133	0.5	1	-12	425	2533
+	931	7	-13	-11.2583302491977	0	0	-13	500	2534
+	932	6	-11	-9.52627944162883	0	0	-11	357	2535
+	933	6	-12	-10.3923048454133	-0.5	0	-12	426	2536
+	934	6	-13	-11.2583302491977	-1	-1	-13	501	2537
+	935	5	-11	-9.52627944162883	-1	-1	-11	358	2538
+	936	-13	-6	-5.19615242270663	-16.5	-16	-6	1096	2600
+	937	-13	-7	-6.06217782649107	-17	-17	-7	1212	2601
+	938	-14	-5	-4.33012701892219	-17	-17	-5	1097	2602
+	939	-14	-6	-5.19615242270663	-17.5	-17	-6	1213	2603
+	940	-15	-5	-4.33012701892219	-18	-18	-5	1214	2604
+	941	-15	-6	-5.19615242270663	-18.5	-18	-6	1320	2605
+	942	-16	-4	-3.46410161513775	-18.5	-18	-4	1215	2606
+	943	-16	-5	-4.33012701892219	-19	-19	-5	1321	2607
+	944	-17	-4	-3.46410161513775	-19.5	-19	-4	1322	2608
+	945	-10	-6	-5.19615242270663	-13.5	-13	-6	778	2610
+	946	-10	-7	-6.06217782649107	-14	-14	-7	877	2611
+	947	-11	-5	-4.33012701892219	-14	-14	-5	779	2612
+	948	-11	-6	-5.19615242270663	-14.5	-14	-6	878	2613
+	949	-11	-7	-6.06217782649107	-15	-15	-7	983	2614
+	950	-12	-5	-4.33012701892219	-15	-15	-5	879	2615
+	951	-12	-6	-5.19615242270663	-15.5	-15	-6	984	2616
+	952	-12	-7	-6.06217782649107	-16	-16	-7	1095	2617
+	953	-13	-5	-4.33012701892219	-16	-16	-5	985	2618
+	954	-7	-6	-5.19615242270663	-10.5	-10	-6	514	2620
+	955	-7	-7	-6.06217782649107	-11	-11	-7	595	2621
+	956	-8	-5	-4.33012701892219	-11	-11	-5	515	2622
+	957	-8	-6	-5.19615242270663	-11.5	-11	-6	596	2623
+	958	-8	-7	-6.06217782649107	-12	-12	-7	683	2624
+	959	-9	-5	-4.33012701892219	-12	-12	-5	597	2625
+	960	-9	-6	-5.19615242270663	-12.5	-12	-6	684	2626
+	961	-9	-7	-6.06217782649107	-13	-13	-7	777	2627
+	962	-10	-5	-4.33012701892219	-13	-13	-5	685	2628
+	963	-4	-6	-5.19615242270663	-7.5	-7	-6	304	2630
+	964	-4	-7	-6.06217782649107	-8	-8	-7	367	2631
+	965	-5	-5	-4.33012701892219	-8	-8	-5	305	2632
+	966	-5	-6	-5.19615242270663	-8.5	-8	-6	368	2633
+	967	-5	-7	-6.06217782649107	-9	-9	-7	437	2634
+	968	-6	-5	-4.33012701892219	-9	-9	-5	369	2635
+	969	-6	-6	-5.19615242270663	-9.5	-9	-6	438	2636
+	970	-6	-7	-6.06217782649107	-10	-10	-7	513	2637
+	971	-7	-5	-4.33012701892219	-10	-10	-5	439	2638
+	972	-1	-6	-5.19615242270663	-4.5	-4	-6	148	2700
+	973	-1	-7	-6.06217782649107	-5	-5	-7	193	2701
+	974	-2	-5	-4.33012701892219	-5	-5	-5	149	2702
+	975	-2	-6	-5.19615242270663	-5.5	-5	-6	194	2703
+	976	-2	-7	-6.06217782649107	-6	-6	-7	245	2704
+	977	-3	-5	-4.33012701892219	-6	-6	-5	195	2705
+	978	-3	-6	-5.19615242270663	-6.5	-6	-6	246	2706
+	979	-3	-7	-6.06217782649107	-7	-7	-7	303	2707
+	980	-4	-5	-4.33012701892219	-7	-7	-5	247	2708
+	981	2	-6	-5.19615242270663	-1.5	-1	-6	106	2710
+	982	2	-7	-6.06217782649107	-2	-2	-7	145	2711
+	983	1	-5	-4.33012701892219	-2	-2	-5	74	2712
+	984	1	-6	-5.19615242270663	-2.5	-2	-6	107	2713
+	985	1	-7	-6.06217782649107	-3	-3	-7	146	2714
+	986	0	-5	-4.33012701892219	-3	-3	-5	75	2715
+	987	0	-6	-5.19615242270663	-3.5	-3	-6	108	2716
+	988	0	-7	-6.06217782649107	-4	-4	-7	147	2717
+	989	-1	-5	-4.33012701892219	-4	-4	-5	109	2718
+	990	-1	-3	-2.59807621135332	-3	-3	-3	49	2720
+	991	-1	-4	-3.46410161513775	-3.5	-3	-4	76	2721
+	992	-2	-2	-1.73205080756888	-3.5	-3	-2	50	2722
+	993	-2	-3	-2.59807621135332	-4	-4	-3	77	2723
+	994	-2	-4	-3.46410161513775	-4.5	-4	-4	110	2724
+	995	-3	-2	-1.73205080756888	-4.5	-4	-2	78	2725
+	996	-3	-3	-2.59807621135332	-5	-5	-3	111	2726
+	997	-3	-4	-3.46410161513775	-5.5	-5	-4	150	2727
+	998	-4	-2	-1.73205080756888	-5.5	-5	-2	112	2728
+	999	2	-3	-2.59807621135332	0	0	-3	25	2730
+	1000	2	-4	-3.46410161513775	-0.5	0	-4	46	2731
+	1001	1	-2	-1.73205080756888	-0.5	0	-2	11	2732
+	1002	1	-3	-2.59807621135332	-1	-1	-3	26	2733
+	1003	1	-4	-3.46410161513775	-1.5	-1	-4	47	2734
+	1004	0	-2	-1.73205080756888	-1.5	-1	-2	12	2735
+	1005	0	-3	-2.59807621135332	-2	-2	-3	27	2736
+	1006	0	-4	-3.46410161513775	-2.5	-2	-4	48	2737
+	1007	-1	-2	-1.73205080756888	-2.5	-2	-2	28	2738
+	1008	-13	-3	-2.59807621135332	-15	-15	-3	781	2800
+	1009	-13	-4	-3.46410161513775	-15.5	-15	-4	880	2801
+	1010	-14	-2	-1.73205080756888	-15.5	-15	-2	782	2802
+	1011	-14	-3	-2.59807621135332	-16	-16	-3	881	2803
+	1012	-14	-4	-3.46410161513775	-16.5	-16	-4	986	2804
+	1013	-15	-2	-1.73205080756888	-16.5	-16	-2	882	2805
+	1014	-15	-3	-2.59807621135332	-17	-17	-3	987	2806
+	1015	-15	-4	-3.46410161513775	-17.5	-17	-4	1098	2807
+	1016	-16	-2	-1.73205080756888	-17.5	-17	-2	988	2808
+	1017	-10	-3	-2.59807621135332	-12	-12	-3	517	2810
+	1018	-10	-4	-3.46410161513775	-12.5	-12	-4	598	2811
+	1019	-11	-2	-1.73205080756888	-12.5	-12	-2	518	2812
+	1020	-11	-3	-2.59807621135332	-13	-13	-3	599	2813
+	1021	-11	-4	-3.46410161513775	-13.5	-13	-4	686	2814
+	1022	-12	-2	-1.73205080756888	-13.5	-13	-2	600	2815
+	1023	-12	-3	-2.59807621135332	-14	-14	-3	687	2816
+	1024	-12	-4	-3.46410161513775	-14.5	-14	-4	780	2817
+	1025	-13	-2	-1.73205080756888	-14.5	-14	-2	688	2818
+	1026	-7	-3	-2.59807621135332	-9	-9	-3	307	2820
+	1027	-7	-4	-3.46410161513775	-9.5	-9	-4	370	2821
+	1028	-8	-2	-1.73205080756888	-9.5	-9	-2	308	2822
+	1029	-8	-3	-2.59807621135332	-10	-10	-3	371	2823
+	1030	-8	-4	-3.46410161513775	-10.5	-10	-4	440	2824
+	1031	-9	-2	-1.73205080756888	-10.5	-10	-2	372	2825
+	1032	-9	-3	-2.59807621135332	-11	-11	-3	441	2826
+	1033	-9	-4	-3.46410161513775	-11.5	-11	-4	516	2827
+	1034	-10	-2	-1.73205080756888	-11.5	-11	-2	442	2828
+	1035	-4	-3	-2.59807621135332	-6	-6	-3	151	2830
+	1036	-4	-4	-3.46410161513775	-6.5	-6	-4	196	2831
+	1037	-5	-2	-1.73205080756888	-6.5	-6	-2	152	2832
+	1038	-5	-3	-2.59807621135332	-7	-7	-3	197	2833
+	1039	-5	-4	-3.46410161513775	-7.5	-7	-4	248	2834
+	1040	-6	-2	-1.73205080756888	-7.5	-7	-2	198	2835
+	1041	-6	-3	-2.59807621135332	-8	-8	-3	249	2836
+	1042	-6	-4	-3.46410161513775	-8.5	-8	-4	306	2837
+	1043	-7	-2	-1.73205080756888	-8.5	-8	-2	250	2838
+	1044	-16	0	0	-16.5	-16	0	784	2900
+	1045	-16	-1	-0.866025403784439	-17	-17	-1	883	2901
+	1046	-17	1	0.866025403784439	-17	-17	1	885	2902
+	1047	-17	0	0	-17.5	-17	0	884	2903
+	1048	-18	1	0.866025403784439	-18	-18	1	991	2904
+	1049	-19	3	2.59807621135332	-18	-18	3	1105	2905
+	1050	-19	2	1.73205080756888	-18.5	-18	2	1104	2906
+	1051	-20	3	2.59807621135332	-19	-19	3	1219	2907
+	1052	-20	2	1.73205080756888	-19.5	-19	2	1218	2908
+	1053	-16	-3	-2.59807621135332	-18	-18	-3	1099	2910
+	1054	-17	-1	-0.866025403784439	-18	-18	-1	989	2911
+	1055	-17	-2	-1.73205080756888	-18.5	-18	-2	1100	2912
+	1056	-17	-3	-2.59807621135332	-19	-19	-3	1216	2913
+	1057	-18	0	0	-18.5	-18	0	990	2914
+	1058	-18	-1	-0.866025403784439	-19	-19	-1	1101	2915
+	1059	-19	1	0.866025403784439	-19	-19	1	1103	2916
+	1060	-18	-2	-1.73205080756888	-19.5	-19	-2	1217	2917
+	1061	-19	0	0	-19.5	-19	0	1102	2918
+	1062	-13	0	0	-13.5	-13	0	520	2920
+	1063	-13	-1	-0.866025403784439	-14	-14	-1	601	2921
+	1064	-14	1	0.866025403784439	-14	-14	1	603	2922
+	1065	-14	0	0	-14.5	-14	0	602	2923
+	1066	-14	-1	-0.866025403784439	-15	-15	-1	689	2924
+	1067	-15	1	0.866025403784439	-15	-15	1	691	2925
+	1068	-15	0	0	-15.5	-15	0	690	2926
+	1069	-15	-1	-0.866025403784439	-16	-16	-1	783	2927
+	1070	-16	1	0.866025403784439	-16	-16	1	785	2928
+	1071	-10	0	0	-10.5	-10	0	310	2930
+	1072	-10	-1	-0.866025403784439	-11	-11	-1	373	2931
+	1073	-11	1	0.866025403784439	-11	-11	1	375	2932
+	1074	-11	0	0	-11.5	-11	0	374	2933
+	1075	-11	-1	-0.866025403784439	-12	-12	-1	443	2934
+	1076	-12	1	0.866025403784439	-12	-12	1	445	2935
+	1077	-12	0	0	-12.5	-12	0	444	2936
+	1078	-12	-1	-0.866025403784439	-13	-13	-1	519	2937
+	1079	-13	1	0.866025403784439	-13	-13	1	521	2938
+	1080	-7	0	0	-7.5	-7	0	154	3000
+	1081	-7	-1	-0.866025403784439	-8	-8	-1	199	3001
+	1082	-8	1	0.866025403784439	-8	-8	1	201	3002
+	1083	-8	0	0	-8.5	-8	0	200	3003
+	1084	-8	-1	-0.866025403784439	-9	-9	-1	251	3004
+	1085	-9	1	0.866025403784439	-9	-9	1	253	3005
+	1086	-9	0	0	-9.5	-9	0	252	3006
+	1087	-9	-1	-0.866025403784439	-10	-10	-1	309	3007
+	1088	-10	1	0.866025403784439	-10	-10	1	311	3008
+	1089	-4	0	0	-4.5	-4	0	52	3010
+	1090	-4	-1	-0.866025403784439	-5	-5	-1	79	3011
+	1091	-5	1	0.866025403784439	-5	-5	1	81	3012
+	1092	-5	0	0	-5.5	-5	0	80	3013
+	1093	-5	-1	-0.866025403784439	-6	-6	-1	113	3014
+	1094	-6	1	0.866025403784439	-6	-6	1	115	3015
+	1095	-6	0	0	-6.5	-6	0	114	3016
+	1096	-6	-1	-0.866025403784439	-7	-7	-1	153	3017
+	1097	-7	1	0.866025403784439	-7	-7	1	155	3018
+	1098	-1	0	0	-1.5	-1	0	4	3020
+	1099	-1	-1	-0.866025403784439	-2	-2	-1	13	3021
+	1100	-2	1	0.866025403784439	-2	-2	1	15	3022
+	1101	-2	0	0	-2.5	-2	0	14	3023
+	1102	-2	-1	-0.866025403784439	-3	-3	-1	29	3024
+	1103	-3	1	0.866025403784439	-3	-3	1	31	3025
+	1104	-3	0	0	-3.5	-3	0	30	3026
+	1105	-3	-1	-0.866025403784439	-4	-4	-1	51	3027
+	1106	-4	1	0.866025403784439	-4	-4	1	53	3028
+	1107	-1	3	2.59807621135332	0	0	3	35	3030
+	1108	-1	2	1.73205080756888	-0.5	0	2	17	3031
+	1109	-2	4	3.46410161513775	-0.5	0	4	58	3032
+	1110	-2	3	2.59807621135332	-1	-1	3	34	3033
+	1111	-2	2	1.73205080756888	-1.5	-1	2	16	3034
+	1112	-3	4	3.46410161513775	-1.5	-1	4	57	3035
+	1113	-3	3	2.59807621135332	-2	-2	3	33	3036
+	1114	-3	2	1.73205080756888	-2.5	-2	2	32	3037
+	1115	-4	4	3.46410161513775	-2.5	-2	4	56	3038
+	1116	-7	3	2.59807621135332	-6	-6	3	157	3100
+	1117	-7	2	1.73205080756888	-6.5	-6	2	156	3101
+	1118	-8	4	3.46410161513775	-6.5	-6	4	204	3102
+	1119	-8	3	2.59807621135332	-7	-7	3	203	3103
+	1120	-8	2	1.73205080756888	-7.5	-7	2	202	3104
+	1121	-9	4	3.46410161513775	-7.5	-7	4	256	3105
+	1122	-9	3	2.59807621135332	-8	-8	3	255	3106
+	1123	-9	2	1.73205080756888	-8.5	-8	2	254	3107
+	1124	-10	4	3.46410161513775	-8.5	-8	4	314	3108
+	1125	-4	3	2.59807621135332	-3	-3	3	55	3110
+	1126	-4	2	1.73205080756888	-3.5	-3	2	54	3111
+	1127	-5	4	3.46410161513775	-3.5	-3	4	84	3112
+	1128	-5	3	2.59807621135332	-4	-4	3	83	3113
+	1129	-5	2	1.73205080756888	-4.5	-4	2	82	3114
+	1130	-6	4	3.46410161513775	-4.5	-4	4	118	3115
+	1131	-6	3	2.59807621135332	-5	-5	3	117	3116
+	1132	-6	2	1.73205080756888	-5.5	-5	2	116	3117
+	1133	-7	4	3.46410161513775	-5.5	-5	4	158	3118
+	1134	-4	6	5.19615242270663	-1.5	-1	6	122	3120
+	1135	-4	5	4.33012701892219	-2	-2	5	86	3121
+	1136	-5	7	6.06217782649107	-2	-2	7	163	3122
+	1137	-5	6	5.19615242270663	-2.5	-2	6	121	3123
+	1138	-5	5	4.33012701892219	-3	-3	5	85	3124
+	1139	-6	7	6.06217782649107	-3	-3	7	162	3125
+	1140	-6	6	5.19615242270663	-3.5	-3	6	120	3126
+	1141	-6	5	4.33012701892219	-4	-4	5	119	3127
+	1142	-7	7	6.06217782649107	-4	-4	7	161	3128
+	1143	-1	6	5.19615242270663	1.5	2	6	125	3130
+	1144	-1	5	4.33012701892219	1	1	5	89	3131
+	1145	-2	7	6.06217782649107	1	1	7	166	3132
+	1146	-2	6	5.19615242270663	0.5	1	6	124	3133
+	1147	-2	5	4.33012701892219	0	0	5	88	3134
+	1148	-3	7	6.06217782649107	0	0	7	165	3135
+	1149	-3	6	5.19615242270663	-0.5	0	6	123	3136
+	1150	-3	5	4.33012701892219	-1	-1	5	87	3137
+	1151	-4	7	6.06217782649107	-1	-1	7	164	3138
+	1152	-19	6	5.19615242270663	-16.5	-16	6	1108	3200
+	1153	-19	5	4.33012701892219	-17	-17	5	1107	3201
+	1154	-20	7	6.06217782649107	-17	-17	7	1223	3202
+	1155	-20	6	5.19615242270663	-17.5	-17	6	1222	3203
+	1156	-20	5	4.33012701892219	-18	-18	5	1221	3204
+	1157	-20	4	3.46410161513775	-18.5	-18	4	1220	3205
+	1158	-21	6	5.19615242270663	-18.5	-18	6	1325	3206
+	1159	-21	5	4.33012701892219	-19	-19	5	1324	3207
+	1160	-21	4	3.46410161513775	-19.5	-19	4	1323	3208
+	1161	-16	3	2.59807621135332	-15	-15	3	787	3210
+	1162	-16	2	1.73205080756888	-15.5	-15	2	786	3211
+	1163	-17	4	3.46410161513775	-15.5	-15	4	888	3212
+	1164	-17	3	2.59807621135332	-16	-16	3	887	3213
+	1165	-17	2	1.73205080756888	-16.5	-16	2	886	3214
+	1166	-18	4	3.46410161513775	-16.5	-16	4	994	3215
+	1167	-18	3	2.59807621135332	-17	-17	3	993	3216
+	1168	-18	2	1.73205080756888	-17.5	-17	2	992	3217
+	1169	-19	4	3.46410161513775	-17.5	-17	4	1106	3218
+	1170	-13	3	2.59807621135332	-12	-12	3	523	3220
+	1171	-13	2	1.73205080756888	-12.5	-12	2	522	3221
+	1172	-14	4	3.46410161513775	-12.5	-12	4	606	3222
+	1173	-14	3	2.59807621135332	-13	-13	3	605	3223
+	1174	-14	2	1.73205080756888	-13.5	-13	2	604	3224
+	1175	-15	4	3.46410161513775	-13.5	-13	4	694	3225
+	1176	-15	3	2.59807621135332	-14	-14	3	693	3226
+	1177	-15	2	1.73205080756888	-14.5	-14	2	692	3227
+	1178	-16	4	3.46410161513775	-14.5	-14	4	788	3228
+	1179	-10	3	2.59807621135332	-9	-9	3	313	3230
+	1180	-10	2	1.73205080756888	-9.5	-9	2	312	3231
+	1181	-11	4	3.46410161513775	-9.5	-9	4	378	3232
+	1182	-11	3	2.59807621135332	-10	-10	3	377	3233
+	1183	-11	2	1.73205080756888	-10.5	-10	2	376	3234
+	1184	-12	4	3.46410161513775	-10.5	-10	4	448	3235
+	1185	-12	3	2.59807621135332	-11	-11	3	447	3236
+	1186	-12	2	1.73205080756888	-11.5	-11	2	446	3237
+	1187	-13	4	3.46410161513775	-11.5	-11	4	524	3238
+	1188	-19	8	6.92820323027551	-15.5	-15	8	1110	3300
+	1189	-20	9	7.79422863405995	-16	-16	9	1225	3301
+	1190	-20	8	6.92820323027551	-16.5	-16	8	1224	3302
+	1191	-21	9	7.79422863405995	-17	-17	9	1328	3303
+	1192	-21	8	6.92820323027551	-17.5	-17	8	1327	3304
+	1193	-22	10	8.66025403784439	-17.5	-17	10	1404	3305
+	1194	-21	7	6.06217782649107	-18	-18	7	1326	3306
+	1195	-22	9	7.79422863405995	-18	-18	9	1403	3307
+	1196	-22	8	6.92820323027551	-18.5	-18	8	1402	3308
+	1197	-16	6	5.19615242270663	-13.5	-13	6	790	3310
+	1198	-16	5	4.33012701892219	-14	-14	5	789	3311
+	1199	-17	7	6.06217782649107	-14	-14	7	891	3312
+	1200	-17	6	5.19615242270663	-14.5	-14	6	890	3313
+	1201	-17	5	4.33012701892219	-15	-15	5	889	3314
+	1202	-18	7	6.06217782649107	-15	-15	7	997	3315
+	1203	-18	6	5.19615242270663	-15.5	-15	6	996	3316
+	1204	-18	5	4.33012701892219	-16	-16	5	995	3317
+	1205	-19	7	6.06217782649107	-16	-16	7	1109	3318
+	1206	-13	6	5.19615242270663	-10.5	-10	6	526	3320
+	1207	-13	5	4.33012701892219	-11	-11	5	525	3321
+	1208	-14	7	6.06217782649107	-11	-11	7	609	3322
+	1209	-14	6	5.19615242270663	-11.5	-11	6	608	3323
+	1210	-14	5	4.33012701892219	-12	-12	5	607	3324
+	1211	-15	7	6.06217782649107	-12	-12	7	697	3325
+	1212	-15	6	5.19615242270663	-12.5	-12	6	696	3326
+	1213	-15	5	4.33012701892219	-13	-13	5	695	3327
+	1214	-16	7	6.06217782649107	-13	-13	7	791	3328
+	1215	-10	6	5.19615242270663	-7.5	-7	6	316	3330
+	1216	-10	5	4.33012701892219	-8	-8	5	315	3331
+	1217	-11	7	6.06217782649107	-8	-8	7	381	3332
+	1218	-11	6	5.19615242270663	-8.5	-8	6	380	3333
+	1219	-11	5	4.33012701892219	-9	-9	5	379	3334
+	1220	-12	7	6.06217782649107	-9	-9	7	451	3335
+	1221	-12	6	5.19615242270663	-9.5	-9	6	450	3336
+	1222	-12	5	4.33012701892219	-10	-10	5	449	3337
+	1223	-13	7	6.06217782649107	-10	-10	7	527	3338
+	1224	-7	9	7.79422863405995	-3	-3	9	263	3400
+	1225	-7	8	6.92820323027551	-3.5	-3	8	209	3401
+	1226	-8	10	8.66025403784439	-3.5	-3	10	322	3402
+	1227	-8	9	7.79422863405995	-4	-4	9	262	3403
+	1228	-8	8	6.92820323027551	-4.5	-4	8	208	3404
+	1229	-9	10	8.66025403784439	-4.5	-4	10	321	3405
+	1230	-9	9	7.79422863405995	-5	-5	9	261	3406
+	1231	-9	8	6.92820323027551	-5.5	-5	8	260	3407
+	1232	-10	10	8.66025403784439	-5.5	-5	10	320	3408
+	1233	-7	6	5.19615242270663	-4.5	-4	6	160	3410
+	1234	-7	5	4.33012701892219	-5	-5	5	159	3411
+	1235	-8	7	6.06217782649107	-5	-5	7	207	3412
+	1236	-8	6	5.19615242270663	-5.5	-5	6	206	3413
+	1237	-8	5	4.33012701892219	-6	-6	5	205	3414
+	1238	-9	7	6.06217782649107	-6	-6	7	259	3415
+	1239	-9	6	5.19615242270663	-6.5	-6	6	258	3416
+	1240	-9	5	4.33012701892219	-7	-7	5	257	3417
+	1241	-10	7	6.06217782649107	-7	-7	7	317	3418
+	1242	-7	12	10.3923048454133	-1.5	-1	12	461	3420
+	1243	-7	11	9.52627944162883	-2	-2	11	389	3421
+	1244	-8	13	11.2583302491977	-2	-2	13	538	3422
+	1245	-8	12	10.3923048454133	-2.5	-2	12	460	3423
+	1246	-8	11	9.52627944162883	-3	-3	11	388	3424
+	1247	-9	13	11.2583302491977	-3	-3	13	537	3425
+	1248	-9	12	10.3923048454133	-3.5	-3	12	459	3426
+	1249	-9	11	9.52627944162883	-4	-4	11	387	3427
+	1250	-10	13	11.2583302491977	-4	-4	13	536	3428
+	1251	-4	9	7.79422863405995	0	0	9	266	3430
+	1252	-4	8	6.92820323027551	-0.5	0	8	212	3431
+	1253	-5	10	8.66025403784439	-0.5	0	10	325	3432
+	1254	-5	9	7.79422863405995	-1	-1	9	265	3433
+	1255	-5	8	6.92820323027551	-1.5	-1	8	211	3434
+	1256	-6	10	8.66025403784439	-1.5	-1	10	324	3435
+	1257	-6	9	7.79422863405995	-2	-2	9	264	3436
+	1258	-6	8	6.92820323027551	-2.5	-2	8	210	3437
+	1259	-7	10	8.66025403784439	-2.5	-2	10	323	3438
+	1260	-19	9	7.79422863405995	-15	-15	9	1111	3500
+	1261	-20	11	9.52627944162883	-15	-15	11	1227	3501
+	1262	-20	10	8.66025403784439	-15.5	-15	10	1226	3502
+	1263	-21	10	8.66025403784439	-16.5	-16	10	1329	3503
+	1264	-21	12	10.3923048454133	-15.5	-15	12	1331	3504
+	1265	-21	11	9.52627944162883	-16	-16	11	1330	3505
+	1266	-22	13	11.2583302491977	-16	-16	13	1407	3506
+	1267	-22	12	10.3923048454133	-16.5	-16	12	1406	3507
+	1268	-22	11	9.52627944162883	-17	-17	11	1405	3508
+	1269	-16	9	7.79422863405995	-12	-12	9	793	3510
+	1270	-16	8	6.92820323027551	-12.5	-12	8	792	3511
+	1271	-17	10	8.66025403784439	-12.5	-12	10	894	3512
+	1272	-17	9	7.79422863405995	-13	-13	9	893	3513
+	1273	-17	8	6.92820323027551	-13.5	-13	8	892	3514
+	1274	-18	10	8.66025403784439	-13.5	-13	10	1000	3515
+	1275	-18	9	7.79422863405995	-14	-14	9	999	3516
+	1276	-18	8	6.92820323027551	-14.5	-14	8	998	3517
+	1277	-19	10	8.66025403784439	-14.5	-14	10	1112	3518
+	1278	-13	9	7.79422863405995	-9	-9	9	529	3520
+	1279	-13	8	6.92820323027551	-9.5	-9	8	528	3521
+	1280	-14	10	8.66025403784439	-9.5	-9	10	612	3522
+	1281	-14	9	7.79422863405995	-10	-10	9	611	3523
+	1282	-14	8	6.92820323027551	-10.5	-10	8	610	3524
+	1283	-15	10	8.66025403784439	-10.5	-10	10	700	3525
+	1284	-15	9	7.79422863405995	-11	-11	9	699	3526
+	1285	-15	8	6.92820323027551	-11.5	-11	8	698	3527
+	1286	-16	10	8.66025403784439	-11.5	-11	10	794	3528
+	1287	-10	9	7.79422863405995	-6	-6	9	319	3530
+	1288	-10	8	6.92820323027551	-6.5	-6	8	318	3531
+	1289	-11	10	8.66025403784439	-6.5	-6	10	384	3532
+	1290	-11	9	7.79422863405995	-7	-7	9	383	3533
+	1291	-11	8	6.92820323027551	-7.5	-7	8	382	3534
+	1292	-12	10	8.66025403784439	-7.5	-7	10	454	3535
+	1293	-12	9	7.79422863405995	-8	-8	9	453	3536
+	1294	-12	8	6.92820323027551	-8.5	-8	8	452	3537
+	1295	-13	10	8.66025403784439	-8.5	-8	10	530	3538
+	1296	-19	12	10.3923048454133	-13.5	-13	12	1114	3600
+	1297	-19	11	9.52627944162883	-14	-14	11	1113	3601
+	1298	-20	13	11.2583302491977	-14	-14	13	1229	3602
+	1299	-20	12	10.3923048454133	-14.5	-14	12	1228	3603
+	1300	-21	15	12.9903810567666	-14	-14	15	1334	3604
+	1301	-21	14	12.1243556529821	-14.5	-14	14	1333	3605
+	1302	-21	13	11.2583302491977	-15	-15	13	1332	3606
+	1303	-22	15	12.9903810567666	-15	-15	15	1409	3607
+	1304	-22	14	12.1243556529821	-15.5	-15	14	1408	3608
+	1305	-16	12	10.3923048454133	-10.5	-10	12	796	3610
+	1306	-16	11	9.52627944162883	-11	-11	11	795	3611
+	1307	-17	13	11.2583302491977	-11	-11	13	897	3612
+	1308	-17	12	10.3923048454133	-11.5	-11	12	896	3613
+	1309	-17	11	9.52627944162883	-12	-12	11	895	3614
+	1310	-18	13	11.2583302491977	-12	-12	13	1003	3615
+	1311	-18	12	10.3923048454133	-12.5	-12	12	1002	3616
+	1312	-18	11	9.52627944162883	-13	-13	11	1001	3617
+	1313	-19	13	11.2583302491977	-13	-13	13	1115	3618
+	1314	-13	12	10.3923048454133	-7.5	-7	12	532	3620
+	1315	-13	11	9.52627944162883	-8	-8	11	531	3621
+	1316	-14	13	11.2583302491977	-8	-8	13	615	3622
+	1317	-14	12	10.3923048454133	-8.5	-8	12	614	3623
+	1318	-14	11	9.52627944162883	-9	-9	11	613	3624
+	1319	-15	13	11.2583302491977	-9	-9	13	703	3625
+	1320	-15	12	10.3923048454133	-9.5	-9	12	702	3626
+	1321	-15	11	9.52627944162883	-10	-10	11	701	3627
+	1322	-16	13	11.2583302491977	-10	-10	13	797	3628
+	1323	-10	12	10.3923048454133	-4.5	-4	12	458	3630
+	1324	-10	11	9.52627944162883	-5	-5	11	386	3631
+	1325	-11	13	11.2583302491977	-5	-5	13	535	3632
+	1326	-11	12	10.3923048454133	-5.5	-5	12	457	3633
+	1327	-11	11	9.52627944162883	-6	-6	11	385	3634
+	1328	-12	13	11.2583302491977	-6	-6	13	534	3635
+	1329	-12	12	10.3923048454133	-6.5	-6	12	456	3636
+	1330	-12	11	9.52627944162883	-7	-7	11	455	3637
+	1331	-13	13	11.2583302491977	-7	-7	13	533	3638
+	1332	-19	17	14.7224318643355	-11	-11	17	1119	3700
+	1333	-20	17	14.7224318643355	-12	-12	17	1233	3701
+	1334	-20	16	13.856406460551	-12.5	-12	16	1232	3702
+	1335	-21	17	14.7224318643355	-13	-13	17	1336	3703
+	1336	-19	15	12.9903810567666	-12	-12	15	1117	3704
+	1337	-19	14	12.1243556529821	-12.5	-12	14	1116	3705
+	1338	-20	15	12.9903810567666	-13	-13	15	1231	3706
+	1339	-20	14	12.1243556529821	-13.5	-13	14	1230	3707
+	1340	-21	16	13.856406460551	-13.5	-13	16	1335	3708
+	1341	-16	15	12.9903810567666	-9	-9	15	799	3710
+	1342	-16	14	12.1243556529821	-9.5	-9	14	798	3711
+	1343	-17	16	13.856406460551	-9.5	-9	16	900	3712
+	1344	-17	15	12.9903810567666	-10	-10	15	899	3713
+	1345	-17	14	12.1243556529821	-10.5	-10	14	898	3714
+	1346	-18	16	13.856406460551	-10.5	-10	16	1006	3715
+	1347	-18	15	12.9903810567666	-11	-11	15	1005	3716
+	1348	-18	14	12.1243556529821	-11.5	-11	14	1004	3717
+	1349	-19	16	13.856406460551	-11.5	-11	16	1118	3718
+	1350	-16	18	15.5884572681199	-7.5	-7	18	1010	3720
+	1351	-16	17	14.7224318643355	-8	-8	17	902	3721
+	1352	-17	18	15.5884572681199	-8.5	-8	18	1009	3722
+	1353	-17	17	14.7224318643355	-9	-9	17	901	3723
+	1354	-18	18	15.5884572681199	-9.5	-9	18	1008	3724
+	1355	-18	17	14.7224318643355	-10	-10	17	1007	3725
+	1356	-19	18	15.5884572681199	-10.5	-10	18	1120	3726
+	1357	-20	19	16.4544826719043	-11	-11	19	1235	3727
+	1358	-20	18	15.5884572681199	-11.5	-11	18	1234	3728
+	1359	-13	15	12.9903810567666	-6	-6	15	707	3730
+	1360	-13	14	12.1243556529821	-6.5	-6	14	617	3731
+	1361	-14	16	13.856406460551	-6.5	-6	16	802	3732
+	1362	-14	15	12.9903810567666	-7	-7	15	706	3733
+	1363	-14	14	12.1243556529821	-7.5	-7	14	616	3734
+	1364	-15	16	13.856406460551	-7.5	-7	16	801	3735
+	1365	-15	15	12.9903810567666	-8	-8	15	705	3736
+	1366	-15	14	12.1243556529821	-8.5	-8	14	704	3737
+	1367	-16	16	13.856406460551	-8.5	-8	16	800	3738
+	1368	-10	15	12.9903810567666	-3	-3	15	710	3800
+	1369	-10	14	12.1243556529821	-3.5	-3	14	620	3801
+	1370	-11	16	13.856406460551	-3.5	-3	16	805	3802
+	1371	-11	15	12.9903810567666	-4	-4	15	709	3803
+	1372	-11	14	12.1243556529821	-4.5	-4	14	619	3804
+	1373	-12	16	13.856406460551	-4.5	-4	16	804	3805
+	1374	-12	15	12.9903810567666	-5	-5	15	708	3806
+	1375	-12	14	12.1243556529821	-5.5	-5	14	618	3807
+	1376	-13	16	13.856406460551	-5.5	-5	16	803	3808
+	1377	-7	15	12.9903810567666	0	0	15	713	3810
+	1378	-7	14	12.1243556529821	-0.5	0	14	623	3811
+	1379	-8	16	13.856406460551	-0.5	0	16	808	3812
+	1380	-8	15	12.9903810567666	-1	-1	15	712	3813
+	1381	-8	14	12.1243556529821	-1.5	-1	14	622	3814
+	1382	-9	16	13.856406460551	-1.5	-1	16	807	3815
+	1383	-9	15	12.9903810567666	-2	-2	15	711	3816
+	1384	-9	14	12.1243556529821	-2.5	-2	14	621	3817
+	1385	-10	16	13.856406460551	-2.5	-2	16	806	3818
+	1386	-10	18	15.5884572681199	-1.5	-1	18	1016	3820
+	1387	-10	17	14.7224318643355	-2	-2	17	908	3821
+	1388	-11	19	16.4544826719043	-2	-2	19	1129	3822
+	1389	-11	18	15.5884572681199	-2.5	-2	18	1015	3823
+	1390	-11	17	14.7224318643355	-3	-3	17	907	3824
+	1391	-12	19	16.4544826719043	-3	-3	19	1128	3825
+	1392	-12	18	15.5884572681199	-3.5	-3	18	1014	3826
+	1393	-12	17	14.7224318643355	-4	-4	17	906	3827
+	1394	-13	19	16.4544826719043	-4	-4	19	1127	3828
+	1395	-7	18	15.5884572681199	1.5	2	18	1019	3830
+	1396	-7	17	14.7224318643355	1	1	17	911	3831
+	1397	-8	19	16.4544826719043	1	1	19	1132	3832
+	1398	-8	18	15.5884572681199	0.5	1	18	1018	3833
+	1399	-8	17	14.7224318643355	0	0	17	910	3834
+	1400	-9	19	16.4544826719043	0	0	19	1131	3835
+	1401	-9	18	15.5884572681199	-0.5	0	18	1017	3836
+	1402	-9	17	14.7224318643355	-1	-1	17	909	3837
+	1403	-10	19	16.4544826719043	-1	-1	19	1130	3838
+	1404	-16	20	17.3205080756888	-6.5	-6	20	1239	3900
+	1405	-17	21	18.1865334794732	-7	-7	21	1338	3901
+	1406	-17	20	17.3205080756888	-7.5	-7	20	1238	3902
+	1407	-18	21	18.1865334794732	-8	-8	21	1337	3903
+	1408	-17	19	16.4544826719043	-8	-8	19	1123	3904
+	1409	-18	20	17.3205080756888	-8.5	-8	20	1237	3905
+	1410	-18	19	16.4544826719043	-9	-9	19	1122	3906
+	1411	-19	20	17.3205080756888	-9.5	-9	20	1236	3907
+	1412	-19	19	16.4544826719043	-10	-10	19	1121	3908
+	1413	-13	18	15.5884572681199	-4.5	-4	18	1013	3910
+	1414	-13	17	14.7224318643355	-5	-5	17	905	3911
+	1415	-14	19	16.4544826719043	-5	-5	19	1126	3912
+	1416	-14	18	15.5884572681199	-5.5	-5	18	1012	3913
+	1417	-14	17	14.7224318643355	-6	-6	17	904	3914
+	1418	-15	19	16.4544826719043	-6	-6	19	1125	3915
+	1419	-15	18	15.5884572681199	-6.5	-6	18	1011	3916
+	1420	-15	17	14.7224318643355	-7	-7	17	903	3917
+	1421	-16	19	16.4544826719043	-7	-7	19	1124	3918
+	1422	-16	21	18.1865334794732	-6	-6	21	1339	3920
+	1423	-16	22	19.0525588832576	-5.5	-5	22	1410	3921
+	1424	-15	20	17.3205080756888	-5.5	-5	20	1240	3922
+	1425	-15	21	18.1865334794732	-5	-5	21	1340	3923
+	1426	-15	22	19.0525588832576	-4.5	-4	22	1411	3924
+	1427	-14	20	17.3205080756888	-4.5	-4	20	1241	3925
+	1428	-14	21	18.1865334794732	-4	-4	21	1341	3926
+	1429	-14	22	19.0525588832576	-3.5	-3	22	1412	3927
+	1430	-13	20	17.3205080756888	-3.5	-3	20	1242	3928
+	1431	-13	21	18.1865334794732	-3	-3	21	1342	3930
+	1432	-13	22	19.0525588832576	-2.5	-2	22	1413	3931
+	1433	-12	20	17.3205080756888	-2.5	-2	20	1243	3932
+	1434	-12	21	18.1865334794732	-2	-2	21	1343	3933
+	1435	-12	22	19.0525588832576	-1.5	-1	22	1414	3934
+	1436	-11	20	17.3205080756888	-1.5	-1	20	1244	3935
+	1437	-11	21	18.1865334794732	-1	-1	21	1344	3936
+	1438	-11	22	19.0525588832576	-0.5	0	22	1415	3937
+	1439	-10	20	17.3205080756888	-0.5	0	20	1245	3938
Index: /fact/tools/pyscripts/sandbox/vogler/plotters.py
===================================================================
--- /fact/tools/pyscripts/sandbox/vogler/plotters.py	(revision 14173)
+++ /fact/tools/pyscripts/sandbox/vogler/plotters.py	(revision 14173)
@@ -0,0 +1,395 @@
+#!/usr/bin/python -tt
+#
+# Werner Lustermann, Dominik Neise
+# ETH Zurich, TU Dortmund
+#
+# plotter.py
+
+import numpy as np
+import matplotlib.pyplot as plt
+import os.path
+import sys
+
+# this class was formerly called Plotter in the depricated
+# module plotter.py
+class SimplePlotter(object):
+    """ simple x-y plot """
+    def __init__(self, name, x, style = 'b', xlabel='x', ylabel='y'):
+        """ initialize the object """
+        
+        self.name  = name
+        self.fig   = plt.figure()
+        self.line, = plt.plot(x, style)
+        
+        plt.title(name)
+        plt.xlabel(xlabel)
+        plt.ylabel(ylabel)
+        plt.grid(True)
+           
+    def __call__(self, ydata):
+        """ set ydata of plot """
+        plt.figure(self.fig.number)
+        plt.ylim( np.min(ydata), np.max(ydata) )
+        self.line.set_ydata(ydata)
+        plt.draw()
+            
+class Plotter(object):
+    """ simple x-y plot """
+    def __init__(self, name, x=None, style = '.:', xlabel='x', ylabel='y', ion=True, grid=True, fname=None):
+        """ initialize the object """
+                
+        self.name  = name
+        self.x = x
+        self.style = style
+        self.xlabel = xlabel
+        self.ylabel = ylabel
+        
+        #not sure if this should go here
+        if ion:
+            plt.ion()
+
+        self.figure = plt.figure()
+        self.fig_id = self.figure.number
+        
+        plt.grid(grid)
+        self.grid = grid
+        self.fname = fname
+           
+    def __call__(self, ydata, label=None):
+        """ set ydata of plot """
+        style = self.style
+        
+        # make acitve and clear
+        plt.figure(self.fig_id)
+        plt.cla()
+        
+        # the following if else stuff is horrible,
+        # but I want all those possibilities, .... still working on it.
+        
+        # check if 1Dim oder 2Dim
+        ydata = np.array(ydata)
+        if ydata.ndim ==1:
+            if self.x==None:
+                plt.plot(ydata, self.style, label=label)
+            else:
+                plt.plot(self.x, ydata, self.style, label=label)
+        else:
+            for i in range(len(ydata)):
+                if self.x==None:
+                    if label:
+                        plt.plot(ydata[i], style, label=label[i])
+                    else:
+                        plt.plot(ydata[i], style)
+                else:
+                    if label:
+                        plt.plot(self.x, ydata[i], style, label=label[i])
+                    else:
+                        plt.plot(self.x, ydata[i], style)
+        plt.title(self.name)
+        plt.xlabel(self.xlabel)
+        plt.ylabel(self.ylabel)
+        if label:
+            plt.legend()
+        
+        if self.fname != None:
+            plt.savefig(self.fname)
+        
+        plt.grid(self.grid)
+        plt.draw()
+            
+        
+class CamPlotter(object):
+    """ plotting data color-coded into FACT-camera  """
+    def __init__(self, name, ion=True, grid=True, fname=None, map_file_path = '../map_dn.txt', vmin=None, vmax=None):
+        """ initialize the object """
+        path = os.path.abspath(__file__)
+        path = os.path.dirname(path)
+        map_file_path = os.path.join(path, map_file_path)
+        if not os.path.isfile(map_file_path):
+            print 'not able to find file:', map_file_path
+            sys.exit(-2)
+        
+        self.name  = name
+        if ion:
+            plt.ion()
+
+        chid, y,x,ye,xe,yh,xh,softid,hardid = np.loadtxt(map_file_path ,unpack=True)
+
+        self.xe = xe
+        self.ye = ye
+
+        self.H = (6,0,30./180.*3.1415926)
+        
+        self.figure = plt.figure(figsize=(6, 6), dpi=80)
+        self.fig_id = self.figure.number
+        
+        self.grid = grid
+        self.fname = fname
+        self.vmin = vmin
+        self.vmax = vmax
+        
+    def __call__(self, data, mask=None):
+        # define some shortcuts
+        xe = self.xe
+        ye = self.ye
+        H = self.H
+        name = self.name
+        grid = self.grid
+        vmin = self.vmin
+        vmax = self.vmax
+
+        # get the figure, clean it, and set it up nicely.
+        # maybe cleaning is not necessary and takes long, but
+        # I've got no time to test it at the moment.
+        plt.figure(self.fig_id)
+        plt.clf()
+        self.ax = self.figure.add_subplot(111, aspect='equal')
+        self.ax.axis([-22,22,-22,22])
+        self.ax.set_title(name)
+        self.ax.grid(grid)
+        
+        # throw data into numpy array for simplicity
+        data = np.array(data)
+        
+        #handle masked case specially
+        if mask!= None:
+            if len(mask)==0:
+                return
+            
+            elif mask.dtype == bool and data.ndim ==1 and len(mask)==1440:
+                length = mask.sum()
+                mask = np.where(mask)[0]
+                mxe = np.empty( length )
+                mye = np.empty( length )
+                mdata = np.empty( length )
+                for i,chid in enumerate(mask):
+                    #print i , chid
+                    mxe[i] = xe[chid]
+                    mye[i] = ye[chid]
+                    mdata[i] = data[chid]
+                #print 'mxe', mxe, 'len', len(mxe)
+                #print 'mye', mye, 'len', len(mye)
+                #print 'mxe', mdata, 'len', len(mdata)
+
+                self.ax.axis([-22,22,-22,22])
+                self.ax.set_title(name)
+                self.ax.grid(grid)
+                # the next line is a stupid hack
+                # I plot invisible pixels, so that the axes show look ok.
+                # this must be possible differently, but I don't know how...
+                self.ax.scatter(xe,ye,s=25,alpha=0,marker=H)
+                
+                result = self.ax.scatter(mxe,mye,s=25,alpha=1.,
+                            c=mdata, marker=H, linewidths=0., vmin=vmin, vmax=vmax)
+                self.figure.colorbar( result, shrink=0.8, pad=-0.04 )
+                plt.draw()
+
+
+            elif mask.dtype == int  and data.ndim ==1:
+                length = len(mask)
+                mxe = np.empty( length )
+                mye = np.empty( length )
+                mdata = np.empty( length )
+                for i,chid in enumerate(mask):
+                    mxe[i] = xe[chid]
+                    mye[i] = ye[chid]
+                    mdata[i] = data[chid]
+
+                self.ax.axis([-22,22,-22,22])
+                self.ax.set_title(name)
+                self.ax.grid(grid)
+                # the next line is a stupid hack
+                # I plot invisible pixels, so that the axes look ok.
+                # this must be possible differently, but I don't know how...
+                self.ax.scatter(xe,ye,s=25,alpha=0,marker=H)
+                
+                result = self.ax.scatter(mxe,mye,s=25,alpha=1.,
+                            c=mdata, marker=H, linewidths=0., vmin=vmin, vmax=vmax)
+                self.figure.colorbar( result, shrink=0.8, pad=-0.04 )
+                plt.draw()
+                
+            else:
+                print "there is a mask, but I don't know how to treat it!!!"
+                sys.exit(-1)
+        else: # i.e. when mask is None
+        # handle 1D and 2D case differently
+            if data.ndim == 1 and len(data)==1440:
+                result = self.ax.scatter(xe,ye,s=25,alpha=1,
+                            c=data, marker=H, linewidths=0., vmin=vmin, vmax=vmax)
+                self.figure.colorbar( result, shrink=0.8, pad=-0.04 )
+                plt.draw()
+                
+            elif data.ndim == 2 and data.shape[0] == 2 and data.shape[1] <=1440:
+                # I assume the first row of data, contains the CHIDs 
+                # and the 2nd row contains the actual data.
+                chids = data[0]
+                # check if there are double chids in chids
+                if len(chids)!=len(set(chids)):
+                    print 'warning: there are doubled chids in input data',
+                    print 'you might want to plot something else, but I plot it anyway...'
+                    print chids
+                data = data[1]
+                # now I have to mask the xe, and ye vectors accordingly
+                mxe = np.empty( len(chids) )
+                mye = np.empty( len(chids) )
+                for i,chid in enumerate(chids):
+                    mxe[i] = xe[chid]
+                    mye[i] = ye[chid]
+                
+                # check if I did it right
+                if len(mxe)!=len(data) or len(mye)!=len(data):
+                    print 'the masking did not work:'
+                    print 'len(mxe)', len(mxe)
+                    print 'len(mye)', len(mye)
+                    print 'len(data)', len(data)
+                
+                self.ax.axis([-22,22,-22,22])
+                self.ax.set_title(name)
+                self.ax.grid(grid)
+                # the next line is a stupid hack
+                # I plot invisible pixels, so that the axes show look ok.
+                # this must be possible differently, but I don't know how...
+                self.ax.scatter(xe,ye,s=25,alpha=0,marker=H)
+                
+                result = self.ax.scatter(mxe,mye,s=25,alpha=1.,
+                            c=data, marker=H, linewidths=0., vmin=vmin, vmax=vmax)
+                self.figure.colorbar( result, shrink=0.8, pad=-0.04 )
+                plt.draw()
+                
+            else:
+                print 'CamPlotter call input data has bad format'
+                print 'data.ndim', data.ndim
+                print 'data.shape', data.shape
+                print 'data:----------------------------------'
+                print data
+        
+        
+        
+
+class HistPlotter(object):
+    
+    def __init__(self, name, bins, range, grid=True, ion=True):
+        """ initialize the object """
+        self.bins = bins
+        self.range = range
+        self.name  = name
+        self.figure = plt.figure()
+        self.fig_id = self.figure.number
+        self.grid = grid
+        
+        if ion:
+            plt.ion()
+        
+    def __call__(self, ydata, label=None, log=False):
+        plt.figure(self.fig_id)
+        plt.cla()
+
+        bins = self.bins
+        range = self.range
+        grid = self.grid
+        
+        ydata = np.array(ydata)
+        
+        if ydata.ndim > 1:
+            ydata = ydata.flatten()
+        if label:
+            plt.hist(ydata, bins, range, label=label, log=log)
+            plt.legend()
+        else:
+            plt.hist(ydata, bins, range, log=log)
+            
+        plt.title(self.name)
+        
+        plt.draw()
+            
+def _test_SimplePlotter():
+    """ test of maintaining two independant plotter instances """
+    plt.ion()
+    
+    x = np.linspace(0., 10.)
+    plot1 = SimplePlotter('plot1', x, 'r')
+    print 'plot1.fig.number: ', plot1.fig.number
+    plot2 = SimplePlotter('plot2', x, 'g.')
+    print 'plot2.fig.number: ', plot2.fig.number
+    
+    plot1(np.sin(x) * 7.)
+    plot2(x*x)
+    
+    raw_input('next')
+    
+    plot1(np.cos(x) * 3.)
+    plot2(x)
+    
+    raw_input('next')
+
+
+def _test_Plotter():
+    """ test of maintaining two independant plotter instances 
+        with different examples for init and call
+    """
+    x = np.linspace(0., 2*np.pi , 100)
+    plot1 = Plotter('plot1', x, 'r.:')
+    plot2 = Plotter('plot2')
+    
+    y1 = np.sin(x) * 7
+    plot1(y1)
+    
+    number_of_graphs_in_plot2 = 3
+    no = number_of_graphs_in_plot2  # short form
+    
+    # this is where you do your analysis...
+    y2 = np.empty( (no, len(x)) )   # prepare some space
+    y2_labels = []                  # prepare labels
+    for k in range(no):
+        y2[k] = np.sin( (k+1)*x )
+        y2_labels.append('sin(%d*x)' % (k+1) )
+        
+    # plot the result of your analysis
+    plot2(y2, y2_labels)
+    raw_input('next')       # do not forget this line, or your graph is lost
+    
+    plot1(np.cos(x) * 3.)
+    plot2.name += ' without labels!!!' # changing titles 'on the fly' is possible
+    plot2(y2)
+    raw_input('next')       # DO NOT forget 
+
+
+def _test_CamPlotter():
+    """ test of CamPlotter """
+    
+    c1 = np.array(range(20))
+    chids1 = np.empty( len(c1) , dtype=int)
+    for i in range(len(chids1)-2):
+        chids1[i] = np.random.randint(1440)
+    chids1[-1] = 15
+    chids1[-2] = 15
+    
+    c2 = np.linspace(0., 1., num=1440)
+    plot1 = CamPlotter('plot1')
+    plot2 = CamPlotter('plot2')
+    
+    plot1( (chids1,c1) )
+    plot2(c2)
+    raw_input('next')
+    
+def _test_HistPlotter():
+    """ test of the HistPlotter """
+    plt.ion()
+
+    data = np.random.randn(1000)
+    hp = HistPlotter('test hist plotter',34, (-5,4))
+    
+    hp(data, 'test-label')
+    raw_input('next')
+
+if __name__ == '__main__':
+    """ test the class """
+    print ' testing SimplePlotter'
+    _test_SimplePlotter()
+    print ' testing Plotter'
+    _test_Plotter()
+    print 'testing CamPlotter ... testing what happens if doubled IDs in mask'
+    _test_CamPlotter()
+    print 'testing basic HistPlotter functionality'
+    _test_HistPlotter()
+    
