示例#1
0
###########################################################################################################################################
## 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]
示例#3
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'