def add_mc_tools(dtt): '''Add MC tools to a DecayTreeTuple.''' ttmcmatch = LoKi__Hybrid__TupleTool(dtt.name() + '_ttmcmatch') ttmcmatch.Preambulo = [ 'from LoKiPhysMC.decorators import *', 'from LoKiPhysMC.functions import mcMatch' ] for minus, plus in ('pi', 'pi'), ('K', 'K'), ('K', 'pi'): ttmcmatch.Variables['MCMatch_' + minus + plus] = \ 'switch(mcMatch("[ D*(2010)+ ==> ( D0 ==> {minus}- {plus}+ pi0 ) pi+ ]CC"), 1, 0)'.format(minus = minus, plus = plus) ttmctruth = TupleToolMCTruth(dtt.name() + '_ttmctruth') ttmctruth.addTupleTool(MCTupleToolPrompt(dtt.name() + '_ttmcprompt')) dtt.Dst.addTupleTool(ttmcmatch) dtt.addTupleTool(ttmctruth) dtt.ToolList.append('TupleToolMCBackgroundInfo') dtt.D0.addTupleTool('TupleToolMCPVAssociation') dtt.ToolList.append('TupleToolPV2MC')
'daughtersToConstrain': ['pi0'] }, 'DTF_vtx_D0Mass': { 'constrainToOriginVertex': True, 'daughtersToConstrain': ['pi0', 'D0'] } }.items(): ttdtf = TupleToolDecayTreeFitter(name, **attrs) ttdtf.Verbose = True dtt.lab0.addTupleTool(ttdtf) if DaVinci().getProp('Simulation'): from Configurables import TupleToolMCTruth, MCTupleToolPrompt ttmcmatch = LoKi__Hybrid__TupleTool('ttmcmatch') ttmcmatch.Preambulo = [ 'from LoKiPhysMC.decorators import *', 'from LoKiPhysMC.functions import mcMatch' ] for minus, plus in ('pi', 'pi'), ('K', 'K'), ('K', 'pi'): ttmcmatch.Variables['MCMatch_' + minus + plus] = \ 'switch(mcMatch("[ D*(2010)+ ==> ( D0 ==> {minus}- {plus}+ pi0 ) pi+ ]CC"), 1, 0)'.format(minus = minus, plus = plus) ttmctruth = TupleToolMCTruth('ttmctruth') ttmctruth.addTupleTool(MCTupleToolPrompt('ttmcprompt')) for dtt in tuples: dtt.lab0.addTupleTool(ttmcmatch) dtt.addTupleTool(ttmctruth) else: DaVinci().Lumi = True DaVinci().TupleFile = 'DaVinciTuples.root'
"LT_FITCHI2": "BPVLTFITCHI2()", "LT": "BPVLTIME()", "LT_CHI2": "BPVLTCHI2()" } LoKi_Iso = LoKi__Hybrid__TupleTool('LoKi_Iso') LoKi_Iso.Variables = { "LOKI_CONE1ANGLE": "INFO(9000, 0.)", "LOKI_CONE1MULT": "INFO(9000+1, 0.)", "LOKI_CONE1PASY": "INFO(9000+10, 0.)", "LOKI_CONE1PTASY": "INFO(9000+11, 0.)", } LoKi_constrain = LoKi__Hybrid__TupleTool("LoKi_constrain") LoKi_constrain.Preambulo += ['from LoKiTracks.decorators import *'] LoKi_constrain.Preambulo = [] LoKi_constrain.Variables = { 'D0_B_CM_MM': "DTF_FUN(MM, True,strings(['D0']))", 'D0_B_CM_M': "DTF_FUN(M, True,strings(['D0']))", 'D0_B_CM_PX': "DTF_FUN(PX, True,strings(['D0']))", 'D0_B_CM_PY': "DTF_FUN(PY, True,strings(['D0']))", 'D0_B_CM_PZ': "DTF_FUN(PZ, True,strings(['D0']))", 'D0_B_CM_E': "DTF_FUN(E, True,strings(['D0']))", 'D0_B_CM_MINIPCHI2':