def __F2__(self, Rho, conf): """ Make a f_2(1950) -> p pbar """ f2SubMMZAlg = SubPIDMMFilter(self.name+"_F2SubMMZ_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'p+', 'p~-'] ] ) f2SubMMPAlg = SubPIDMMFilter(self.name+"_F2SubMMP_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi+')", MinMM=0, MaxMM=6050, PIDs = [ [ 'p+', 'p+'] ] ) f2SubMMMAlg = SubPIDMMFilter(self.name+"_F2SubMMM_Alg", Code= "DECTREE('rho(770)0 -> pi- pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'p~-', 'p~-'] ] ) f2SubMMZSel = Selection( self.name+"_F2SubMMZ_Sel", Algorithm = f2SubMMZAlg, RequiredSelections = [ Rho ] ) f2SubMMPSel = Selection( self.name+"_F2SubMMP_Sel", Algorithm = f2SubMMPAlg, RequiredSelections = [ Rho ] ) f2SubMMMSel = Selection( self.name+"_F2SubMMM_Sel", Algorithm = f2SubMMMAlg, RequiredSelections = [ Rho ] ) f2Merge = MergedSelection( self.name+"_F2Merge", RequiredSelections = [ f2SubMMZSel, f2SubMMPSel, f2SubMMMSel ] ) f2SubAlg = SubstitutePID( self.name+"_F2Sub_Alg", Code = "ALL" , #(DECTREE('rho(770)0 -> p+ p~-')) | (DECTREE('rho(770)0 -> p+ p+')) | (DECTREE('rho(770)0 -> p~- p~-'))", MaxChi2PerDoF = -666 ) f2SubAlg.Substitutions = { 'rho(770)0 -> p+ p~-' : 'f_2(1950)' , 'rho(770)0 -> p+ p+' : 'f_2(1950)' , 'rho(770)0 -> p~- p~-' : 'f_2(1950)' } f2SubSel = Selection( self.name+"_F2Sub_Sel", Algorithm = f2SubAlg, RequiredSelections = [ f2Merge ] ) f2FilterAlg = FilterDesktop( Code = "(ABSID=='f_2(1950)')" ) f2FilterSel = Selection( self.name + "_F2Filter", Algorithm = f2FilterAlg, RequiredSelections = [ f2SubSel ] ) return f2FilterSel
def topoSubPID(name, inputs): sub = SubstitutePID(name + 'SubPID', Code="DECTREE('X0 -> X X')") sub.MaxChi2PerDoF = -666 sub.Substitutions = {'X0 -> X X': 'B0'} sel = Selection(name + 'FinalSel', Algorithm=sub, RequiredSelections=[inputs]) filter = "INTREE(ID=='B0')" return filterSelection(name, filter, [sel])
def subPID(name,p,d,inputs): sub = SubstitutePID(name+'SubPIDBeauty2XGamma', Code="DECTREE('X0 -> X+ X-')") sub.MaxChi2PerDoF = -666 sub.Substitutions = {'X0 -> ^X+ X-' : d[0],'X0 -> X+ ^X-' : d[1], 'X0 -> X+ X-' : p} sel = Selection(name+'Beauty2XGammaSel',Algorithm=sub, RequiredSelections=inputs) filter = "INTREE(ID=='%s') & INTREE(ID=='%s') & INTREE(ID=='%s')" \ % (p,d[0],d[1]) return filterSelection(name,filter,[sel])
def makeB2DstarX(sel, uppions, config): # change B to something that doesn't fly sub = SubstitutePID('SubPID' + sel.name(), Code="DECTREE('Beauty -> Charm ...')") sub.MaxChi2PerDoF = -666 sub.Substitutions = {'Beauty -> Charm ...': 'J/psi(1S)'} subsel = Selection(sel.name() + 'DstarUPSel', Algorithm=sub, RequiredSelections=[sel]) filter = "INTREE(ID=='J/psi(1S)')" subsel = filterSelection(sel.name() + 'DstarUPFilter', filter, [subsel]) # Delta M cut on D* (preambulo is below) #dmcut = '((ISD1 & ((MD1PI-MD1) < 180)) | (ISD2 & ((MD2PI-MD2) < 180)))' #dmcut = '((MD1PI-MD1) < 180) | ((MD2PI-MD2) < 180)' dmcut = "((((IDD1==421)|(IDD1==411)) & ((MD1PI-MD1) < 180)) | (((IDD2==421)|(IDD2==411)) & ((MD2PI-MD2) < 180)))" # add UP track combConfig = {'AMAXDOCA_MAX': '0.5*mm'} comboCuts = [LoKiCuts(['AMAXDOCA'], combConfig).code(), dmcut] comboCuts = LoKiCuts.combine(comboCuts) momCuts = LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], config).code() #did = "((ABSID=='D+')|(ABSID=='D0'))" preambulo = [ 'PXPI = ACHILD(PX,2)', 'PYPI = ACHILD(PY,2)', 'PZPI = ACHILD(PZ,2)', 'EPI = ACHILD(E,2)', 'IDD1 = ACHILD(CHILD(ABSID,1),1)', #'ISD1 = ACHILD(CHILD(%s,1),1)' % did, 'PXD1 = ACHILD(CHILD(PX,1),1)', 'PYD1 = ACHILD(CHILD(PY,1),1)', 'PZD1 = ACHILD(CHILD(PZ,1),1)', 'ED1 = ACHILD(CHILD(E,1),1)', 'MD1 = ACHILD(CHILD(M,1),1)', 'MD1PI = sqrt((EPI+ED1)**2 - (PXPI+PXD1)**2 - (PYPI+PYD1)**2 - (PZPI+PZD1)**2)', #'ISD2 = ACHILD(CHILD(%s,2),1)' % did, 'IDD2 = ACHILD(CHILD(ABSID,2),1)', 'PXD2 = ACHILD(CHILD(PX,2),1)', 'PYD2 = ACHILD(CHILD(PY,2),1)', 'PZD2 = ACHILD(CHILD(PZ,2),1)', 'ED2 = ACHILD(CHILD(E,2),1)', 'MD2 = ACHILD(CHILD(M,2),1)', 'MD2PI = sqrt((EPI+ED2)**2 - (PXPI+PXD2)**2 - (PYPI+PYD2)**2 - (PZPI+PZD2)**2)', ] cp = CombineParticles(CombinationCut=comboCuts, MotherCut=momCuts, Preambulo=preambulo, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc') return Selection('DstarUP' + sel.name(), Algorithm=cp, RequiredSelections=[uppions] + [subsel])
def filterEE(which,econf,xconf,inputs): code = "(ID=='J/psi(1S)') & (PT > %s) & (MINTREE('e+'==ABSID,PIDe) > %s)" \ % (xconf['PT_MIN'],econf['PIDe_MIN']) code += " & (MINTREE('e+'==ABSID,MIPCHI2DV(PRIMARY)) > %s)" \ % econf['MIPCHI2DV_MIN'] code += " & (MINTREE('e+'==ABSID,PT) > %s)" % econf['PT_MIN'] code += " & (MAXTREE('e+'==ABSID,TRGHP) < %s)" % econf['TRGHP_MAX'] code = LoKiCuts.combine([code,LoKiCuts(['HASVERTEX','BPVVDCHI2','VCHI2DOF'], xconf).code()]) #print "filterEE: ", code sel = Selection(which+'FilterEEDarkBosonFilter', Algorithm=FilterDesktop(Code=code), RequiredSelections=inputs) sub = SubstitutePID(which+'EESubPIDDarkBoson', Code="DECTREE('J/psi(1S) -> e+ e-')") sub.MaxChi2PerDoF = -666 sub.Substitutions = {'J/psi(1S) -> e+ e-' : 'KS0'} return Selection(which+'EESubPIDDarkBosonSel',Algorithm=sub, RequiredSelections=[sel])
def __Lambdastar__(self, Rho, conf): """ Make a Lambdastar """ lambdastarSubMMZAlg = SubPIDMMFilter(self.name+"_LambdastarSubMMZ_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'p+', 'K-'], ['K+', 'p~-' ] ]) lambdastarSubMMPAlg = SubPIDMMFilter(self.name+"_LambdastarSubMMP_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi+')", MinMM=0, MaxMM=6050, PIDs = [ [ 'p+', 'K+'], ['K+', 'p+' ] ]) lambdastarSubMMMAlg = SubPIDMMFilter(self.name+"_LambdastarSubMMM_Alg", Code= "DECTREE('rho(770)0 -> pi- pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'p~-', 'K-'], ['K-', 'p~-' ] ]) lambdastarSubMMZSel = Selection( self.name+"_LambdastarSubMMZ_Sel", Algorithm = lambdastarSubMMZAlg, RequiredSelections = [ Rho ] ) lambdastarSubMMPSel = Selection( self.name+"_LambdastarSubMMP_Sel", Algorithm = lambdastarSubMMPAlg, RequiredSelections = [ Rho ] ) lambdastarSubMMMSel = Selection( self.name+"_LambdastarSubMMM_Sel", Algorithm = lambdastarSubMMMAlg, RequiredSelections = [ Rho ] ) lambdastarMerge = MergedSelection( self.name+"_LambdastarMerge", RequiredSelections = [ lambdastarSubMMZSel, lambdastarSubMMPSel, lambdastarSubMMMSel ] ) lambdastarSubAlg = SubstitutePID( self.name+"_LambdastarSub_Alg", Code = "ALL", MaxChi2PerDoF = -666 ) #lambdastarSubAlg.Code = "ALL" #(DECTREE('rho(770)0 -> p+ K-')) | (DECTREE('rho(770)0 -> K+ p~-')) | (DECTREE('rho(770)0 -> p+ K+')) | (DECTREE('rho(770)0 -> p~- K-'))" lambdastarSubAlg.Substitutions = { 'rho(770)0 -> p+ K-' : 'Lambda(1520)0', 'rho(770)0 -> p+ K+' : 'Lambda(1520)0', 'rho(770)0 -> p~- K-' : 'Lambda(1520)~0', 'rho(770)0 -> K+ p~-' : 'Lambda(1520)~0' } lambdastarSubSel = Selection( self.name+"_LambdastarSub_Sel", Algorithm = lambdastarSubAlg, RequiredSelections = [ lambdastarMerge ] ) lambdastarFilterAlg = FilterDesktop( Code = "(ABSID=='Lambda(1520)0')" ) lambdastarFilterSel = Selection( self.name + "_LambdastarFilter", Algorithm = lambdastarFilterAlg, RequiredSelections = [ lambdastarSubSel ] ) return lambdastarFilterSel
def __Kstar__(self, Rho, conf): """ Make a kstar """ kstarSubMMZAlg = SubPIDMMFilter(self.name+"_KstarSubMMZ_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'K+', 'pi-'], ['pi+', 'K-' ] ]) kstarSubMMPAlg = SubPIDMMFilter(self.name+"_KstarSubMMP_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi+')", MinMM=0, MaxMM=6050, PIDs = [ [ 'K+', 'pi+'], ['pi+', 'K+' ] ]) kstarSubMMMAlg = SubPIDMMFilter(self.name+"_KstarSubMMM_Alg", Code= "DECTREE('rho(770)0 -> pi- pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'K-', 'pi-'], ['pi-', 'K-' ] ]) kstarSubMMZSel = Selection( self.name+"_KstarSubMMZ_Sel", Algorithm = kstarSubMMZAlg, RequiredSelections = [ Rho ] ) kstarSubMMPSel = Selection( self.name+"_KstarSubMMP_Sel", Algorithm = kstarSubMMPAlg, RequiredSelections = [ Rho ] ) kstarSubMMMSel = Selection( self.name+"_KstarSubMMM_Sel", Algorithm = kstarSubMMMAlg, RequiredSelections = [ Rho ] ) kstarMerge = MergedSelection( self.name+"_KstarMerge", RequiredSelections = [ kstarSubMMZSel, kstarSubMMPSel, kstarSubMMMSel ] ) kstarSubAlg = SubstitutePID( self.name+"_KstarSub_Alg", Code = "ALL", MaxChi2PerDoF = -666 ) #kstarSubAlg.Code = "ALL" #(DECTREE('rho(770)0 -> K+ pi-')) | (DECTREE('rho(770)0 -> K- pi+')) | (DECTREE('rho(770)0 -> K+ pi+')) | (DECTREE('rho(770)0 -> K- pi-'))" kstarSubAlg.Substitutions = { 'rho(770)0 -> K+ pi-' : 'K*(892)0', 'rho(770)0 -> K+ pi+' : 'K*(892)0', 'rho(770)0 -> pi+ K-' : 'K*(892)~0', 'rho(770)0 -> K- pi-' : 'K*(892)~0' } kstarSubSel = Selection( self.name+"_KstarSub_Sel", Algorithm = kstarSubAlg, RequiredSelections = [ kstarMerge ] ) kstarFilterAlg = FilterDesktop( Code = "(ABSID=='K*(892)0')" ) kstarFilterSel = Selection( self.name + "_KstarFilter", Algorithm = kstarFilterAlg, RequiredSelections = [ kstarSubSel ] ) return kstarFilterSel
def __Phi__(self, Rho, conf): """ Make a phi through substitution """ phiSubMMZAlg = SubPIDMMFilter(self.name+"_PhiSubMMZ_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'K+', 'K-'] ] ) phiSubMMPAlg = SubPIDMMFilter(self.name+"_PhiSubMMP_Alg", Code= "DECTREE('rho(770)0 -> pi+ pi+')", MinMM=0, MaxMM=6050, PIDs = [ [ 'K+', 'K+'] ] ) phiSubMMMAlg = SubPIDMMFilter(self.name+"_PhiSubMMM_Alg", Code= "DECTREE('rho(770)0 -> pi- pi-')", MinMM=0, MaxMM=6050, PIDs = [ [ 'K-', 'K-'] ] ) phiSubMMZSel = Selection( self.name+"_PhiSubMMZ_Sel", Algorithm = phiSubMMZAlg, RequiredSelections = [ Rho ] ) phiSubMMPSel = Selection( self.name+"_PhiSubMMP_Sel", Algorithm = phiSubMMPAlg, RequiredSelections = [ Rho ] ) phiSubMMMSel = Selection( self.name+"_PhiSubMMM_Sel", Algorithm = phiSubMMMAlg, RequiredSelections = [ Rho ] ) phiMerge = MergedSelection( self.name+"_PhiMerge", RequiredSelections = [ phiSubMMZSel, phiSubMMPSel, phiSubMMMSel ] ) phiSubAlg = SubstitutePID( self.name+"_PhiSub_Alg", Code = "ALL", MaxChi2PerDoF = -666 ) #(DECTREE('rho(770)0 -> K+ K-')) | (DECTREE('rho(770)0 -> K+ K+')) | (DECTREE('rho(770)0 -> K- K-'))", phiSubAlg.Substitutions = { 'rho(770)0 -> K+ K-' : 'phi(1020)' , 'rho(770)0 -> K+ K+' : 'phi(1020)' , 'rho(770)0 -> K- K-' : 'phi(1020)' } phiSubSel = Selection( self.name+"_PhiSub_Sel", Algorithm = phiSubAlg, RequiredSelections = [ phiMerge ] ) phiFilterAlg = FilterDesktop( Code = "(ABSID=='phi(1020)')" ) phiFilterSel = Selection( self.name + "_PhiFilter", Algorithm = phiFilterAlg, RequiredSelections = [ phiSubSel ] ) return phiFilterSel