########################################################################################################################################### ## compute sWeights ## ###################### print 'P2VV - INFO: createB2CCFitNTuple: computing sWeights' # compute sWeights from P2VV.Utilities.SWeights import SData sWeightsBuilder = SData( Pdf = sWeightMassPdf, Data = dataSets['pre'][0], Name = 'JpsiKK' ) dataSets['preS'] = ( sWeightsBuilder.data(), [ ] ) # import sWeight variables weightVars = [ ] for wName in [ 'N_sigMass_sw', 'N_cbkgMass_sw' ] : ws.put( dataSets['preS'][0].get().find(wName) ) weightVars.append( RealVar(wName) ) ########################################################################################################################################### ## create signal and background data sets and print event yields ## ################################################################### print 120 * '=' print 'P2VV - INFO: createB2CCFitNTuple: creating data set' # create data sets with final columns mainDSList = [ ] samples = [ ] obsSetMain = obsSetNTuple + [ var for var in weightVars ] if splitDataSet :
########################################################################################################################################### ## compute sWeights ## ###################### print 120 * '=' print 'P2VV - INFO: createBs2JpsiKKDataSet: computing sWeights' # compute sWeights from P2VV.Utilities.SWeights import SData sWeightsBuilder = SData( Pdf = sWeightMassPdf, Data = preDataSet, Name = 'JpsiKK' ) preSDataSet = sWeightsBuilder.data() # import sWeight variables weightVars = [ ] for wName in sWeightNames : ws.put( preSDataSet.get().find(wName) ) weightVars.append( RealVar(wName) ) ################################################################################################################################### ## add tagging observables to data sets ## ########################################## print 120 * '=' print 'P2VV - INFO: createBs2JpsiKKDataSet: building tagging categories' # tagging observable names wTagOSName = obsDict['wTagOS'][0] wTagSSName = obsDict['wTagSS'][0] tagDecOSName = obsDict['tagDecOS'][0] tagDecSSName = obsDict['tagDecSS'][0]
dataFile.Close() dataSetAsym.Print() # create weighted data set from ROOT import RooProduct, RooArgSet, RooArgList obsSet = RooArgSet( dataSetAsym.get() ) prodList = RooArgList( obsSet.find('sigWeight') ) if applyPlotWeights : prodList.add( obsSet.find('dilution') ) weightVar = RooProduct( 'weightVar', 'weightVar', prodList ) weightVar = dataSetAsym.addColumn(weightVar) obsSet.add(weightVar) from ROOT import RooDataSet dataSetAsymW = RooDataSet( 'asymDataW', 'asymDataW', obsSet, Import = dataSetAsym, WeightVar = ( 'weightVar', True ) ) del dataSetAsym ws.put(dataSetAsymW) del dataSetAsymW dataSetAsymW = ws['asymDataW'] obsSet = RooArgSet( dataSetAsymW.get() ) dataSetAsymW.Print() # build PDF from P2VV.Parameterizations.FullPDFs import Bs2Jpsiphi_RunIAnalysis as PdfConfig pdfConfig = PdfConfig( RunPeriods = '3fb' ) timeEffFile2011 = dataPath + 'timeAcceptanceFit_2011.root' timeEffFile2012 = dataPath + 'timeAcceptanceFit_2012.root' pdfConfig['timeEffHistFiles'].getSettings( [ ( 'runPeriod', 'p2011' ) ] )['file'] = timeEffFile2011 pdfConfig['timeEffHistFiles'].getSettings( [ ( 'runPeriod', 'p2012' ) ] )['file'] = timeEffFile2012 pdfConfig['anglesEffType'] = 'basisSig6' pdfConfig['angEffMomsFiles'] = dataPath + 'angEffNominalRew_5thOrder.par'