# set values of split parameters for par, vals in tResPars.iteritems() : for cat, val in vals.iteritems() : ws[ par + '_' + cat ].setVal(val) for par, vals in SWaveAmps.iteritems() : for cat, val in vals.iteritems() : ws[ par + '_' + cat ].setVal(val) else : pdf = protoPdf if parFileIn : # read parameter values from file from P2VV.Parameterizations.FullPDFs import PdfConfiguration pdfConfig = PdfConfiguration() pdfConfig.readParametersFromFile( filePath = parFileIn ) pdfConfig.setParametersInPdf(pdf) ########################################################################################################################################### ## compute angular efficiency moments ## ######################################## # print PDF, data, variables and parameters print '\nData set:' data.Print() if normPdf : print '\nPDF:' pdf.Print() print '\nIntegration set for PDF:' for var in intSet : print var.GetName(),
sWeightMassPdf.indexCat().setIndex( splitCat.getVal() ) KKState = observables['KKMassCat'].getLabel() for it, parName in enumerate(constSplitPars) : par = getSplitPar( parName, KKState, massPdfPars ) par.setVal( constSplitVals[KKState][it] ) if parFileIn or parFileOut : # create PDF configuration object 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 )
simMassPdf = SimultaneousPdf( massPdf.GetName() + '_simul' , MasterPdf = massPdf , SplitCategories = [ pars[1] for pars in splitPars ] , SplitParameters = [ pars[0] for pars in splitPars ] ) massPdfObs = simMassPdf.getObservables(dataSet) massPdfPars = simMassPdf.getParameters(dataSet) # create PDF configuration object from P2VV.Parameterizations.FullPDFs import PdfConfiguration as PdfConfig pdfConfig = PdfConfig() # read parameters from file print 120 * '=' pdfConfig.readParametersFromFile( filePath = args.parFilePathIn ) pdfConfig.setParametersInPdf(simMassPdf) print 'P2VV - INFO: splitDataSetSigBkg: observables in mass PDF:' massPdfObs.Print('v') print 'P2VV - INFO: splitDataSetSigBkg: parameters in mass PDF:' massPdfPars.Print('v') ########################################################################################################################################### ## split data into signal and background ## ########################################### # create integration sets from ROOT import RooArgSet intSet = RooArgSet() normSet = RooArgSet( massPdfObs.find('mass') )