Example #1
0
    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
Example #2
0
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])
Example #4
0
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])
Example #5
0
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])
Example #6
0
    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    
Example #7
0
    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
Example #8
0
    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