Exemplo n.º 1
0
# =============================================================================
__author__ = " Albert Bursche "
__date__ = " 2011-07-22 "
__version__ = "0.1"
# =============================================================================

# =============================================================================
"""
Select MC particles having a chance to pass the offline criteria. Needs updating if these citeria change.
"""

from Configurables import FilterDesktop
MCPartFilter = FilterDesktop("FilteredStableParticles")  #,OutputLevel = DEBUG)
MCPartFilter.InputLocations = ["Phys/StdHepMCParticles/Particles"]
MCPartFilter.Code = "(PT > 150*MeV) & (ETA >0)"  # corresponds to an 200 MeV cut on reco tracks
# eta cut for speed optimisation
Exemplo n.º 2
0
'''
Bd->JpsiKS stripping selection using LoKi::Hybrid and python
configurables. PV refitting is done. Based on roadmap selection
with loose PID cuts.
'''

from Gaudi.Configuration import *
from StrippingConf.StrippingLine import StrippingLine, StrippingMember
from Configurables import FilterDesktop, CombineParticles, OfflineVertexFitter
import GaudiKernel.SystemOfUnits as Units

################
# KS long long #
################
KSLLForBd2Jpsi2MuMuKS = FilterDesktop("StripKSLLForBd2Jpsi2MuMuKS")
KSLLForBd2Jpsi2MuMuKS.InputLocations = ["StdLooseKsLL"]
KSLLForBd2Jpsi2MuMuKS.Code = "  (MINTREE( ('pi+'==ABSID), P) >2.*GeV)"\
                             "& (MINTREE( ('pi+'==ABSID), MIPCHI2DV(PRIMARY)) >9.)"\
                             "& (MAXTREE( ('pi+'==ABSID), TRCHI2DOF) <10.)"\
                             "& (VFASPF(VCHI2/VDOF)<10.)"\
                             "& (ADMASS('KS0') < 80.0*MeV)"

############################
# KS downstream downstream #
############################
KSDDForBd2Jpsi2MuMuKS = FilterDesktop("StripKSDDForBd2Jpsi2MuMuKS")
KSDDForBd2Jpsi2MuMuKS.InputLocations = ["StdLooseKsDD"]
KSDDForBd2Jpsi2MuMuKS.Code = "  (MINTREE( ('pi+'==ABSID), P) >2.*GeV)"\
                             "& (MINTREE( ('pi+'==ABSID), MIPCHI2DV(PRIMARY)) >4.)"\
                             "& (MAXTREE( ('pi+'==ABSID), TRCHI2DOF) <20.)"\
                             "& (VFASPF(VCHI2/VDOF)<20.)"\
Exemplo n.º 3
0
# =============================================================================
__author__ = "Albert Bursche"
__date__ = " 2011-07-22 "
__version__ = "0.1"
# =============================================================================

# =============================================================================
"""
Select a track sample for jet reconstruction. 
"""

from Configurables import FilterDesktop
SelectedTracks = FilterDesktop("FilteredPions")  #,OutputLevel = DEBUG)
SelectedTracks.InputLocations = [
    "/Event/Phys/StdNoPIDsPions/Particles", "Phys/StdNoPIDsDownPions/Particles"
]
SelectedTracks.Code = "(PT > 200*MeV) & (PERR2/(P*P) < 0.04) "
#SelectedTracks.Preambulo = [ "from LoKiProtoParticles.decorators import *"]
Exemplo n.º 4
0
from StrippingConf.StrippingLine import StrippingLine

importOptions('$HLTSELECTIONSROOT/options/Hlt2LineTopoTF2BodyDEV.py')
importOptions('$HLTSELECTIONSROOT/options/Hlt2LineTopoTF3BodyDEV.py')
importOptions('$HLTSELECTIONSROOT/options/Hlt2LineTopoTF4BodyDEV.py')
importOptions(
    '$HLT2SHAREDPARTICLESROOT/python/Hlt2SharedParticles/TopoTF2Body.py')
importOptions(
    '$HLT2SHAREDPARTICLESROOT/python/Hlt2SharedParticles/TopoTF3Body.py')
importOptions(
    '$HLT2SHAREDPARTICLESROOT/python/Hlt2SharedParticles/TopoTFInputParticles.py'
)

#Point the topological to use the offline pions and kaons but still no PID!
Hlt2TopoTFInputParticles = FilterDesktop("Hlt2TopoTFInputParticles")
Hlt2TopoTFInputParticles.InputLocations = ["StdNoPIDsPions", "StdNoPIDsKaons"]

#The shared particles
Hlt2SharedTopoTF2Body = CombineParticles("Hlt2SharedTopoTF2Body")
Hlt2SharedTopoTF3Body = CombineParticles("Hlt2SharedTopoTF3Body")

#The topo selections
filterTopoTF2Body = FilterDesktop('Hlt2FilterTopoTF2BodyDEV')
filterTopoTF3Body = FilterDesktop('Hlt2FilterTopoTF3BodyDEV')
combine = CombineParticles('Hlt2CombineTopoTF4BodyDEV')

#The 2 body topo sequencer
TwoBodyTopoSeq = GaudiSequencer("TwoBodyTopoSeq")
TwoBodyTopoSeq.Members += [Hlt2TopoTFInputParticles]
TwoBodyTopoSeq.Members += [Hlt2SharedTopoTF2Body]
TwoBodyTopoSeq.Members += [filterTopoTF2Body]
Exemplo n.º 5
0
from Configurables import DecayTreeTuple
from Configurables import CombineParticles, FilterDesktop
from Configurables import TupleToolMCBackgroundInfo, TupleToolMCTruth, BackgroundCategory
from StrippingConf.StrippingLine import StrippingLine

########################################################################
B2DhOfflineDplus2KPiPi = CombineParticles("B2DhOfflineDplus2KPiPi")
B2DhOfflineDplus2KPiPi.InputLocations = [ "StdTightPions", "StdTightKaons" ]
B2DhOfflineDplus2KPiPi.DecayDescriptor = "[D+ -> K- pi+ pi+]cc"

B2DhOfflineDplus2KPiPi.DaughtersCuts = {"pi+" : "((PT > 300*MeV) & (P > 2*GeV) & (MIPCHI2DV(PRIMARY) > 9))" , "K+" :  "((PT> 300*MeV) & (P > 2*GeV) & (MIPCHI2DV(PRIMARY) > 9))"};
B2DhOfflineDplus2KPiPi.CombinationCut = "( (ADAMASS('D+') < 21*MeV) & (APT > 2.*GeV) )";
B2DhOfflineDplus2KPiPi.MotherCut = "((VFASPF(VCHI2/VDOF)<15) & (BPVVDCHI2>100.) & (MIPCHI2DV(PRIMARY)>9))";
########################################################################
B2DhOfflineBachelor = FilterDesktop("B2DhOfflineBachelor")
B2DhOfflineBachelor.InputLocations  = [ "StdLoosePions" ]
B2DhOfflineBachelor.Code = "((PT > 500*MeV) & (P > 2*GeV) & (MIPCHI2DV(PRIMARY) > 9))"
########################################################################
B2DhOfflineSel = CombineParticles("B2DhOfflineSel")
B2DhOfflineSel.InputLocations  = [   "B2DhOfflineDplus2KPiPi",
                                                 "B2DhOfflineBachelor"]
B2DhOfflineSel.DecayDescriptor  = "[B0 -> D+ pi-]cc"
B2DhOfflineSel.DaughtersCuts = { "D+" : "ALL" }
B2DhOfflineSel.CombinationCut = "(ADAMASS('B0')<50*MeV)"
B2DhOfflineSel.MotherCut = "(VFASPF(VCHI2/VDOF)<10) & (BPVIPCHI2()<16.) & (BPVVDCHI2 > 6.25) & (BPVDIRA>0.9999)"
########################################################################
B2DhOfflineFilterSequence = GaudiSequencer("B2DhOfflineFilterSequence")
B2DhOfflineFilterSequence.Members += [ B2DhOfflineDplus2KPiPi ]
B2DhOfflineFilterSequence.Members += [ B2DhOfflineBachelor ]
B2DhOfflineFilterSequence.Members += [ B2DhOfflineSel ]
########################################################################
Exemplo n.º 6
0
'''
Bs->JpsiPhi stripping selection using LoKi::Hybrid and python
configurables. PV refitting is done. Based on roadmap selection
with loose PID cuts.
'''

from Gaudi.Configuration import *
from StrippingConf.StrippingLine import StrippingLine, StrippingMember
from Configurables import FilterDesktop, CombineParticles, OfflineVertexFitter
import GaudiKernel.SystemOfUnits as Units

#############################
# Standard Unbiased Phi->KK #
#############################
StdUnbiasedPhi2KK = FilterDesktop("StripStdUnbiasedPhi2KK")
StdUnbiasedPhi2KK.InputLocations = ["StdLooseUnbiasedPhi2KK"]
StdUnbiasedPhi2KK.Code = "  (MINTREE('K+'==ABSID, PIDK) > -5.0)" \
                         "& (ADMASS('phi(1020)') < 15.*MeV)" \
                         "& (PT > 1000.*MeV)" \
                         "& (VFASPF(VCHI2/VDOF) < 20.0)"
######
# Bs #
######
Bs2JpsiPhi = CombineParticles("StripBs2JpsiPhi")
Bs2JpsiPhi.DecayDescriptor = "B_s0 -> J/psi(1S) phi(1020)"
Bs2JpsiPhi.InputLocations = [
    "StdLTUnbiasedJpsi2MuMu", "StripStdUnbiasedPhi2KK"
]
# Set the OfflineVertexFitter to keep the 4 tracks and not the J/Psi Phi
Bs2JpsiPhi.addTool(OfflineVertexFitter())
Bs2JpsiPhi.VertexFitters.update({"": "OfflineVertexFitter"})