"MCTupleToolKinematic", "MCTupleToolHierarchy", "MCTupleToolReconstructed", "MCTupleToolAngles", ] tuple.JPsi.addTupleTool("TupleToolMCBackgroundInfo") mcTuple = MCDecayTreeTuple( "MCTupleJPsi2KsKs" ) # I can put as an argument a name if I use more than a MCDecayTreeTuple mcTuple.Decay = "[J/psi(1S) -> ^(KS0 -> ^pi+ ^pi-) ^(KS0 -> ^pi+ ^pi-)]CC" mcTuple.Branches = { "JPsi": "[J/psi(1S) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)]CC", "Ks1": "[J/psi(1S) -> ^(KS0 -> pi+ pi-) (KS0 -> pi+ pi-)]CC", "Ks2": "[J/psi(1S) -> (KS0 -> pi+ pi-) ^(KS0 -> pi+ pi-)]CC", "pi1": "[J/psi(1S) -> (KS0 -> ^pi+ pi-) (KS0 -> pi+ pi-)]CC", "pi2": "[J/psi(1S) -> (KS0 -> pi+ ^pi-) (KS0 -> pi+ pi-)]CC", "pi3": "[J/psi(1S) -> (KS0 -> pi+ pi-) (KS0 -> ^pi+ pi-)]CC", "pi4": "[J/psi(1S) -> (KS0 -> pi+ pi-) (KS0 -> pi+ ^pi-)]CC", } mcTuple.addBranches(mcTuple.Branches) mcTuple.ToolList = [ "MCTupleToolKinematic", "TupleToolEventInfo", "MCTupleToolHierarchy", "TupleToolMCBackgroundInfo", ] from Configurables import DaVinci
LoKi_Photos = LoKi__Hybrid__MCTupleTool("LoKi_Photos") LoKi_Photos.Variables = { "nPhotons" : "MCNINTREE ( ('gamma'==MCABSID) )", "MC_PT" : "MCPT", "MC_THETA" : "MCTHETA", "MC_ETA" : "MCETA", "MC_PHI" : "MCPHI", "MC_ABSID" : "MCABSID" } mctuple_B2Kmumu = MCDecayTreeTuple( 'MCTuple_B2Kmumu' ) mctuple_B2Kmumu.Decay = "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ ^mu- ...) ^K+ ... ]CC" mctuple_B2Kmumu.Branches = { 'B' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", 'Kplus' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) ^K+ ... ]CC", 'psi' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", 'muplus' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ mu- ...) K+ ... ]CC", 'muminus' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ ^mu- ...) K+ ... ]CC", } # List of the mc tuples mctuples = [ mctuple_B2Kmumu ] for tup in mctuples: tup.addTool(MCTupleToolKinematic()) tup.MCTupleToolKinematic.Verbose=True tup.addTool(LoKi_Photos) tup.ToolList = [ "MCTupleToolHierarchy" , "MCTupleToolKinematic"
"nPhotons": "MCNINTREE ( ('gamma'==MCABSID) )", "MC_PT": "MCPT", "MC_THETA": "MCTHETA", "MC_ETA": "MCETA", "MC_PHI": "MCPHI", "MC_ABSID": "MCABSID" } mctuple_B2Kmumu = MCDecayTreeTuple('MCTuple_B2Kmumu') mctuple_B2Kmumu.Decay = "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ ^mu- ...) ^K+ ... ]CC" mctuple_B2Kmumu.Branches = { 'B': "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", 'Kplus': "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) ^K+ ... ]CC", 'psi': "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", 'muplus': "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ mu- ...) K+ ... ]CC", 'muminus': "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ ^mu- ...) K+ ... ]CC", } # List of the mc tuples mctuples = [mctuple_B2Kmumu] for tup in mctuples: tup.addTool(MCTupleToolKinematic()) tup.MCTupleToolKinematic.Verbose = True tup.addTool(LoKi_Photos) tup.ToolList = [ "MCTupleToolHierarchy",
tuple.addTupleTool('TupleToolMCTruth/MCTruth') tuple.MCTruth.ToolList = ['MCTupleToolKinematic', 'MCTupleToolHierarchy', 'MCTupleToolReconstructed', 'MCTupleToolAngles', ] tuple.phi.addTupleTool("TupleToolMCBackgroundInfo") mcTuple = MCDecayTreeTuple("MCTuplePhi2KsKs") # I can put as an argument a name if I use more than a MCDecayTreeTuple mcTuple.Decay = '[D_s+ -> ^(phi(1020) -> ^(KS0 -> ^pi+ ^pi-) ^(KS0 -> ^pi+ ^pi-)) ^pi+]CC' mcTuple.Branches = {'Ds' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC', 'phi' : '[D_s+ -> ^(phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC', 'Ks1' : '[D_s+ -> (phi(1020) -> ^(KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC', 'Ks2' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) ^(KS0 -> pi+ pi-)) pi+]CC', 'pi1' : '[D_s+ -> (phi(1020) -> (KS0 -> ^pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC', 'pi2' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ ^pi-) (KS0 -> pi+ pi-)) pi+]CC', 'pi3' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> ^pi+ pi-)) pi+]CC', 'pi4' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ ^pi-)) pi+]CC', 'pis' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) ^pi+]CC', } mcTuple.addBranches(mcTuple.Branches) mcTuple.ToolList = ['MCTupleToolKinematic', 'TupleToolEventInfo', 'MCTupleToolHierarchy', "TupleToolMCBackgroundInfo", ] Ds_sequence.sequence().Members += [tuple]
# } mct = MCDecayTreeTuple('mct') # B0 -> K+pi-pi0 #mct.Decay = "[Beauty -> ^K+ ^pi- ^(pi0 -> ^gamma ^gamma)]CC" #mct.Branches = { # "gamma1" :"[Beauty -> K+ pi- (pi0 -> gamma ^gamma)]CC" , # "gamma2" :"[Beauty -> K+ pi- (pi0 -> ^gamma gamma)]CC" , # "B" :"[Beauty -> K+ pi- (pi0 -> gamma gamma)]CC" , # "K" :"[Beauty -> ^K+ pi- (pi0 -> gamma gamma)]CC" , # "Pi" :"[Beauty -> K+ ^pi- (pi0 -> gamma gamma)]CC" , # } # B+ -> K+pi0 mct.Decay = "[Beauty -> ^K+ ^(pi0 -> ^gamma ^gamma)]CC" mct.Branches = { "gamma1" :"[Beauty -> K+ (pi0 -> gamma ^gamma)]CC" , "gamma2" :"[Beauty -> K+ (pi0 -> ^gamma gamma)]CC" , "B" :"[Beauty -> K+ (pi0 -> gamma gamma)]CC" , "K" :"[Beauty -> ^K+ (pi0 -> gamma gamma)]CC" , } #mctB = MCDecayTreeTuple('mctB') #mctB.Decay = "[B0]CC" #mctB.Branches = { # "B0" :"[B0]CC" , # } #mct = MCDecayTreeTuple('mct') #mct.Decay = "[Lambda_c+ => ^p+ ^K- ^pi+]CC" #mct.Branches = { # "Lc" :"[Lambda_c+ => p+ K- pi+ ]CC" , # "Lcp":"[Lambda_c+ => ^p+ K- pi+]CC" , # "LcK":"[Lambda_c+ => p+ ^K- pi+]CC" , # "LcH":"[Lambda_c+ => p+ K- ^pi+]CC" , # }
# mctuple_B2psiomega.Decay = "[ [ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ ^mu- ...) ^(omega(782) -> ^pi+ ^pi- ^(pi0 -> ^gamma ^gamma) ) ]CC" mctuple_B2psiomega.Decay = "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ ^mu- ...) ^(omega(782) -> ^pi+ ^pi- ^pi0 ) ]CC" mctuple_B2psiomega.Branches = { # 'B' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- (pi0 -> gamma gamma ) ) ]CC", # 'Jpsi' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- (pi0 -> gamma gamma ) ) ]CC", # 'muplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> ^mu+ mu- ...) (omega(782) -> pi+ pi- (pi0 -> gamma gamma ) ) ]CC", # 'muminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ ^mu- ...) (omega(782) -> pi+ pi- (pi0 -> gamma gamma ) ) ]CC", # 'omega' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) ^(omega(782) -> pi+ pi- (pi0 -> gamma gamma ) ) ]CC", # 'piplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> ^pi+ pi- (pi0 -> gamma gamma ) ) ]CC", # 'piminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ ^pi- (pi0 -> gamma gamma ) ) ]CC", # 'pizero' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- ^(pi0 -> gamma gamma ) ) ]CC", # 'gamma1' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- (pi0 -> ^gamma gamma ) ) ]CC", # 'gamma2' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- (pi0 -> gamma ^gamma ) ) ]CC", # 'B' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'Jpsi' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'omega' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) ^(omega(782) -> pi+ pi- pi0 ) ]CC", 'muplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> ^mu+ mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'muminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ ^mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'piplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> ^pi+ pi- pi0 ) ]CC", 'piminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ ^pi- pi0 ) ]CC", 'pizero' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- ^pi0 ) ]CC", # # 'B' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", # 'Kplus' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) ^K+ ... ]CC", # 'psi' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", # 'muplus' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ mu- ...) K+ ... ]CC", # 'muminus' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ ^mu- ...) K+ ... ]CC", } # List of the mc tuples
'1e3 * (PX * (VFASPF(VY)-BPV(VY)) - PY * (VFASPF(VX)-BPV(VX))) / sqrt(PX*PX + PY*PY)' } # refit PVs with exclusion of our tracks of interest tup.ReFitPVs = True # add ntuple to the list of running algorithms DaVinci().UserAlgorithms += [tup] # MCParticle ntuple from Configurables import MCDecayTreeTuple mctuple = MCDecayTreeTuple('mctuple_Lc2pKpi') mctuple.Decay = '[Lambda_c+ => ^p+ ^K- ^pi+]CC' mctuple.Branches = { 'lcplus': '[Lambda_c+ => p+ K- pi+]CC', 'pplus': '[Lambda_c+ => ^p+ K- pi+]CC', 'kminus': '[Lambda_c+ => p+ ^K- pi+]CC', 'piplus': '[Lambda_c+ => p+ K- ^pi+]CC' } #mctuple.ToolList = ["MCTupleToolKinematic"] DaVinci().UserAlgorithms += [mctuple] # Filter events for faster processing #from PhysConf.Filters import LoKi_Filters #if (restripversion == "" and Turbo == False) : # fltrs = LoKi_Filters ( # STRIP_Code = "HLT_PASS_RE('Stripping{0}Decision')".format(lines[0]) # note: only for one line! # ) # DaVinci().EventPreFilters = fltrs.filters('Filters') DaVinci().InputType = "DST" DaVinci().DataType = year
from os import environ from GaudiKernel.SystemOfUnits import * from Gaudi.Configuration import * from Configurables import GaudiSequencer, CombineParticles from Configurables import DecayTreeTuple, EventTuple, TupleToolTrigger, TupleToolTISTOS,FilterDesktop, MCDecayTreeTuple,PrintMCTree from Configurables import BackgroundCategory, TupleToolDecay, TupleToolVtxIsoln,TupleToolPid,EventCountHisto,TupleToolRecoStats from Configurables import LoKi__Hybrid__TupleTool, TupleToolVeto # Unit SeqPhys = GaudiSequencer("SeqPhys") mct = MCDecayTreeTuple('mct') mct.Decay = "gamma" mct.Branches = { "gamma" :"gamma" , } mctB = MCDecayTreeTuple('mctB') mctB.Decay = "[B0]CC" mctB.Branches = { "B0" :"[B0]CC" , } #mct = MCDecayTreeTuple('mct') #mct.Decay = "[Lambda_c+ => ^p+ ^K- ^pi+]CC" #mct.Branches = { # "Lc" :"[Lambda_c+ => p+ K- pi+ ]CC" , # "Lcp":"[Lambda_c+ => ^p+ K- pi+]CC" , # "LcK":"[Lambda_c+ => p+ ^K- pi+]CC" , # "LcH":"[Lambda_c+ => p+ K- ^pi+]CC" , # } #mct = MCDecayTreeTuple('mct') #mct.Decay = "[D0 => ^K- ^pi+]CC" #mct.Branches = {
"nPhotons" : "MCNINTREE ( ('gamma'==MCABSID) )", "MC_PT" : "MCPT", "MC_THETA" : "MCTHETA", "MC_ETA" : "MCETA", "MC_PHI" : "MCPHI", "MC_ABSID" : "MCABSID" } # mctuple_B2Kmumu = MCDecayTreeTuple( 'MCTuple_B2Kmumu' ) mctuple_B2psiomega = MCDecayTreeTuple( 'MCTuple_B2psiomega' ) mctuple_B2psiomega.Decay = "[ (Beauty & LongLived) --> ^(J/psi(1S) -> ^mu+ ^mu- ...) ^(omega(782) -> ^pi+ ^pi- ^pi0 ) ]CC" mctuple_B2psiomega.Branches = { 'B' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'Jpsi' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'omega' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) ^(omega(782) -> pi+ pi- pi0 ) ]CC", 'muplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> ^mu+ mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'muminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ ^mu- ...) (omega(782) -> pi+ pi- pi0 ) ]CC", 'piplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> ^pi+ pi- pi0 ) ]CC", 'piminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ ^pi- pi0 ) ]CC", 'pizero' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) (omega(782) -> pi+ pi- ^pi0 ) ]CC", } # 'B' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", # 'Kplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ mu- ...) ^K+ ... ]CC", # 'psi' : "[ (Beauty & LongLived) --> ^(J/psi(1S) -> mu+ mu- ...) K+ ... ]CC", # 'muplus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> ^mu+ mu- ...) K+ ... ]CC", # 'muminus' : "[ (Beauty & LongLived) --> (J/psi(1S) -> mu+ ^mu- ...) K+ ... ]CC", # List of the mc tuples mctuples = [ mctuple_B2psiomega ]