"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)
"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"
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])
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 }