Ejemplo n.º 1
0
    #angleFuncs = AngleFuncs( cpsi = 'ctkRecoLHCb', ctheta = 'ctlRecoLHCb', phi = 'phiRecoLHCb' )
    #angleFuncs = AngleFuncs( cpsi = 'ctkTrueCalc', ctheta = 'ctlTrueCalc', phi = 'phiTrueCalc' )

# variables in PDF
from P2VV.RooFitWrappers import RealVar, Category
time      = RealVar(  'time',      Title = 'Decay time',      Unit = 'ps', Observable = True, Value = 0.5,  MinMax = ( 0.3,    14.  ) )
trueTime  = RealVar(  'truetime',  Title = 'True decay time', Unit = 'ps', Observable = True, Value = 0.,   MinMax = ( 0.,     20.  ) )
sigmat    = RealVar(  'sigmat',    Title = 'Time resolution', Unit = 'ps', Observable = True, Value = 0.01, MinMax = ( 0.0001, 0.12 ) )
iTag      = Category( 'iTag',      Title = 'Initial state flavour tag', Observable = True, States = { 'Untagged' : 0 } )
runPeriod = Category( 'runPeriod', Title = 'Running period',            Observable = True, States = runPeriodStates )
KKMassCat = Category( 'KKMassCat', Title = 'KK-mass category',          Observable = True, States = KKMassStates )
angles    = [ angleFuncs.angles['cpsi'], angleFuncs.angles['ctheta'], angleFuncs.angles['phi'] ]
if weightVar :
    weight = RealVar( weightVar, Title = 'Signal weight', Observable = True, Value = 1. )

sigmat.setBins( 40, 'cache' )

obsSet = [ time if tResModel in [ 'Gauss', '3fb' ] else trueTime ] + angles + [ runPeriod, KKMassCat ]
if tResModel == '3fb' : obsSet.append(sigmat)
if tResPars : obsSet.append(runPeriod)
if SWaveAmps : obsSet.append(KKMassCat)
if weightVar : obsSet.append(weight)

# read ntuple
bkgcatCut      = '(bkgcat == 0 || bkgcat == 50)'
trackChiSqCuts = 'muplus_track_chi2ndof < 4. && muminus_track_chi2ndof < 4. && Kplus_track_chi2ndof < 4. && Kminus_track_chi2ndof < 4.'
massCuts       = 'mass > 5200. && mass < 5550. && mdau1 > 3030. && mdau1 < 3150. && mdau2 > 990. && mdau2 < 1050.'
trueTimeCut    = 'truetime > 0.'
timeCuts       = 'time > 0.3 && time < 14. && sigmat < 0.12'
tagCuts        = '(tagdecision == 0 || tagdecision == -1 || tagdecision == +1)'