Fitter Code


In [3]:
import sys
sys.path.append('/home/ismith/ANA/FourVector')
sys.path.append('../project')

from FourVector import FourVector
from ThreeVector import ThreeVector

from FutureColliderTools import *

import numpy as np

import ROOT
from root_numpy import tree2array

ROOT.enableJSVis()
ROOT.gStyle.SetOptStat(0)


Welcome to JupyROOT 6.08/02

In [5]:
MCFile = ROOT.TFile.Open("../output/Source_Histograms_KMu_0.5_LHCb.root", "READ")
DataFile = ROOT.TFile.Open("../output/Data_Histograms_0.5_LHCb.root", "READ")

DataHist = DataFile.Get("MCORR_Data_KMuNu")

TemplateList = ROOT.TObjArray(10)
TemplateList.Add( MCFile.Get( "MCORR_13512010" ))
TemplateList.Add( MCFile.Get( "MCORR_13774000_Dsstar" ))
TemplateList.Add( MCFile.Get( "MCORR_13774000_Ds" ))
TemplateList.Add( MCFile.Get( "MCORR_12513010" ))
TemplateList.Add( MCFile.Get( "MCORR_13146004" ))
TemplateList.Add( MCFile.Get( "MCORR_23573002" ))
TemplateList.Add( MCFile.Get( "MCORR_12145052" ))
TemplateList.Add( MCFile.Get( "MCORR_15574010" ))
TemplateList.Add( MCFile.Get( "MCORR_13774000_DsTau" ))
TemplateList.Add( MCFile.Get( "MCORR_13114006" ))
                             
fit = ROOT.TFractionFitter(DataHist, TemplateList)

for par in range(10):
    fit.Constrain(par, 0., 10)
    #if TemplateList[par].Integral() > 10000:
    TemplateList[par].Scale( 10000./TemplateList[par].Integral() )
fit.Fit()


c1 = ROOT.TCanvas("c1", "c1", 1024,768)

DataHist.Draw()
FitHist = fit.GetPlot()
FitHist.Sumw2()
FitHist.Draw("SAME")


value = np.ones(1)
error = np.ones(1)


InputHists = []
it = 0
for par in range(10):
    Histogram = fit.GetMCPrediction(par)
    Histogram.Sumw2(False)
    Histogram.SetLineColor(par+1)
    
    fit.GetResult(par, value, error)
    
    #Histogram.Scale( value[0] )
    print value[0]
    InputHists += [ Histogram ]
    
    Histogram.Draw("SAME")


 **********
 **    1 **SET PRINT           0
 **********
 **********
 **    2 **SET NOGRAD
 **********
 PARAMETER DEFINITIONS:
    NO.   NAME         VALUE      STEP SIZE      LIMITS
     1 frac0        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     2 frac1        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     3 frac2        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     4 frac3        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     5 frac4        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     6 frac5        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     7 frac6        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     8 frac7        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
     9 frac8        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
    10 frac9        1.00000e-01  1.00000e-02    0.00000e+00  1.00000e+01
 **********
 **    3 **SET ERR         0.5
 **********
 **********
 **    4 **SET PRINT           0
 **********
 **********
 **    5 **SET STR           1
 **********
 **********
 **    6 **MIGRAD        2500        0.01
 **********
 MINUIT WARNING IN MIGRAD  
 ============== Negative diagonal element 9 in Error Matrix
 MINUIT WARNING IN MIGRAD  
 ============== 1 added to diagonal of error matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 1 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 2 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 3 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 4 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 5 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 8 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== Negative diagonal element 10 in Error Matrix
 MINUIT WARNING IN HESSE   
 ============== 113506 added to diagonal of error matrix
 EIGENVALUES OF SECOND-DERIVATIVE MATRIX:
        -4.4355e+02 -3.3915e-01  1.9090e-01  7.3679e-01  9.5560e-01  9.9854e-01  9.9916e-01  9.9985e-01  1.4178e+00  4.4759e+02
 MINUIT WARNING IN HESSE   
 ============== MATRIX FORCED POS-DEF BY ADDING 444.000368 TO DIAGONAL.
 MIGRAD TERMINATED WITHOUT CONVERGENCE.
 FCN=-1.02081e+06 FROM MIGRAD    STATUS=FAILED        252 CALLS         253 TOTAL
                     EDM=1.50136e+08    STRATEGY= 1      ERR MATRIX NOT POS-DEF
  EXT PARAMETER                APPROXIMATE        STEP         FIRST   
  NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE 
   1  frac0        4.17998e+00   7.53061e-04  -0.00000e+00  -1.81047e+03
   2  frac1        3.89616e-02   8.86750e-05  -0.00000e+00  -1.26295e+02
   3  frac2        3.85830e-02   9.13010e-05  -0.00000e+00  -2.42543e+02
   4  frac3        3.93305e-02   9.82886e-05  -0.00000e+00  -7.20786e+02
   5  frac4        1.41352e-02   7.25843e-04  -0.00000e+00  -6.38719e+03
   6  frac5        7.45157e-07   1.04984e-06  -0.00000e+00** at limit **
   7  frac6        4.09187e-02   7.45477e-04   0.00000e+00   6.02005e+03
   8  frac7        9.36967e-03   9.59840e-04   0.00000e+00   6.54032e+03
   9  frac8        9.99082e-02   7.97930e-07   0.00000e+00  -2.62257e+08
  10  frac9        4.36526e-02   5.97590e+00   0.00000e+00  -1.62119e+04
                               ERR DEF= 0.5
4.1799762571
0.0389616142872
0.0385829702616
0.0393305018317
0.0141352165336
7.45156981119e-07
0.040918666252
0.00936966721856
0.0999082345683
0.0436526385033
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::FindPrediction>: Did not find solution for t_i in 100000 iterations
Warning in <TFractionFitter::Fit>: Abnormal termination of minimization.

In [6]:
c1.Draw()



In [ ]: