Skip to content
Snippets Groups Projects

Adding mue versions for the Lb2pkllLoose lines in Bu2LLK

Merged Dan Thompson requested to merge RD_Lb2pkmeLooseLines_2018-patches into RD_2018-patches
1 file
+ 69
4
Compare changes
  • Side-by-side
  • Inline
@@ -8,9 +8,9 @@
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
__author__ = 'Patrick Koppenburg, Alex Shires, Thomas Blake, Luca Pescatore, Simone Bifani, Yasmine Amhis, Paula Alvarez Cartelle, Harry Cliff, Rafael Silva Coutinho, Guido Andreassi, Mick Mulder, Maarten van Veghel, John Smeaton, Vitalii Lisovskyi, Biplab Dey'
__date__ = '14/03/2021'
__version__ = '$Revision: 6 $'
__author__ = 'Patrick Koppenburg, Alex Shires, Thomas Blake, Luca Pescatore, Simone Bifani, Yasmine Amhis, Paula Alvarez Cartelle, Harry Cliff, Rafael Silva Coutinho, Guido Andreassi, Mick Mulder, Maarten van Veghel, John Smeaton, Vitalii Lisovskyi, Biplab Dey, Dan Thompson'
__date__ = '20/06/2023'
__version__ = '$Revision: 7 $'
__all__ = ( 'Bu2LLKConf', 'default_config' )
@@ -906,6 +906,8 @@ class Bu2LLKConf(LineBuilder) :
Sel_ee_Loose = self._make_ee_Loose("Sel_ee_Loose_For" + self._name, params = config )
Sel_mm_Loose = self._make_mm_Loose("Sel_mm_Loose_For" + self._name, params = config )
Sel_me_Loose = self._make_me_Loose("Sel_me_Loose_For" + self._name, params = config )
Sel_meSS_Loose = self._make_me_Loose("Sel_meSS_Loose_For" + self._name, params = config , samesign=True)
SelL1520forpKll = self._makeL1520forpkll("SelL1520For" + self._name,params = config )
@@ -914,6 +916,15 @@ class Bu2LLKConf(LineBuilder) :
dimuons = Sel_mm_Loose,
params = config )
SelLb2pkmeLoose = self._makeLb2pkme(meXLine_name + "_pkmeLoose",
l1520 = SelL1520forpKll,
mue = Sel_me_Loose,
params = config )
SelLb2pkmeSSLoose = self._makeLb2pkme(meXSSLine_name + "_pkmeSSLoose",
l1520 = SelL1520forpKll,
mue = Sel_meSS_Loose,
params = config )
SelLb2pkeeLoose = self._makeLb2pkee(eeXLine_name + "_pkeeLoose",
l1520 = SelL1520forpKll,
dilepton = Sel_ee_Loose,
@@ -1115,6 +1126,20 @@ class Bu2LLKConf(LineBuilder) :
MDSTFlag = False,
MaxCandidates = 4000)
self.Lb2pkmeLooseLine = StrippingLine( meXLine_name + "_Lb2pkmeLoose" + "Line",
selection = SelLb2pkmeLoose,
RelatedInfoTools = config['RelatedInfoTools'] + RelInfoTrackIsolationBDT2_Lb2pKll,
FILTER = SPDFilter_loose, # SPD < 600
MDSTFlag = False,
MaxCandidates = 4000)
self.Lb2pkmeSSLooseLine = StrippingLine( meXSSLine_name + "_Lb2pkmeSSLoose" + "Line",
selection = SelLb2pkmeSSLoose,
RelatedInfoTools = config['RelatedInfoTools'] + RelInfoTrackIsolationBDT2_Lb2pKll,
FILTER = SPDFilter_loose, # SPD < 600
MDSTFlag = False,
MaxCandidates = 4000)
self.Lb2pkeeLooseLine = StrippingLine( eeXLine_name + "_Lb2pkeeLoose" + "Line",
selection = SelLb2pkeeLoose,
RelatedInfoTools = config['RelatedInfoTools'] + RelInfoTrackIsolationBDT2_Lb2pKll,
@@ -1155,6 +1180,8 @@ class Bu2LLKConf(LineBuilder) :
self.registerLine( self.B2KpipipimmLine )
self.registerLine( self.B2KpipipieeLine )
self.registerLine( self.Lb2pkmmLooseLine )
self.registerLine( self.Lb2pkmeLooseLine )
self.registerLine( self.Lb2pkmeSSLooseLine )
self.registerLine( self.Lb2pkeeLooseLine )
self.registerLine( self.Lb2KsppimmLooseLine )
self.registerLine( self.Lb2KsppieeLooseLine )
@@ -2027,7 +2054,7 @@ class Bu2LLKConf(LineBuilder) :
Make dimuons for Loose Lb->{pK, Ksppi}ll
"""
# Form the dimuon (B2XMuMu-like) w/ looser MINIPCHI2
_dauCuts_mu = "(MIPCHI2DV(PRIMARY) > 5) & (TRGHP < 0.6) & (PIDmu> -3.0)"
_dauCuts_mu = "(MIPCHI2DV(PRIMARY) > 5) & (TRGHP < 0.6) & (PIDmu> -3.0)"
_momCuts_dimu = "(VFASPF(VCHI2/VDOF) < 12.0) & (BPVDIRA> -0.9) & (BPVVDCHI2 > 9.0)"
_combCut_dimu = "(AM < 7100*MeV)"
@@ -2037,6 +2064,24 @@ class Bu2LLKConf(LineBuilder) :
MotherCut = _momCuts_dimu)
return Selection("sel_mm_Loose", Algorithm=comb_dimuon, RequiredSelections=[DataOnDemand(Location="Phys/StdAllLooseMuons/Particles")])
def _make_me_Loose( self, name, params, samesign = False ) :
"""
Make dimuons for Loose Lb->{pK, Ksppi}ll
"""
# Form the dimuon (B2XMuMu-like) w/ looser MINIPCHI2
_dauCuts_mu = "(MIPCHI2DV(PRIMARY) > 5) & (TRGHP < 0.6) & (PIDmu> -3.0)"
_dauCuts_e = "(MIPCHI2DV(PRIMARY) > 5) & (PT > 300 *MeV) & (ABSID==11) & (PIDe > 0)" #overwrites particle constructor cuts
_momCuts_mue = "(VFASPF(VCHI2/VDOF) < 12.0) & (BPVDIRA> -0.9) & (BPVVDCHI2 > 9.0)"
_combCut_mue = "(AM < 7100*MeV)"
comb_mue = CombineParticles(DecayDescriptor = "[J/psi(1S) -> mu+ e-]cc" if not samesign else "[J/psi(1S) -> mu+ e+]cc",
DaughtersCuts = {"mu+":_dauCuts_mu,"e-":_dauCuts_e},
CombinationCut = _combCut_mue,
MotherCut = _momCuts_mue)
return Selection(name, Algorithm=comb_mue, RequiredSelections=[DataOnDemand(Location="Phys/StdAllLooseMuons/Particles"),
DataOnDemand(Location="Phys/StdLooseElectrons/Particles")])
def _makeL1520forpkll( self, name, params ) :
"""
Make a Lambda(1520)0 -> p K
@@ -2100,6 +2145,26 @@ class Bu2LLKConf(LineBuilder) :
]
return Selection("sel_Lb2pKmm", Algorithm = sel_Lb2pKmm_filter, RequiredSelections = [sel_Lb2pKmm_init])
def _makeLb2pkme( self, name, l1520, mue, params ) :
"""
Make the Lb -> J/psi(1s) Lambda(1520)0
"""
combB_Lb2pKme = CombineParticles(DecayDescriptor = "[Lambda_b0 -> J/psi(1S) Lambda(1520)0]cc",
CombinationCut = "in_range(4000,AM,7100)",
MotherCut = "(in_range(4000,M,7100)) & (VFASPF(VCHI2PDOF) < 30) & (PT>200*MeV)")
sel_Lb2pKme_init = Selection("selection_Lb2pKmeSS_init" if "SS" in name else "selection_Lb2pKme_init",
Algorithm=combB_Lb2pKme,
RequiredSelections=[mue,l1520])
sel_Lb2pKme_filter = FilterDesktop(Code = "(in_range(5000,mB,6500)) & (dtf_signif > 3.5) & (dtf_prob > 1.0E-6) & (mpK<4*GeV)")
sel_Lb2pKme_filter.Preambulo = [
"dtf_prob = DTF_PROB(True)",
"dtf_signif = DTF_CTAUSIGNIFICANCE(0, True)",
"mB = DTF_FUN(M, True)",
"mpK = DTF_FUN(CHILD(2, M), True)"
]
return Selection("sel_Lb2pKmeSS" if "SS" in name else "sel_Lb2pKme",
Algorithm = sel_Lb2pKme_filter, RequiredSelections = [sel_Lb2pKme_init])
def _makeLb2pkee( self, name, l1520, dilepton, params ) :
"""
Loading