"pi+": "(P>2*GeV) & (MIPCHI2DV(PRIMARY)>9)",
    "p+": "(P>2*GeV) & (MIPCHI2DV(PRIMARY)>9)"
}

StdLooseLambdaLL.CombinationCut = "(ADAMASS('Lambda0')<50*MeV) & (ADOCACHI2CUT(30, ''))"
StdLooseLambdaLL.MotherCut = "(ADMASS('Lambda0')<35*MeV) & (VFASPF(VCHI2)<30)"

## configure Data-On-Demand service
locations = updateDoD(StdLooseLambdaLL)

## ============================================================================
#  configuration file for 'Standard Loose Downstream '
#  @author Greig Cowan
#  @date 2009-04-27
# =============================================================================
StdLooseLambdaDD = StdLooseLambdaLL.clone('StdLooseLambdaDD')

StdLooseLambdaDD.Inputs = [
    "Phys/StdNoPIDsDownPions/Particles", "Phys/StdNoPIDsDownProtons/Particles"
]

StdLooseLambdaDD.DaughtersCuts = {
    "pi+": "(P>2*GeV) & (MIPCHI2DV(PRIMARY)>4)",
    "p+": "(P>2*GeV) & (MIPCHI2DV(PRIMARY)>4)"
}

StdLooseLambdaDD.CombinationCut = "(ADAMASS('Lambda0')<80*MeV) & (ADOCACHI2CUT(25, ''))"
StdLooseLambdaDD.MotherCut = "(ADMASS('Lambda0')<64*MeV) & (VFASPF(VCHI2)<25)"

## configure Data-On-Demand service
locations = updateDoD(StdLooseLambdaDD)
 if (idx0 != idx1):
     lc_daughters[idx0] = lc_daughters_template["h1"].format(h1, h2)
     lc_daughters[idx1] = lc_daughters_template["h2"].format(h1, h2)
 else:
     lc_daughters[idx0] = lc_daughters_template["h1"].format(
         h1, '^{0}'.format(h2)
     )
 lb_daughters = {
     "Lambda_c+": "ALL",
     "mu+": lb_daughters_template["mu+"].format(mu)
 }
 # Combine Lambda_c daughters to form mother
 lc_combine_name = "CombineCheated{0}".format(line)
 lc_decay = lc_decay_template.format(h1, h2)
 lc_mother = lc_mother_template.format(h1, h2)
 lc_combine = lc_combine_template.clone(lc_combine_name)
 lc_combine.DecayDescriptor = lc_decay
 lc_combine.DaughtersCuts = lc_daughters
 lc_combine.MotherCut = lc_mother
 # Combine Lambda_b daughters to form mother
 lb_combine_name = "CombineCheatedLbTomu{0}".format(line)
 lb_decay = lb_decay_template.format(mu)
 lb_mother = lb_mother_template.format(mu)
 lb_combine = lb_combine_template.clone(lb_combine_name)
 lb_combine.DecayDescriptor = lb_decay
 lb_combine.DaughtersCuts = lb_daughters
 lb_combine.MotherCut = lb_mother
 # Output of combining Lc daughters is input to combining Lb daughters
 lb_combine.Inputs = [
     "Phys/StdAllNoPIDsMuons",
     "Phys/{0}".format(lc_combine_name)
]
StdLooseDplus2KPiPi.DecayDescriptor = "[D+ -> K- pi+ pi+]cc"
StdLooseDplus2KPiPi.DaughtersCuts = {"K+": "(P > 2*GeV)", "pi+": "(P > 2*GeV)"}

#Need an upper mass window of 100 MeV for background estimation
#and a lower mass window of 200 to catch the D+ and Ds

StdLooseDplus2KPiPi.CombinationCut = "((AM>1760.*MeV) & (AM<2080.*MeV) & ((APT>1.*GeV) | (ASUM(PT)>1.*GeV)) & (ADOCAMAX('')<0.5*mm))"
StdLooseDplus2KPiPi.MotherCut = "((VFASPF(VCHI2) < 30 ) & (M>1770.*MeV) & (M < 2070.*MeV) & (BPVVDCHI2>36) & (BPVDIRA>0.98))"

## configure Data-On-Demand service
locations = updateDoD(StdLooseDplus2KPiPi)
##########################################################################################
# D+ -> K K Pi is a clone of D+ -> K Pi Pi
#
StdLooseDplus2KKPi = StdLooseDplus2KPiPi.clone("StdLooseDplus2KKPi")
StdLooseDplus2KKPi.DecayDescriptor = "[D+ -> K- K+ pi+]cc"
locations = updateDoD(StdLooseDplus2KKPi)
##########################################################################################
# D+ -> 3 pi is a clone of D+ -> K Pi Pi
#
StdLooseDplus2PiPiPi = StdLooseDplus2KPiPi.clone("StdLooseDplus2PiPiPi")
StdLooseDplus2PiPiPi.Inputs = ["Phys/StdLoosePions/Particles"]
StdLooseDplus2PiPiPi.DecayDescriptor = "[D+ -> pi- pi+ pi+]cc"
locations = updateDoD(StdLooseDplus2PiPiPi)
##########################################################################################
# D_s+ -> K K Pi is a clone of D+ -> K Pi Pi
#
StdLooseDsplus2KKPi = StdLooseDplus2KPiPi.clone("StdLooseDsplus2KKPi")
StdLooseDsplus2KKPi.DecayDescriptor = "[D_s+ -> K- K+ pi+]cc"
locations = updateDoD(StdLooseDsplus2KKPi)
Example #4
0
    "Phys/StdLoosePions/Particles", "Phys/StdLooseKsLL/Particles"
]

StdLooseD02KsPiPi.DecayDescriptor = "[D0 -> KS0 pi+ pi-]cc"

StdLooseD02KsPiPi.DaughtersCuts = {"pi+": "(PT>400*MeV)", "KS0": "(PT>1*GeV)"}
StdLooseD02KsPiPi.CombinationCut = "(ADAMASS('D0')<80*MeV) & (APT>1800*MeV)"
StdLooseD02KsPiPi.MotherCut = "(VFASPF(VCHI2/VDOF)<10) & (MIPCHI2DV(PRIMARY)>1)"

## configure Data-On-Demand service
locations = updateDoD(StdLooseD02KsPiPi)

##########################################################################################
# D0 -> Ks K K is a clone of Ks Pi Pi
#
StdLooseD02KsKK = StdLooseD02KsPiPi.clone("StdLooseD02KsKK")

StdLooseD02KsKK.Inputs = [
    "Phys/StdLooseKaons/Particles", "Phys/StdLooseKsLL/Particles"
]
StdLooseD02KsKK.DecayDescriptor = "[D0 -> KS0 K+ K-]cc"

StdLooseD02KsKK.DaughtersCuts = {"K+": "(PT>300*MeV)", "KS0": "(PT>800*MeV)"}
StdLooseD02KsKK.CombinationCut = "(ADAMASS('D0')<80) & (APT>1500*MeV)"
StdLooseD02KsKK.MotherCut = "(VFASPF(VCHI2/VDOF)<10) & (MIPCHI2DV(PRIMARY)>0.49)"

## configure Data-On-Demand service
locations = updateDoD(StdLooseD02KsKK)

## ============================================================================
if '__main__' == __name__:
StdLooseDstarWithD02KPi.Inputs = [
    "Phys/StdAllLoosePions/Particles", "Phys/StdLooseD02KPi/Particles"
]
StdLooseDstarWithD02KPi.DecayDescriptor = "[D*(2010)+ -> pi+ D0]cc"

StdLooseDstarWithD02KPi.CombinationCut = "(ADAMASS('D*(2010)+')<50*MeV) & (APT>1250*MeV)"
StdLooseDstarWithD02KPi.MotherCut = "(VFASPF(VCHI2/VDOF)<25) & (M-MAXTREE('D0'==ABSID,M)<165.5)"

## configure Data-On-Demand service
locations = updateDoD(StdLooseDstarWithD02KPi)

################################################################################
# D* with Cabibbo-suppressed D0->K+Pi- is a clone of D* with D0->KPi
#
StdLooseDstarWithD02KPiDCS = StdLooseDstarWithD02KPi.clone(
    "StdLooseDstarWithD02KPiDCS")
GaudiSequencer("SeqStdLooseDstarWithD02KPiDCS").Members += [
    StdLooseDstarWithD02KPiDCS
]
StdLooseDstarWithD02KPiDCS.Inputs = [
    "Phys/StdAllLoosePions/Particles", "Phys/StdLooseD02KPiDCS/Particles"
]
## configure Data-On-Demand service
locations.update(updateDoD(StdLooseDstarWithD02KPiDCS))

################################################################################
# D* with D0->KK is a clone of D* with D0->Kpi
#
StdLooseDstarWithD02KK = StdLooseDstarWithD02KPi.clone(
    "StdLooseDstarWithD02KK")
StdLooseDstarWithD02KK.DecayDescriptor = "[D*(2010)+ -> pi+ D0]cc"
Example #6
0
Hlt2SharedRhoPlus2PiPi0.VertexFitters.update({"": "ParticleAdder"})
Hlt2SharedRhoPlus2PiPi0.Output = 'Hlt2/Hlt2SharedRhoPlus2PiPi0/Particles'
Hlt2SharedRhoPlus2PiPi0.Inputs = [GoodPions.outputSelection()
                                  ] + AllPi0s.outputSelection()
Hlt2SharedRhoPlus2PiPi0.DecayDescriptor = "[rho(770)- -> pi- pi0]cc"
Hlt2SharedRhoPlus2PiPi0.DaughtersCuts = {
    "pi+": "ALL",
    "pi0": "(PT>1000*MeV)  & (P> 1500*MeV)"
}
#Note
#The cut of 550 MeV around the K*(892)+ is NOT a typo, is motivated
#by the requirements of the B2DVec HLT2 selection
Hlt2SharedRhoPlus2PiPi0.CombinationCut = "(ADAMASS('K*(892)+')<550*MeV)"
Hlt2SharedRhoPlus2PiPi0.MotherCut = "ALL"

RhoPlus2PiPi0 = bindMembers(None,
                            [GoodPions, AllPi0s, Hlt2SharedRhoPlus2PiPi0])
#--------------------------------------------------------------------
#rho(770) -> K pi0 is a clone of rho(770) -> pi pi0
Hlt2SharedRhoPlus2KPi0 = Hlt2SharedRhoPlus2PiPi0.clone(
    "Hlt2SharedRhoPlus2KPi0")
Hlt2SharedRhoPlus2KPi0.DecayDescriptor = "[rho(770)- -> K- pi0]cc"
Hlt2SharedRhoPlus2KPi0.Output = 'Hlt2/Hlt2SharedRhoPlus2KPi0/Particles'
Hlt2SharedRhoPlus2KPi0.Inputs = [GoodKaons.outputSelection()
                                 ] + AllPi0s.outputSelection()
Hlt2SharedRhoPlus2KPi0.DaughtersCuts.update({"K+": "ALL"})
Hlt2SharedRhoPlus2KPi0.DaughtersCuts.pop('pi+')

# @todo How do I best get Merged and Resolved in here ?
RhoPlus2KPi0 = bindMembers(None, [GoodKaons, AllPi0s, Hlt2SharedRhoPlus2KPi0])
Example #7
0
StdLooseKsDD.DaughtersCuts = {"pi+": DDPionCuts}
StdLooseKsDD.CombinationCut = "(ADAMASS('KS0') < 80.*MeV) & (ADOCACHI2CUT(25, ''))"
StdLooseKsDD.MotherCut = "(ADMASS('KS0') < 64.*MeV) & (VFASPF(VCHI2) < 25.)"

## configure Data-On-Demand service
locations.update(updateDoD(StdLooseKsDD))

## ============================================================================
#  configuration file for 'Standard Loose Long-Downstream '
#  Please be aware that this is mostly background
#  @author Patrick Koppenburg
#  @date 2012-01-26
# =============================================================================
# The one with a long pi+
StdLooseKsLD_PosLong = StdLooseKsDD.clone('StdLooseKsLD_PosLong')

StdLooseKsLD_PosLong.Inputs = [
    "Phys/StdNoPIDsDownPions/Particles", "Phys/StdLoosePions/Particles"
]
StdLooseKsLD_PosLong.DaughtersCuts = {
    "pi+": "(ISLONG) & " + DDPionCuts,
    "pi-": "(ISDOWN) & " + DDPionCuts
}

# The one with a long pi-
StdLooseKsLD_NegLong = StdLooseKsLD_PosLong.clone('StdLooseKsLD_NegLong')
StdLooseKsLD_NegLong.DaughtersCuts = {
    "pi-": "(ISLONG) & " + DDPionCuts,
    "pi+": "(ISDOWN) & " + DDPionCuts
}