Example #1
0
    def __init__(self):
        self.fitter = encFitter()
        #self.pixels = [pixelData((i,j),self.fitter) for i in range(120,128) for j in range(32) if (i,j)!=(120,26)]
        #self.pixels = [pixelData((i,j),self.fitter) for i in range(16,23) for j in range(32) if (i,j) not in [(16,26),(17,31),(16,29),(17,22),(23,15),(17,6),(17,23),(16,17),(16,5),(16,2)]]

        #self.pixels = [pixelData((i,j),self.fitter) for i in range(16,24) for j in range(32) if (i,j) not in [(16,26),(17,31)]]

        #         self.pixels = [pixelData((i,j),self.fitter) for i in range(24,32) for j in range(32) if (i,j) not in [(31,24),(31,7)]]
        self.pixels = [
            pixelData((i, j), self.fitter) for i in range(112, 120)
            for j in range(32, 64)
        ]
        self.autoMasked = None

        self.funX = self.setDU
        self.funY = self.getVal
        self.npoints = 10
        self.nSamples1 = 1
        self.nSamples2 = 120
        self.nSamples3 = 50
        self.rangeY0 = 0.01
        self.rangeY1 = 0.99
        self.enc_error_MAX = 0.0003
        self.outfilename = 'test_muitipixelECN.dat'
        self.mic4 = MIC4Config()
        self.vL = 0.7

        self.nCheck = 10
        self.checkList = self.getCheckList(self.nCheck)
Example #2
0
def test3():
    en1 = encFitter()
    getdata(en1, '/data/repos/Mic4Test_KC705/Software/Analysis/data/ENC/ENC_Chip5Col12_scan1.dat', 2, 4, k=1)
    getdata(en1, '/data/repos/Mic4Test_KC705/Software/Analysis/data/ENC/ENC_Chip5Col12_scan2_mod.dat', 2, 4, k=1)
    en1.mean0 = 0.155
    en1.fit()
    plotResults(en1,None, sDir+'norm1')
Example #3
0
    def ENC(self):
        if self.fitter is None: self.fitter = encFitter()

        self.fitter.clearData()
        for dv, n in self.totalStats.items():
            if n <= 0: continue
            for j in range(n):
                self.fitter.addData(dv, j < self.passStats[dv])
        self.configFitter()

        self.status = self.fitter.fit()
        self.mean = self.fitter.mean
        self.meanErr = self.fitter.meanErr
        self.sigma = self.fitter.sigma
        self.sigmaErr = self.fitter.sigmaErr
        self.cachedResults = 1
Example #4
0
 def __init__(self):
     self.fitter = encFitter()
     self.fitter.mean0 = -1
     self.fitter.sigma0 = -1
     self.npoints = 7
     self.nSamples1 = 10
     self.nSamples2 = 100
     self.nSamples3 = 50
     self.totalStats = defaultdict(int)
     self.passStats = defaultdict(int)
     self.workList = [0., 0.6]
     self.funX = None
     self.funY = None
     self.sigmaErrMax = 0.0003
     self.sigmaErrRelMax = 0.01
     self.nFitTry = 5
     self.nPixel = 1
     self.autoInitial = True
Example #5
0
def test2():
    info = None
    savename = 'test1'
    en1 = encFitter()
    en1.data1.push_back((0.1,0))
    en1.data1.push_back((0.3,0))
    en1.data1.push_back((0.3,0))
    en1.data1.push_back((0.3,1))
    en1.data1.push_back((0.35,1))
    en1.data1.push_back((0.35,0))
    en1.data1.push_back((0.4,0))
    en1.data1.push_back((0.4,1))
    en1.data1.push_back((0.4,1))
    en1.data1.push_back((0.5,1))
   
    en1.mean0 = 0.35
    en1.sigma0 = 0.02
    en1.fit()
    print en1.mean, en1.sigma

    plotResults(en1)
    return
Example #6
0
def checkFit():
    data = '''
# 0.0 20 0 0.0
# 0.1 40 0 0.0
# 0.116666666667 40 1 0.025
# 0.119444444444 10 0 0.0
# 0.122222222222 170 3 0.0176470588235
# 0.125 160 10 0.0625
# 0.127777777778 170 28 0.164705882353
# 0.130555555556 150 35 0.233333333333
# 0.130555555556 10 9 0.9
# 0.133333333333 190 92 0.484210526316
# 0.136111111111 150 89 0.593333333333
# 0.138888888889 160 138 0.8625
# 0.144444444444 10 10 1.0
# 0.15 30 30 1.0
# 0.166666666667 20 20 1.0
# 0.183333333333 20 20 1.0
# 0.2 20 20 1.0
# 0.2 20 20 1.0
# 0.3 20 20 1.0
# 0.4 20 20 1.0
# 0.5 20 20 1.0
# 0.6 20 20 1.0

0.0 20 0 0.0
0.01667 10 0 0.0
0.03333 10 0 0.0
0.05 10 0 0.0
0.06667 10 0 0.0
0.08333 20 0 0.0
0.08611 110 1 0.00909090909091
0.08889 110 8 0.0727272727273
0.09028 100 5 0.05
0.09167 110 23 0.209090909091
0.09444 110 44 0.4
0.09722 110 73 0.663636363636
0.1 130 118 0.907692307692
0.2 10 10 1.0
0.3 10 10 1.0
0.4 10 10 1.0
0.5 10 10 1.0
0.6 10 10 1.0
# 
# 0.0 10 0 0.0
# 0.1 130 0 0.0
# 0.10278 100 3 0.03
# 0.10556 110 19 0.172727272727
# 0.11111 110 74 0.672727272727
# 0.11389 100 89 0.89
# 0.11667 120 114 0.95
# 0.12222 110 110 1.0
# 0.12778 10 10 1.0
# 0.13333 20 20 1.0
# 0.15 10 10 1.0
# 0.16667 10 10 1.0
# 0.18333 10 10 1.0
# 0.2 20 20 1.0
# 0.3 10 10 1.0
# 0.4 10 10 1.0
# 0.5 10 10 1.0
# 0.6 10 10 1.0
# 
# 0.0 10 0 0.0
# 0.1 20 0 0.0
# 0.11667 20 0 0.0
# 0.11945 110 3 0.0272727272727
# 0.12222 110 15 0.136363636364
# 0.12361 100 11 0.11
# 0.125 110 34 0.309090909091
# 0.12639 100 41 0.41
# 0.12778 110 55 0.5
# 0.13055 110 88 0.8
# 0.13333 20 19 0.95
# 0.15 10 10 1.0
# 0.16667 10 10 1.0
# 0.18333 10 10 1.0
# 0.2 20 20 1.0
# 0.3 10 10 1.0
# 0.4 10 10 1.0
# 0.5 10 10 1.0
# 0.6 10 10 1.0

# 0.0 10 0 0.0
# # 0.1 30 1 0.0333333333333
# 0.10556 10 0 0.0
# 0.11111 10 0 0.0
# 0.11667 10 2 0.2
# 0.12222 10 4 0.4
# 0.12778 10 9 0.9
# 0.13333 20 20 1.0
# 0.16667 10 10 1.0
# # 0.2 20 12 0.6
# 0.23333 10 10 1.0
# 0.26667 10 10 1.0
# 0.3 20 20 1.0
# 0.4 10 10 1.0
# 0.5 10 10 1.0
# 0.6 10 10 1.0

# 
# 0.0 20 0 0.0
# 0.1 40 0 0.0
# 0.116666666667 40 0 0.0
# 0.119444444444 10 1 0.1
# 0.122222222222 170 0 0.0
# 0.125 10 1 0.1
# 0.127777777778 170 8 0.0470588235294
# 0.130555555556 150 3 0.02
# 0.130555555556 10 7 0.7
# 0.133333333333 190 39 0.205263157895
# 0.136111111111 150 48 0.32
# 0.138888888889 160 81 0.50625
# 0.144444444444 160 141 0.88125
# 0.15 30 30 1.0
# 0.166666666667 20 20 1.0
# 0.183333333333 20 20 1.0
# 0.2 20 20 1.0
# 0.2 20 20 1.0
# 0.3 20 20 1.0
# 0.4 20 20 1.0
# 0.5 20 20 1.0
# 0.6 20 20 1.0
'''
    en1 = encFitter()
    for d in data.split('\n'):
        d = d.rstrip()
        if len(d) == 0 or d[0] == '#':
            continue
        fs = d.split()
        x = float(fs[0])
        npass = int(fs[2])
        for i in range(int(fs[1])):
            en1.addData(x, i < npass)


# 0.121369309723 0.00424943258986
# 0.0808686986566 0.015657313168
    en1.mean0 = 0.085
    #     en1.sigma0 = 0.00424943258986
    en1.sigma0 = 0.015657313168

    en1.fit()
Example #7
0
def testFitter(fname, info=None, savename='figs_temp/test', mean0=0.5):
    en1 = encFitter()