Ejemplo n.º 1
0
from Gaudi.Configuration import *
from Configurables import CombineParticles, ParticleMonitor, DaVinci

muonPIDLaSeq = GaudiSequencer("MuonPIDLambdaSequence")

LambdaCalibDDName = "MuonLambdaCalibDD"
LambdaCalibDD = CombineParticles(LambdaCalibDDName)
LambdaCalibDD.InputLocations = ["StdNoPIDsDownPions", "StdNoPIDsDownProtons"]
LambdaCalibDD.DecayDescriptor = "[Lambda0 -> p+ pi-]cc"
LambdaCalibDD.CombinationCut = "(ADAMASS('Lambda0')<100*MeV)"
LambdaCalibDD.DaughtersCuts = {
    "p+":
    "(P>3000*MeV) & (PT>100*MeV) & (ISDOWN) & (0.5<PPINFO(LHCb.ProtoParticle.InAccMuon,-1))",
    "pi-":
    "(P>3000*MeV) & (PT>100*MeV) & (ISDOWN) & (0.5<PPINFO(LHCb.ProtoParticle.InAccMuon,-1))"
}
LambdaCalibDD.MotherCut = " (VFASPF(VCHI2)<5) & (500<BPVVDZ) & (BPVVDZ<2000) & (BPVDIRA>0.9999995) "
muonPIDLaSeq.Members += [LambdaCalibDD]

plotLamDD = ParticleMonitor("MuonLamdaDDMoni")
plotLamDD.InputLocations = [LambdaCalibDDName]
plotLamDD.PeakCut = "(ADMASS('Lambda0')<10*MeV)"
plotLamDD.SideBandCut = "(ADMASS('Lambda0')>20*MeV)"
plotLamDD.PlotTools = ["MassPlotTool"]
muonPIDLaSeq.Members += [plotLamDD]
##############################################################################
#
# Add Sequences to Monitors
#
DaVinci().MoniSequence += [muonPIDLaSeq]  # Muon PID Lambda sequence
Ejemplo n.º 2
0
from Configurables import CombineParticles, ParticleMonitor, DaVinci
muonPIDJpSeq = GaudiSequencer("MuonPIDJpsiSequence")

JpsiCalibName = "MuonJpsiCalib"
JpsiCalib = CombineParticles(JpsiCalibName)
JpsiCalib.InputLocations = ["StdNoPIDsMuons"]
JpsiCalib.DecayDescriptor = "J/psi(1S) -> mu+ mu-"
JpsiCalib.CombinationCut = "(ADAMASS('J/psi(1S)')<300*MeV)"

muonscut = "(TRCHI2DOF<3) & (P>3*GeV) & (PT>500*MeV) & (ISLONG) & (0.5<PPINFO(LHCb.ProtoParticle.InAccMuon,-1)) & (PPINFO(LHCb.ProtoParticle.CaloEcalE,-10000)<800*MeV) & (PPINFO(LHCb.ProtoParticle.CaloHcalE,-10000)<4000*MeV) & (PPINFO(LHCb.ProtoParticle.CaloEcalE,-10000)>-10*MeV) & (PPINFO(LHCb.ProtoParticle.CaloHcalE,-10000)>1000*MeV)"
JpsiCalib.DaughtersCuts = {"mu+": muonscut, "mu-": muonscut}

childcuts = " ( ((CHILDCUT(ISMUON,1)) & (CHILDCUT((PT>1*GeV),1)) & (CHILDCUT((P>10*GeV),1)) ) | ((CHILDCUT(ISMUON,2)) & (CHILDCUT((PT>1*GeV),2)) & (CHILDCUT((P>10*GeV),2))) ) "
JpsiCalib.MotherCut = "(VFASPF(VCHI2/VDOF)<3) & " + childcuts
childcuts = " ( ((CHILDCUT(ISMUON,1)) & (CHILDCUT((PT>1*GeV),1)) & (CHILDCUT((P>10*GeV),1)) ) | ((CHILDCUT(ISMUON,2)) & (CHILDCUT((PT>1*GeV),2)) & (CHILDCUT((P>10*GeV),2))) ) "
JpsiCalib.MotherCut = "(VFASPF(VCHI2/VDOF)<3) & " + childcuts

muonPIDJpSeq.Members += [JpsiCalib]

plotJPsiPr = ParticleMonitor("MuonJpsiPromptMoni")
plotJPsiPr.InputLocations = [JpsiCalibName]
plotJPsiPr.PeakCut = "(ADMASS('J/psi(1S)')<50*MeV)"
plotJPsiPr.SideBandCut = "(ADMASS('J/psi(1S)')>100*MeV)"
plotJPsiPr.PlotTools = ["MassPlotTool"]
muonPIDJpSeq.Members += [plotJPsiPr]
##############################################################################
#
# Add Sequences to Monitors
#
DaVinci().MoniSequence += [muonPIDJpSeq]  # Muon PID Jpsi sequence