예제 #1
0
                sigFrac = eventFracs[ KKMassState + 1 ][yName] if eventFracs[ KKMassState + 1 ][yName]\
                          else 1. - sum( val for val in eventFracs[ KKMassState + 1 ].itervalues() if val )
                yieldVar.setVal( sigFrac * nEvBin )
            else :
                yieldVar.setVal( yieldVar.getVal() * nEvBin / nEv )

            yieldVar.setError( sqrt( yieldVar.getVal() ) )
            yieldVar.setMin(0.)
            yieldVar.setMax(nEvBin)

        splitCatState = splitCatIter.Next()

    # determine mass parameters in each subsample with a fit
    print 120 * '='
    print 'P2VV - INFO: createB2CCFitNTuple: fitting with simultaneous mass PDF'
    simMassFitResult = sWeightMassPdf.fitTo( dataSets['pre'][0], Save = True, **fitOpts )

    from P2VV.Imports import parValues
    simMassFitResult.PrintSpecial( text = True, LaTeX = True, normal = True, ParNames = parNames, ParValues = parValues )
    simMassFitResult.covarianceMatrix().Print()
    simMassFitResult.correlationMatrix().Print()

else :
    massPdfPars    = massPdf.getVariables()
    sWeightMassPdf = massPdf


###########################################################################################################################################
## compute sWeights ##
######################
예제 #2
0
    from P2VV.Parameterizations.FullPDFs import PdfConfiguration as PdfConfig
    pdfConfig = PdfConfig()

print 120 * '='
if parFileIn :
    # read parameters from file
    pdfConfig.readParametersFromFile( filePath = parFileIn )
    pdfConfig.setParametersInPdf(sWeightMassPdf)
print 'P2VV - INFO: createBs2JpsiKKDataSet: observables in mass PDF:'
massPdfObs.Print('v')
print 'P2VV - INFO: createBs2JpsiKKDataSet: parameters in mass PDF:'
massPdfPars.Print('v')

# determine mass parameters with a fit
print 'P2VV - INFO: createBs2JpsiKKDataSet: fitting mass PDF'
simMassFitResult = sWeightMassPdf.fitTo( preDataSet, Save = True, SumW2Error = False, NumCPU = args.numCPU, Optimize = 1, Timer = True
                                        , Minimizer = 'Minuit2', Strategy = 1, Offset = True, Hesse = runHesse, Minos = minosPars )
simMassFitResult.PrintSpecial( text = True )

if parFileOut :
    # write parameters to file
    pdfConfig.getParametersFromPdf( sWeightMassPdf, preDataSet )
    pdfConfig.writeParametersToFile( filePath = parFileOut )


###########################################################################################################################################
## compute sWeights ##
######################

print 120 * '='
print 'P2VV - INFO: createBs2JpsiKKDataSet: computing sWeights'
예제 #3
0
        selStr = "{0} == {0}::{1}".format(split_cat.GetName(), state.GetName())

        nEv = data.sumEntries()
        nEvBin = data.sumEntries(selStr)

        sigYield.setVal(sigYield.getVal() * nEvBin / nEv)
        sigYield.setError(sqrt(sigYield.getVal()))
        sigYield.setMin(0.0)
        sigYield.setMax(nEvBin)
        bkgYield.setVal(bkgYield.getVal() * nEvBin / nEv)
        bkgYield.setError(sqrt(bkgYield.getVal()))
        bkgYield.setMin(0.0)
        bkgYield.setMax(nEvBin)

    # determine mass parameters in each sub-sample with a fit
    sim_mass_result = sWeight_mass_pdf.fitTo(data, **fitOpts)
    sweight_pdf = sWeight_mass_pdf
else:
    sweight_pdf = mass_pdf

from P2VV.Utilities.SWeights import SData

sdata = SData(Pdf=sweight_pdf, Data=data, Name="mass_sdata")
sig_sdata = sdata.data("signal")
bkg_sdata = sdata.data("background")

from ROOT import TFile

f = TFile.Open(input_file, "update")
tree = f.Get("DecayTree")