From 100576938904f83e62520ff33c72bd9f362c8bc0 Mon Sep 17 00:00:00 2001 From: gcavalle Date: Fri, 3 Apr 2020 14:25:53 +0200 Subject: [PATCH 1/7] Added first B&Q basic filters and standard combinations --- .../python/Hlt2Conf/lines/onia/BcToX.py | 31 ++++ .../python/Hlt2Conf/lines/onia/BpToX.py | 31 ++++ .../python/Hlt2Conf/lines/onia/__init__.py | 20 +++ .../Hlt2Conf/lines/onia/builders/__init__.py | 0 .../onia/builders/onia_charged_hadrons.py | 143 ++++++++++++++++++ .../lines/onia/builders/onia_dimuon.py | 98 ++++++++++++ .../lines/onia/builders/onia_prefilters.py | 21 +++ .../builders/onia_standard_combinations.py | 75 +++++++++ 8 files changed, 419 insertions(+) create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/__init__.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py create mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py new file mode 100644 index 00000000000..cda6ae5ada6 --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py @@ -0,0 +1,31 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Registration of Bc+ lines +""" + +from Moore.config import HltLine, register_line_builder + +# get the prefilters +from Hlt2Conf.lines.onia.builders.onia_prefilters import make_prefilters + +# get the combination +from Hlt2Conf.lines.onia.builders.onia_standard_combinations import make_BcToJpsiPi + +all_lines = {} + +@register_line_builder(all_lines) +def Bc2ToJpsiPi_line(name='Hlt2BcpToJpsiPipLine', prescale=1): + """[B_c+ --> Jpsi pi+]CC line""" + return HltLine(name=name, + algs=make_prefilters() + [make_BcToJpsiPi()], + prescale=prescale) + diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py new file mode 100644 index 00000000000..7928043273e --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py @@ -0,0 +1,31 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Registration of the B+ lines +""" + +from Moore.config import HltLine, register_line_builder + +# get the prefilters +from Hlt2Conf.lines.onia.builders.onia_prefilters import make_prefilters + +# get the combination +from Hlt2Conf.lines.onia.builders.onia_standard_combinations import make_BpToJpsiKp + +all_lines = {} + +@register_line_builder(all_lines) +def Bp2ToJpsiKp_line(name='Hlt2BpToJpsiKpOniaLine', prescale=1): + """[B+ --> Jpsi K+]CC line""" + return HltLine(name=name, + algs=make_prefilters() + [make_BpToJpsiKp()], + prescale=prescale) + diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py new file mode 100644 index 00000000000..fcd3619d5ac --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py @@ -0,0 +1,20 @@ +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Submodule that defines the B&Q HLT2 lines +""" + +from . import (BpToX, + BcToX) + +# provide "all_lines" for correct registration by the overall HLT2 lines module +all_lines = {} +all_lines.update(BpToX.all_lines) +all_lines.update(BcToX.all_lines) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py new file mode 100644 index 00000000000..8c3bc3806b8 --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py @@ -0,0 +1,143 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Definition of B&Q charged hadrons taking into account RICHes acceptance and radiator thresholds. +Use track reduced chi square and ghost probability used in Run 2 +Separate detached and prompt categories. Prompt to be cheched for rate. +Use DLL so far for PID response. +""" +from GaudiKernel.SystemOfUnits import GeV, MeV + +from RecoConf.reco_objects_from_file import make_pvs + +from Hlt2Conf.algorithms import require_all, ParticleFilterWithPVs +from Hlt2Conf.framework import configurable + +from Hlt2Conf.standard_particles import (make_has_rich_long_pions, + make_has_rich_long_kaons, + make_has_rich_long_protons) + +#################################### +# Charged hadron selections # +#################################### + +@configurable +def make_charged_hadrons(make_particles=make_has_rich_long_pions, + make_pvs=make_pvs, + name="onia_has_rich_long_pions", + pt_min=250. * MeV, #TBC with Reco + p_min=2.5 * GeV, + p_max=150. * GeV, + eta_min=2., + eta_max=5., + trchi2dof_max=4, #TBC with Reco + trghostprob_max=0.4, #TBC with Reco + mipchi2dvprimary_min=None, + pid=None): + + code = require_all('PT > {pt_min}', + 'in_range({p_min}, P, {p_max})', + 'in_range({eta_min}, ETA, {eta_max})', + 'TRCHI2DOF < {trchi2dof_max}', + 'TRGHOSTPROB < {trghostprob_max}').format(pt_min=pt_min, + p_min=p_min, + p_max=p_max, + eta_min=eta_min, + eta_max=eta_max, + trchi2dof_max=trchi2dof_max, + trghostprob_max=trghostprob_max) + + if pid is not None: + code += ' & ({})'.format(pid) + + if mipchi2dvprimary_min is not None: + code += '& (MIPCHI2DV(PRIMARY) > {mipchi2dvprimary_min})'.format(mipchi2dvprimary_min=mipchi2dvprimary_min) + + return ParticleFilterWithPVs(make_particles(), make_pvs(), name=name, Code=code) + +#################################### +# Detached # +#################################### + +@configurable +def make_detached_pions(name="onia_detached_pions", + mipchi2dvprimary_min=3., #TBC + pid='PIDK < 0.'): + """ + Return B&Q detached pions. + """ + return make_charged_hadrons(name=name, + make_particles=make_has_rich_long_pions, + mipchi2dvprimary_min = mipchi2dvprimary_min, + pid=pid) + +@configurable +def make_detached_kaons(name="onia_detached_kaons", + mipchi2dvprimary_min=3., #TBC + pid='PIDK > 0.'): + """ + Return B&Q detached kaons. + """ + return make_charged_hadrons(make_particles=make_has_rich_long_kaons, + name=name, + mipchi2dvprimary_min = mipchi2dvprimary_min, + pid=pid) + +@configurable +def make_detached_protons(name="onia_detached_protons", + p_min=10. * GeV, + mipchi2dvprimary_min=3., #TBC + pid='PIDp > 0.'): + """ + Return B&Q detached protons. + """ + return make_charged_hadrons(make_particles=make_has_rich_long_protons, + name=name, + p_min=p_min, + mipchi2dvprimary_min=mipchi2dvprimary_min, + pid=pid) + +#################################### +# Prompt # +#################################### + +@configurable +def make_prompt_pions(name="onia_prompt_pions", + pid='PIDK < 0.'): + """ + Return B&Q prompt pions. + """ + return make_charged_hadrons(make_particles=make_has_rich_long_pions, + name=name, + pid=pid) + +@configurable +def make_prompt_kaons(name="onia_prompt_kaons", + pid='PIDK > 0.'): + """ + Return B&Q prompt kaons. + """ + return make_charged_hadrons(make_particles=make_has_rich_long_kaons, + name=name, + pid=pid) + +@configurable +def make_prompt_protons(name="onia_prompt_protons", + p_min=10. * GeV, + pid='PIDp > 0.'): + """ + Return B&Q prompt protons. + """ + return make_charged_hadrons(make_particles=make_has_rich_long_protons, + name=name, + p_min=p_min, + pid=pid) + diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py new file mode 100644 index 00000000000..196b83a375d --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py @@ -0,0 +1,98 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Make B&Q dimuon combinations. +""" + +from GaudiKernel.SystemOfUnits import MeV + +from RecoConf.reco_objects_from_file import make_pvs + +from Hlt2Conf.algorithms import require_all, ParticleFilterWithPVs +from Hlt2Conf.framework import configurable + +from Hlt2Conf.standard_particles import make_dimuon_base + +# mass window [MeV] around the Jpsi and Psi2s, +# applied to Jpsi and Psi2s lines [2018: 120 MeV] +_MASSWINDOW_JPSI = 120 * MeV +_MASSWINDOW_PSI2S = 120 * MeV + +# ProbNNmu requirements on the muons +# of the Jpsi and Psi2s lines [2018: 0.1] +_PROBNNMU_JPSI = 0.1 +_PROBNNMU_PSI2S = 0.1 + +@configurable +def make_dimuon(make_particles=make_dimuon_base, + make_pvs=make_pvs, + name="onia_prompt_dimuon", + minMass_dimuon=0 * MeV, + minPt_dimuon=600 * MeV, + minPt_muon=300 * MeV, + maxVertexChi2=25, + #maxTrackChi2_muon=10, # to be decided if we want to keep TrackChi2 cuts in the trigger + maxTrackGhostProb_muon=0.4, # this has to be reoptimised for the Upgrade + minProbNN_muon=0.1, + bpvdls_min=None): + + code = require_all('MM > {minMass_dimuon}', + 'PT > {minPt_dimuon}', + 'MINTREE("mu-" == ABSID, PT) > {minPt_muon}', + 'VFASPF(VCHI2PDOF) < {maxVertexChi2}', + # to be decided if we want to keep TrackChi2 cuts in the trigger + #'MAXTREE("mu-" == ABSID, TRCHI2DOF) < {maxTrackChi2_muon}', + 'CHILDCUT((TRGHOSTPROB < {maxTrackGhostProb_muon}),1)', + 'CHILDCUT((TRGHOSTPROB < {maxTrackGhostProb_muon}),2)', + 'MINTREE("mu-" == ABSID, PROBNNmu) > {minProbNN_muon}').format(minMass_dimuon=minMass_dimuon, + minPt_dimuon=minPt_dimuon, + minPt_muon=minPt_muon, + maxVertexChi2=maxVertexChi2, + # to be decided if we want to keep TrackChi2 cuts in the trigger + #maxTrackChi2_muon=maxTrackChi2_muon, + maxTrackGhostProb_muon=maxTrackGhostProb_muon, + minProbNN_muon=minProbNN_muon) + + if bpvdls_min is not None: + code += '& (BPVDLS() > {bpvdls_min})'.format(bpvdls_min=bpvdls_min) + + return ParticleFilterWithPVs(make_particles(), make_pvs(), name=name, Code=code) + +@configurable +def make_detached_dimuon(name="onia_detached_dimuon", + minProbNN_muon=0.1, + bpvdls_min=3.): + """ + Make the detached dimuon. + Used in Run 1-2 by many dimuon exclusive lines, previously named DetachedCommonFilter + """ + + return make_dimuon(name=name, + minProbNN_muon=minProbNN_muon, + bpvdls_min=bpvdls_min) + +@configurable +def make_detached_jpsi(name="onia_detached_jpsi", + massWind_Jpsi=_MASSWINDOW_JPSI, + minPt_Jpsi=0 * MeV): + """ + Build the Jpsi + """ + + code = require_all('ADMASS("J/psi(1S)") < {massWind_Jpsi}', + 'PT > {minPt_Jpsi}').format(massWind_Jpsi=massWind_Jpsi, + minPt_Jpsi=minPt_Jpsi) + + dimuon = make_detached_dimuon(minProbNN_muon=_PROBNNMU_JPSI) + + return ParticleFilterWithPVs(dimuon, make_pvs(), name=name, Code=code) + + diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py new file mode 100644 index 00000000000..2725f3a1ccb --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py @@ -0,0 +1,21 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Prefilters used by all lines: require at least one PV, GEC not used here. Upfront reco will be removed. +""" + +from RecoConf.hlt1_tracking import require_pvs +from RecoConf.reco_objects_from_file import (make_pvs, + upfront_reconstruction) + +def make_prefilters(): + return upfront_reconstruction() + [require_pvs(make_pvs())] + diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py new file mode 100644 index 00000000000..4e53377a5b3 --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py @@ -0,0 +1,75 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +""" +Definition of B&Q standard combinations as defined in Table 2 of the B&Q physics requirements document. +""" +from GaudiKernel.SystemOfUnits import MeV, picosecond + +from RecoConf.reco_objects_from_file import make_pvs + +from Hlt2Conf.algorithms import require_all, ParticleCombinerWithPVs +from Hlt2Conf.framework import configurable + +from Hlt2Conf.lines.onia.builders.onia_charged_hadrons import make_detached_pions, make_detached_kaons +from Hlt2Conf.lines.onia.builders.onia_dimuon import make_detached_jpsi + +@configurable +def make_BpToJpsiKp(jpsi=make_detached_jpsi(), + kaons=make_detached_kaons(), + pvs=make_pvs(), + adamass=200 *MeV, + vfaspf_max=25, + bpvltime_max=0.3 * picosecond): + """ + Make the [B+ --> Jpsi K+]cc candidate. + """ + + combination_cut = require_all("ADAMASS('B+') < {adamass}").format(adamass=adamass) + + mother_cut = require_all("VFASPF(VCHI2PDOF) < {vfaspf_max}", + "BPVLTIME() < {bpvltime_max}").format(vfaspf_max=vfaspf_max, + bpvltime_max=bpvltime_max) + + return ParticleCombinerWithPVs(particles=[jpsi, kaons], + pvs=pvs, + DecayDescriptors=["[B+ -> J/psi(1S) K+]cc"], + CombinationCut=combination_cut, + MotherCut=mother_cut) + +@configurable +def make_BcToJpsiPi(jpsi=make_detached_jpsi(), + pions=make_detached_pions(), + pvs=make_pvs(), + amass_min=5800 * MeV, + amass_max=7000 * MeV, + mass_min=6000 * MeV, + mass_max=6750 * MeV, + vfaspf_max=16, + bpvipchi2_max=25): + """ + Make the [Bc+ --> Jpsi pi+]cc candidate. Combination and mother cuts from S34 Bc2JpsiHBDTLine. + """ + + combination_cut = require_all("in_range({amass_min}, AM, {amass_max})").format(amass_min=amass_min, + amass_max=amass_max) + + mother_cut = require_all("in_range({mass_min}, M, {mass_max})", + "VFASPF(VCHI2PDOF) < {vfaspf_max}", + "BPVIPCHI2() < {bpvipchi2_max}").format(mass_min=mass_min, + mass_max=mass_max, + vfaspf_max=vfaspf_max, + bpvipchi2_max=bpvipchi2_max) + + return ParticleCombinerWithPVs(particles=[jpsi, pions], + pvs=pvs, + DecayDescriptors=["[B_c+ -> J/psi(1S) pi+]cc"], + CombinationCut=combination_cut, + MotherCut=mother_cut) -- GitLab From f8904d598a60c3dcd9c08a6e19bb9fc94f2d1504 Mon Sep 17 00:00:00 2001 From: gcavalle Date: Fri, 3 Apr 2020 15:00:48 +0200 Subject: [PATCH 2/7] lb-format applied --- .../python/Hlt2Conf/lines/onia/BcToX.py | 9 +- .../python/Hlt2Conf/lines/onia/BpToX.py | 9 +- .../python/Hlt2Conf/lines/onia/__init__.py | 3 +- .../onia/builders/onia_charged_hadrons.py | 146 ++++++++++-------- .../lines/onia/builders/onia_dimuon.py | 81 +++++----- .../lines/onia/builders/onia_prefilters.py | 7 +- .../builders/onia_standard_combinations.py | 60 +++---- 7 files changed, 171 insertions(+), 144 deletions(-) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py index cda6ae5ada6..9400fcda737 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py @@ -22,10 +22,11 @@ from Hlt2Conf.lines.onia.builders.onia_standard_combinations import make_BcToJps all_lines = {} + @register_line_builder(all_lines) def Bc2ToJpsiPi_line(name='Hlt2BcpToJpsiPipLine', prescale=1): """[B_c+ --> Jpsi pi+]CC line""" - return HltLine(name=name, - algs=make_prefilters() + [make_BcToJpsiPi()], - prescale=prescale) - + return HltLine( + name=name, + algs=make_prefilters() + [make_BcToJpsiPi()], + prescale=prescale) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py index 7928043273e..7e6a074eb98 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py @@ -22,10 +22,11 @@ from Hlt2Conf.lines.onia.builders.onia_standard_combinations import make_BpToJps all_lines = {} + @register_line_builder(all_lines) def Bp2ToJpsiKp_line(name='Hlt2BpToJpsiKpOniaLine', prescale=1): """[B+ --> Jpsi K+]CC line""" - return HltLine(name=name, - algs=make_prefilters() + [make_BpToJpsiKp()], - prescale=prescale) - + return HltLine( + name=name, + algs=make_prefilters() + [make_BpToJpsiKp()], + prescale=prescale) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py index fcd3619d5ac..30c9543f686 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py @@ -11,8 +11,7 @@ Submodule that defines the B&Q HLT2 lines """ -from . import (BpToX, - BcToX) +from . import (BpToX, BcToX) # provide "all_lines" for correct registration by the overall HLT2 lines module all_lines = {} diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py index 8c3bc3806b8..336549e72a0 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### """ -Definition of B&Q charged hadrons taking into account RICHes acceptance and radiator thresholds. +Definition of B&Q charged hadrons taking into account RICHes acceptance and radiator thresholds. Use track reduced chi square and ghost probability used in Run 2 Separate detached and prompt categories. Prompt to be cheched for rate. Use DLL so far for PID response. @@ -21,7 +21,7 @@ from RecoConf.reco_objects_from_file import make_pvs from Hlt2Conf.algorithms import require_all, ParticleFilterWithPVs from Hlt2Conf.framework import configurable -from Hlt2Conf.standard_particles import (make_has_rich_long_pions, +from Hlt2Conf.standard_particles import (make_has_rich_long_pions, make_has_rich_long_kaons, make_has_rich_long_protons) @@ -29,105 +29,119 @@ from Hlt2Conf.standard_particles import (make_has_rich_long_pions, # Charged hadron selections # #################################### + @configurable -def make_charged_hadrons(make_particles=make_has_rich_long_pions, - make_pvs=make_pvs, - name="onia_has_rich_long_pions", - pt_min=250. * MeV, #TBC with Reco - p_min=2.5 * GeV, - p_max=150. * GeV, - eta_min=2., - eta_max=5., - trchi2dof_max=4, #TBC with Reco - trghostprob_max=0.4, #TBC with Reco - mipchi2dvprimary_min=None, - pid=None): - - code = require_all('PT > {pt_min}', - 'in_range({p_min}, P, {p_max})', +def make_charged_hadrons( + make_particles=make_has_rich_long_pions, + make_pvs=make_pvs, + name="onia_has_rich_long_pions", + pt_min=250. * MeV, #TBC with Reco + p_min=2.5 * GeV, + p_max=150. * GeV, + eta_min=2., + eta_max=5., + trchi2dof_max=4, #TBC with Reco + trghostprob_max=0.4, #TBC with Reco + mipchi2dvprimary_min=None, + pid=None): + + code = require_all('PT > {pt_min}', 'in_range({p_min}, P, {p_max})', 'in_range({eta_min}, ETA, {eta_max})', 'TRCHI2DOF < {trchi2dof_max}', - 'TRGHOSTPROB < {trghostprob_max}').format(pt_min=pt_min, - p_min=p_min, - p_max=p_max, - eta_min=eta_min, - eta_max=eta_max, - trchi2dof_max=trchi2dof_max, - trghostprob_max=trghostprob_max) + 'TRGHOSTPROB < {trghostprob_max}').format( + pt_min=pt_min, + p_min=p_min, + p_max=p_max, + eta_min=eta_min, + eta_max=eta_max, + trchi2dof_max=trchi2dof_max, + trghostprob_max=trghostprob_max) if pid is not None: code += ' & ({})'.format(pid) - + if mipchi2dvprimary_min is not None: - code += '& (MIPCHI2DV(PRIMARY) > {mipchi2dvprimary_min})'.format(mipchi2dvprimary_min=mipchi2dvprimary_min) - - return ParticleFilterWithPVs(make_particles(), make_pvs(), name=name, Code=code) + code += '& (MIPCHI2DV(PRIMARY) > {mipchi2dvprimary_min})'.format( + mipchi2dvprimary_min=mipchi2dvprimary_min) + + return ParticleFilterWithPVs( + make_particles(), make_pvs(), name=name, Code=code) + #################################### # Detached # #################################### + @configurable -def make_detached_pions(name="onia_detached_pions", - mipchi2dvprimary_min=3., #TBC - pid='PIDK < 0.'): +def make_detached_pions( + name="onia_detached_pions", + mipchi2dvprimary_min=3., #TBC + pid='PIDK < 0.'): """ Return B&Q detached pions. """ - return make_charged_hadrons(name=name, - make_particles=make_has_rich_long_pions, - mipchi2dvprimary_min = mipchi2dvprimary_min, - pid=pid) + return make_charged_hadrons( + name=name, + make_particles=make_has_rich_long_pions, + mipchi2dvprimary_min=mipchi2dvprimary_min, + pid=pid) + @configurable -def make_detached_kaons(name="onia_detached_kaons", - mipchi2dvprimary_min=3., #TBC - pid='PIDK > 0.'): +def make_detached_kaons( + name="onia_detached_kaons", + mipchi2dvprimary_min=3., #TBC + pid='PIDK > 0.'): """ Return B&Q detached kaons. """ - return make_charged_hadrons(make_particles=make_has_rich_long_kaons, - name=name, - mipchi2dvprimary_min = mipchi2dvprimary_min, - pid=pid) + return make_charged_hadrons( + make_particles=make_has_rich_long_kaons, + name=name, + mipchi2dvprimary_min=mipchi2dvprimary_min, + pid=pid) + @configurable -def make_detached_protons(name="onia_detached_protons", - p_min=10. * GeV, - mipchi2dvprimary_min=3., #TBC - pid='PIDp > 0.'): +def make_detached_protons( + name="onia_detached_protons", + p_min=10. * GeV, + mipchi2dvprimary_min=3., #TBC + pid='PIDp > 0.'): """ Return B&Q detached protons. """ - return make_charged_hadrons(make_particles=make_has_rich_long_protons, - name=name, - p_min=p_min, - mipchi2dvprimary_min=mipchi2dvprimary_min, - pid=pid) + return make_charged_hadrons( + make_particles=make_has_rich_long_protons, + name=name, + p_min=p_min, + mipchi2dvprimary_min=mipchi2dvprimary_min, + pid=pid) + #################################### # Prompt # #################################### + @configurable -def make_prompt_pions(name="onia_prompt_pions", - pid='PIDK < 0.'): +def make_prompt_pions(name="onia_prompt_pions", pid='PIDK < 0.'): """ Return B&Q prompt pions. """ - return make_charged_hadrons(make_particles=make_has_rich_long_pions, - name=name, - pid=pid) + return make_charged_hadrons( + make_particles=make_has_rich_long_pions, name=name, pid=pid) + @configurable -def make_prompt_kaons(name="onia_prompt_kaons", - pid='PIDK > 0.'): +def make_prompt_kaons(name="onia_prompt_kaons", pid='PIDK > 0.'): """ Return B&Q prompt kaons. """ - return make_charged_hadrons(make_particles=make_has_rich_long_kaons, - name=name, - pid=pid) + return make_charged_hadrons( + make_particles=make_has_rich_long_kaons, name=name, pid=pid) + @configurable def make_prompt_protons(name="onia_prompt_protons", @@ -136,8 +150,8 @@ def make_prompt_protons(name="onia_prompt_protons", """ Return B&Q prompt protons. """ - return make_charged_hadrons(make_particles=make_has_rich_long_protons, - name=name, - p_min=p_min, - pid=pid) - + return make_charged_hadrons( + make_particles=make_has_rich_long_protons, + name=name, + p_min=p_min, + pid=pid) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py index 196b83a375d..05d326fa06f 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py @@ -31,40 +31,47 @@ _MASSWINDOW_PSI2S = 120 * MeV _PROBNNMU_JPSI = 0.1 _PROBNNMU_PSI2S = 0.1 + @configurable -def make_dimuon(make_particles=make_dimuon_base, - make_pvs=make_pvs, - name="onia_prompt_dimuon", - minMass_dimuon=0 * MeV, - minPt_dimuon=600 * MeV, - minPt_muon=300 * MeV, - maxVertexChi2=25, - #maxTrackChi2_muon=10, # to be decided if we want to keep TrackChi2 cuts in the trigger - maxTrackGhostProb_muon=0.4, # this has to be reoptimised for the Upgrade - minProbNN_muon=0.1, - bpvdls_min=None): - - code = require_all('MM > {minMass_dimuon}', - 'PT > {minPt_dimuon}', - 'MINTREE("mu-" == ABSID, PT) > {minPt_muon}', - 'VFASPF(VCHI2PDOF) < {maxVertexChi2}', - # to be decided if we want to keep TrackChi2 cuts in the trigger - #'MAXTREE("mu-" == ABSID, TRCHI2DOF) < {maxTrackChi2_muon}', - 'CHILDCUT((TRGHOSTPROB < {maxTrackGhostProb_muon}),1)', - 'CHILDCUT((TRGHOSTPROB < {maxTrackGhostProb_muon}),2)', - 'MINTREE("mu-" == ABSID, PROBNNmu) > {minProbNN_muon}').format(minMass_dimuon=minMass_dimuon, - minPt_dimuon=minPt_dimuon, - minPt_muon=minPt_muon, - maxVertexChi2=maxVertexChi2, - # to be decided if we want to keep TrackChi2 cuts in the trigger - #maxTrackChi2_muon=maxTrackChi2_muon, - maxTrackGhostProb_muon=maxTrackGhostProb_muon, - minProbNN_muon=minProbNN_muon) +def make_dimuon( + make_particles=make_dimuon_base, + make_pvs=make_pvs, + name="onia_prompt_dimuon", + minMass_dimuon=0 * MeV, + minPt_dimuon=600 * MeV, + minPt_muon=300 * MeV, + maxVertexChi2=25, + #maxTrackChi2_muon=10, # to be decided if we want to keep TrackChi2 cuts in the trigger + maxTrackGhostProb_muon=0.4, # this has to be reoptimised for the Upgrade + minProbNN_muon=0.1, + bpvdls_min=None): + + code = require_all( + 'MM > {minMass_dimuon}', + 'PT > {minPt_dimuon}', + 'MINTREE("mu-" == ABSID, PT) > {minPt_muon}', + 'VFASPF(VCHI2PDOF) < {maxVertexChi2}', + # to be decided if we want to keep TrackChi2 cuts in the trigger + #'MAXTREE("mu-" == ABSID, TRCHI2DOF) < {maxTrackChi2_muon}', + 'CHILDCUT((TRGHOSTPROB < {maxTrackGhostProb_muon}),1)', + 'CHILDCUT((TRGHOSTPROB < {maxTrackGhostProb_muon}),2)', + 'MINTREE("mu-" == ABSID, PROBNNmu) > {minProbNN_muon}' + ).format( + minMass_dimuon=minMass_dimuon, + minPt_dimuon=minPt_dimuon, + minPt_muon=minPt_muon, + maxVertexChi2=maxVertexChi2, + # to be decided if we want to keep TrackChi2 cuts in the trigger + #maxTrackChi2_muon=maxTrackChi2_muon, + maxTrackGhostProb_muon=maxTrackGhostProb_muon, + minProbNN_muon=minProbNN_muon) if bpvdls_min is not None: code += '& (BPVDLS() > {bpvdls_min})'.format(bpvdls_min=bpvdls_min) - - return ParticleFilterWithPVs(make_particles(), make_pvs(), name=name, Code=code) + + return ParticleFilterWithPVs( + make_particles(), make_pvs(), name=name, Code=code) + @configurable def make_detached_dimuon(name="onia_detached_dimuon", @@ -75,24 +82,22 @@ def make_detached_dimuon(name="onia_detached_dimuon", Used in Run 1-2 by many dimuon exclusive lines, previously named DetachedCommonFilter """ - return make_dimuon(name=name, - minProbNN_muon=minProbNN_muon, - bpvdls_min=bpvdls_min) + return make_dimuon( + name=name, minProbNN_muon=minProbNN_muon, bpvdls_min=bpvdls_min) + @configurable def make_detached_jpsi(name="onia_detached_jpsi", - massWind_Jpsi=_MASSWINDOW_JPSI, + massWind_Jpsi=_MASSWINDOW_JPSI, minPt_Jpsi=0 * MeV): """ Build the Jpsi """ code = require_all('ADMASS("J/psi(1S)") < {massWind_Jpsi}', - 'PT > {minPt_Jpsi}').format(massWind_Jpsi=massWind_Jpsi, - minPt_Jpsi=minPt_Jpsi) + 'PT > {minPt_Jpsi}').format( + massWind_Jpsi=massWind_Jpsi, minPt_Jpsi=minPt_Jpsi) dimuon = make_detached_dimuon(minProbNN_muon=_PROBNNMU_JPSI) return ParticleFilterWithPVs(dimuon, make_pvs(), name=name, Code=code) - - diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py index 2725f3a1ccb..51c9dc80b27 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py @@ -13,9 +13,8 @@ Prefilters used by all lines: require at least one PV, GEC not used here. Upfron """ from RecoConf.hlt1_tracking import require_pvs -from RecoConf.reco_objects_from_file import (make_pvs, - upfront_reconstruction) +from RecoConf.reco_objects_from_file import (make_pvs, upfront_reconstruction) -def make_prefilters(): - return upfront_reconstruction() + [require_pvs(make_pvs())] +def make_prefilters(): + return upfront_reconstruction() + [require_pvs(make_pvs())] diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py index 4e53377a5b3..751c8c08dbd 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### """ -Definition of B&Q standard combinations as defined in Table 2 of the B&Q physics requirements document. +Definition of B&Q standard combinations as defined in Table 2 of the B&Q physics requirements document. """ from GaudiKernel.SystemOfUnits import MeV, picosecond @@ -21,32 +21,37 @@ from Hlt2Conf.framework import configurable from Hlt2Conf.lines.onia.builders.onia_charged_hadrons import make_detached_pions, make_detached_kaons from Hlt2Conf.lines.onia.builders.onia_dimuon import make_detached_jpsi + @configurable def make_BpToJpsiKp(jpsi=make_detached_jpsi(), - kaons=make_detached_kaons(), + kaons=make_detached_kaons(), pvs=make_pvs(), - adamass=200 *MeV, + adamass=200 * MeV, vfaspf_max=25, bpvltime_max=0.3 * picosecond): """ Make the [B+ --> Jpsi K+]cc candidate. """ - - combination_cut = require_all("ADAMASS('B+') < {adamass}").format(adamass=adamass) + + combination_cut = require_all("ADAMASS('B+') < {adamass}").format( + adamass=adamass) mother_cut = require_all("VFASPF(VCHI2PDOF) < {vfaspf_max}", - "BPVLTIME() < {bpvltime_max}").format(vfaspf_max=vfaspf_max, - bpvltime_max=bpvltime_max) + "BPVLTIME() < {bpvltime_max}").format( + vfaspf_max=vfaspf_max, + bpvltime_max=bpvltime_max) + + return ParticleCombinerWithPVs( + particles=[jpsi, kaons], + pvs=pvs, + DecayDescriptors=["[B+ -> J/psi(1S) K+]cc"], + CombinationCut=combination_cut, + MotherCut=mother_cut) - return ParticleCombinerWithPVs(particles=[jpsi, kaons], - pvs=pvs, - DecayDescriptors=["[B+ -> J/psi(1S) K+]cc"], - CombinationCut=combination_cut, - MotherCut=mother_cut) @configurable def make_BcToJpsiPi(jpsi=make_detached_jpsi(), - pions=make_detached_pions(), + pions=make_detached_pions(), pvs=make_pvs(), amass_min=5800 * MeV, amass_max=7000 * MeV, @@ -57,19 +62,22 @@ def make_BcToJpsiPi(jpsi=make_detached_jpsi(), """ Make the [Bc+ --> Jpsi pi+]cc candidate. Combination and mother cuts from S34 Bc2JpsiHBDTLine. """ - - combination_cut = require_all("in_range({amass_min}, AM, {amass_max})").format(amass_min=amass_min, - amass_max=amass_max) - + + combination_cut = require_all( + "in_range({amass_min}, AM, {amass_max})").format( + amass_min=amass_min, amass_max=amass_max) + mother_cut = require_all("in_range({mass_min}, M, {mass_max})", "VFASPF(VCHI2PDOF) < {vfaspf_max}", - "BPVIPCHI2() < {bpvipchi2_max}").format(mass_min=mass_min, - mass_max=mass_max, - vfaspf_max=vfaspf_max, - bpvipchi2_max=bpvipchi2_max) + "BPVIPCHI2() < {bpvipchi2_max}").format( + mass_min=mass_min, + mass_max=mass_max, + vfaspf_max=vfaspf_max, + bpvipchi2_max=bpvipchi2_max) - return ParticleCombinerWithPVs(particles=[jpsi, pions], - pvs=pvs, - DecayDescriptors=["[B_c+ -> J/psi(1S) pi+]cc"], - CombinationCut=combination_cut, - MotherCut=mother_cut) + return ParticleCombinerWithPVs( + particles=[jpsi, pions], + pvs=pvs, + DecayDescriptors=["[B_c+ -> J/psi(1S) pi+]cc"], + CombinationCut=combination_cut, + MotherCut=mother_cut) -- GitLab From 5422a43e445c36c953bceec16784d8ef79d2c8dc Mon Sep 17 00:00:00 2001 From: gcavalle Date: Thu, 16 Apr 2020 15:44:05 +0200 Subject: [PATCH 3/7] Files renamed to remove onia_ prefix. Call to maker functions removed from default arguments. --- Hlt/Hlt2Conf/options/hlt2_onia_test.py | 308 ++++++++++++++++++ .../python/Hlt2Conf/lines/onia/BcToX.py | 4 +- .../python/Hlt2Conf/lines/onia/BpToX.py | 6 +- ..._charged_hadrons.py => charged_hadrons.py} | 0 .../builders/{onia_dimuon.py => dimuon.py} | 0 .../{onia_prefilters.py => prefilters.py} | 0 ...mbinations.py => standard_combinations.py} | 22 +- 7 files changed, 327 insertions(+), 13 deletions(-) create mode 100644 Hlt/Hlt2Conf/options/hlt2_onia_test.py rename Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/{onia_charged_hadrons.py => charged_hadrons.py} (100%) rename Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/{onia_dimuon.py => dimuon.py} (100%) rename Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/{onia_prefilters.py => prefilters.py} (100%) rename Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/{onia_standard_combinations.py => standard_combinations.py} (82%) diff --git a/Hlt/Hlt2Conf/options/hlt2_onia_test.py b/Hlt/Hlt2Conf/options/hlt2_onia_test.py new file mode 100644 index 00000000000..d26d9fa9de5 --- /dev/null +++ b/Hlt/Hlt2Conf/options/hlt2_onia_test.py @@ -0,0 +1,308 @@ +############################################################################### +# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # +# # +# This software is distributed under the terms of the GNU General Public # +# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # +# # +# In applying this licence, CERN does not waive the privileges and immunities # +# granted to it by virtue of its status as an Intergovernmental Organization # +# or submit itself to any jurisdiction. # +############################################################################### +"""Options for running HLT2 lines. + +Run like any other options file: + + ./Moore/run gaudirun.py Moore/Hlt/Hlt2Conf/options/Hlt2_onia_test.py +""" + +from Moore import options, run_moore +from RecoConf.reco_objects_from_file import stateProvider_with_simplified_geom +from Hlt2Conf.lines.onia import all_lines + +# When running from Upgrade MC, must use the post-juggling locations of the raw event +raw_event_format = 4.3 + +# a list of available samples for testing +#decay_descriptor = 30000000 # MinBias +#decay_descriptor = 18112001 # inclusive Upsilon +#decay_descriptor = 24142001 # inclusive Jpsi +#decay_descriptor = 28142001 # Psi2s --> mu mu +decay_descriptor = 12143001 # B --> Jpsi K +#decay_descriptor = 28144041 # Chic --> Jpsi mu mu +#decay_descriptor = 11114100 # B --> Ks mu mu +#decay_descriptor = 13144011 # Bs --> Jpsi phi + +# FT decoder version to use +ftdec_v = -1 + +# set the input files and the detector conditions +input_files = [] +DDDBTag = "" +CONDDBTag = "" + +# output file name +outputfile_name = "" + +if decay_descriptor == 30000000: + + #input_files = [ + # # MinBias 30000000 + # # sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/30000000/LDST + # 'root://xrootd.echo.stfc.ac.uk/lhcb:prod/lhcb/MC/Upgrade/LDST/00069155/0000/00069155_00000878_2.ldst' + #] + # + #ftdec_v = 4 + #DDDBTag = 'dddb-20171126' + #CONDDBTag = 'sim-20171127-vc-md100' + #inputFileType = 'ROOT' + #outputfile_name = "MinBias_30000000_HLT2.dst" + + # HLT1-filtered + input_files = [ + # MinBias 30000000 + # sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/30000000/LDST + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000001_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000002_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000003_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000004_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000005_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000006_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000007_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000008_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000010_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000012_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000014_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000016_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000017_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000018_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000019_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000020_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000021_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000022_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000023_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000025_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000026_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000028_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000029_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000030_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000031_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000032_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000033_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000034_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000035_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000036_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000037_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000038_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000039_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000040_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000041_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000043_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000044_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000045_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000047_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000048_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000049_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000050_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000051_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000052_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000054_1.ldst', + 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000055_1.ldst', + ] + + ftdec_v = 4 + DDDBTag = 'dddb-20171126' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = 'ROOT' + outputfile_name = "MinBias_30000000_HLT1filtered_HLT2.dst" + +elif decay_descriptor == 18112001: + input_files = [ + # inclusive Upsilon, 18112001 + # sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/18112001/LDST + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000016_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000017_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000020_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000024_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000026_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000027_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000028_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000029_2.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070550/0000/00070550_00000030_2.ldst", + ] + + # HLT1-filtered + #input_files = [ + # # inclusive Upsilon, 18112001 + # # sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/18112001/LDST + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000001_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000002_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000003_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000004_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000005_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000006_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000007_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000008_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076733/0000/00076733_00000043_1.ldst", + #] + + ftdec_v = 2 + DDDBTag = 'dddb-20171126' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = 'ROOT' + outputfile_name = "inclUpsilon_18112001_HLT2.dst" + +elif decay_descriptor == 24142001: + + input_files = [ + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/inclJpsi/inclJpsi_24142001_BrunelReco.ldst" + ] + + # HLT1-filtered + #input_files = [ + # "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/inclJpsi/inclJpsi_24142001_BrunelReco_HLT1filtered.dst" + #] + + ftdec_v = 2 + DDDBTag = 'dddb-20171122' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = "ROOT" + outputfile_name = "inclJpsi_24142001_HLT2.dst" + +elif decay_descriptor == 28142001: + + #input_files = [ + # "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/Psi2s/Psi2s_28142001_BrunelReco.ldst" + #] + + # HLT1-filtered + input_files = [ + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/Psi2s/Psi2s_28142001_BrunelReco_HLT1filtered.dst" + ] + + ftdec_v = 2 + DDDBTag = 'dddb-20171122' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = "ROOT" + outputfile_name = "Psi2s_28142001_HLT2.dst" + +elif decay_descriptor == 12143001: + + input_files = [ + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/B2JpsiK/B2JpsiK_12143001_BrunelReco_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/B2JpsiK/B2JpsiK_12143001_BrunelReco_2.ldst", + ] + + # HL1-filtered + #input_files = [ + # "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/B2JpsiK/B2JpsiK_12143001_BrunelReco_HLT1filtered.dst", + #] + + ftdec_v = 2 + DDDBTag = 'dddb-20171122' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = "ROOT" + outputfile_name = "B2JpsiK_12143001_HLT2.dst" + +elif decay_descriptor == 28144041: + + input_files = [ + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/Chic2JpsiMuMu/Chic2JpsiMuMu_28144041_BrunelReco_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/Chic2JpsiMuMu/Chic2JpsiMuMu_28144041_BrunelReco_2.ldst", + ] + + # HLT1-filtered + #input_files = [ + # "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/Chic2JpsiMuMu/Chic2JpsiMuMu_28144041_BrunelReco_HLT1filtered.dst", + # ] + + ftdec_v = 2 + DDDBTag = 'dddb-20171122' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = "ROOT" + outputfile_name = "ChicJpsiDiMuMu_28144040_HLT2.dst" + +elif decay_descriptor == 11114100: + + #input_files = [ + # "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/B2KsMuMu/B2KsMuMu_11114100_BrunelReco_1.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/B2KsMuMu/B2KsMuMu_11114100_BrunelReco_2.ldst", + #] + + # HLT1-filtered + input_files = [ + "root://eoslhcb.cern.ch//eos/lhcb/wg/BandQ/trigger/Upgrade/MC_samples/B2KsMuMu/B2KsMuMu_11114100_BrunelReco_HLT1filtered.dst", + ] + + ftdec_v = 2 + DDDBTag = 'dddb-20171122' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = "ROOT" + outputfile_name = "B2KsMuMu_28144040_HLT2.dst" + +elif decay_descriptor == 13144011: + + #input_files = [ + # # Bs2JpsiPhi, 13144011 + # # sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/13144011/LDST + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000011_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000019_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000024_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000035_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000046_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000054_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000068_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000072_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000087_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000093_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000109_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000110_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000111_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000112_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000122_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000125_2.ldst", + # "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00070705/0000/00070705_00000126_2.ldst", + # ] + + # HLT1-filtered + input_files = [ + # Bs2JpsiPhi, 13144011 + # sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/13144011/LDST + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000001_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000002_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000003_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000004_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000005_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000006_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000007_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000064_1.ldst", + "root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00076706/0000/00076706_00000068_1.ldst", + ] + + ftdec_v = 4 + DDDBTag = 'dddb-20171126' + CONDDBTag = 'sim-20171127-vc-md100' + inputFileType = 'ROOT' + outputfile_name = "" + +# set the options +options.evt_max = 5000 +options.input_files = input_files +options.data_type = 'Upgrade' +options.dddb_tag = DDDBTag +options.conddb_tag = CONDDBTag +options.simulation = True +options.input_type = inputFileType +options.input_raw_format = raw_event_format + + +def make_lines(): + return [builder() for builder in all_lines.values()] + + +public_tools = [stateProvider_with_simplified_geom()] +run_moore(options, make_lines, public_tools) + +# setup the output file +#from PyConf.environment import setupOutput +# +#setupOutput(outputfile_name, 'ROOT') diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py index 9400fcda737..60e6538ae14 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BcToX.py @@ -15,10 +15,10 @@ Registration of Bc+ lines from Moore.config import HltLine, register_line_builder # get the prefilters -from Hlt2Conf.lines.onia.builders.onia_prefilters import make_prefilters +from Hlt2Conf.lines.onia.builders.prefilters import make_prefilters # get the combination -from Hlt2Conf.lines.onia.builders.onia_standard_combinations import make_BcToJpsiPi +from Hlt2Conf.lines.onia.builders.standard_combinations import make_BcToJpsiPi all_lines = {} diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py index 7e6a074eb98..97289c1da89 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py @@ -15,16 +15,16 @@ Registration of the B+ lines from Moore.config import HltLine, register_line_builder # get the prefilters -from Hlt2Conf.lines.onia.builders.onia_prefilters import make_prefilters +from Hlt2Conf.lines.onia.builders.prefilters import make_prefilters # get the combination -from Hlt2Conf.lines.onia.builders.onia_standard_combinations import make_BpToJpsiKp +from Hlt2Conf.lines.onia.builders.standard_combinations import make_BpToJpsiKp all_lines = {} @register_line_builder(all_lines) -def Bp2ToJpsiKp_line(name='Hlt2BpToJpsiKpOniaLine', prescale=1): +def Bp2ToJpsiKp_line(name='Hlt2BpToJpsiKpLine', prescale=1): """[B+ --> Jpsi K+]CC line""" return HltLine( name=name, diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/charged_hadrons.py similarity index 100% rename from Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_charged_hadrons.py rename to Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/charged_hadrons.py diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/dimuon.py similarity index 100% rename from Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_dimuon.py rename to Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/dimuon.py diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/prefilters.py similarity index 100% rename from Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_prefilters.py rename to Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/prefilters.py diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py similarity index 82% rename from Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py rename to Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py index 751c8c08dbd..a0be4c34e19 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/onia_standard_combinations.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py @@ -18,20 +18,23 @@ from RecoConf.reco_objects_from_file import make_pvs from Hlt2Conf.algorithms import require_all, ParticleCombinerWithPVs from Hlt2Conf.framework import configurable -from Hlt2Conf.lines.onia.builders.onia_charged_hadrons import make_detached_pions, make_detached_kaons -from Hlt2Conf.lines.onia.builders.onia_dimuon import make_detached_jpsi +from Hlt2Conf.lines.onia.builders.charged_hadrons import make_detached_pions, make_detached_kaons +from Hlt2Conf.lines.onia.builders.dimuon import make_detached_jpsi @configurable -def make_BpToJpsiKp(jpsi=make_detached_jpsi(), - kaons=make_detached_kaons(), - pvs=make_pvs(), +def make_BpToJpsiKp(make_detached_jpsi=make_detached_jpsi, + make_detached_kaons=make_detached_kaons, + make_pvs=make_pvs, adamass=200 * MeV, vfaspf_max=25, bpvltime_max=0.3 * picosecond): """ Make the [B+ --> Jpsi K+]cc candidate. """ + jpsi = make_detached_jpsi() + kaons = make_detached_kaons() + pvs = make_pvs() combination_cut = require_all("ADAMASS('B+') < {adamass}").format( adamass=adamass) @@ -50,9 +53,9 @@ def make_BpToJpsiKp(jpsi=make_detached_jpsi(), @configurable -def make_BcToJpsiPi(jpsi=make_detached_jpsi(), - pions=make_detached_pions(), - pvs=make_pvs(), +def make_BcToJpsiPi(make_detached_jpsi=make_detached_jpsi, + make_detached_pions=make_detached_pions, + make_pvs=make_pvs, amass_min=5800 * MeV, amass_max=7000 * MeV, mass_min=6000 * MeV, @@ -62,6 +65,9 @@ def make_BcToJpsiPi(jpsi=make_detached_jpsi(), """ Make the [Bc+ --> Jpsi pi+]cc candidate. Combination and mother cuts from S34 Bc2JpsiHBDTLine. """ + jpsi = make_detached_jpsi() + pions = make_detached_pions() + pvs = make_pvs() combination_cut = require_all( "in_range({amass_min}, AM, {amass_max})").format( -- GitLab From 047e1648bd9c897e4b56ddf90cb1677d874afa44 Mon Sep 17 00:00:00 2001 From: gcavalle Date: Mon, 20 Apr 2020 15:42:37 +0200 Subject: [PATCH 4/7] Added use-case to the B+->JpsiK+ line --- Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py index 97289c1da89..2a952d6a5a5 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py @@ -9,7 +9,7 @@ # or submit itself to any jurisdiction. # ############################################################################### """ -Registration of the B+ lines +Registration of the B&Q B+ lines """ from Moore.config import HltLine, register_line_builder @@ -25,7 +25,10 @@ all_lines = {} @register_line_builder(all_lines) def Bp2ToJpsiKp_line(name='Hlt2BpToJpsiKpLine', prescale=1): - """[B+ --> Jpsi K+]CC line""" + """[B+ --> Jpsi K+]CC line for B&Q combinations. + - input particles: J/psi, and K+ filtered according to onia requirements (RICH acceptance). + - use case: B+-hadron(s) combinations for B&Q spectroscopy studies. + """ return HltLine( name=name, algs=make_prefilters() + [make_BpToJpsiKp()], -- GitLab From 25bf5a460d4b8ecebc8a6f41a82144d71aed4bdd Mon Sep 17 00:00:00 2001 From: gcavalle Date: Wed, 22 Apr 2020 12:07:35 +0200 Subject: [PATCH 5/7] Onia specific B2JpsiK line removed; onia B+ maker (for B&Q combinations) left. --- .../python/Hlt2Conf/lines/onia/BpToX.py | 35 ------------------- .../python/Hlt2Conf/lines/onia/__init__.py | 1 - .../onia/builders/standard_combinations.py | 2 +- 3 files changed, 1 insertion(+), 37 deletions(-) delete mode 100644 Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py deleted file mode 100644 index 2a952d6a5a5..00000000000 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/BpToX.py +++ /dev/null @@ -1,35 +0,0 @@ -############################################################################### -# (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration # -# # -# This software is distributed under the terms of the GNU General Public # -# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # -# # -# In applying this licence, CERN does not waive the privileges and immunities # -# granted to it by virtue of its status as an Intergovernmental Organization # -# or submit itself to any jurisdiction. # -############################################################################### -""" -Registration of the B&Q B+ lines -""" - -from Moore.config import HltLine, register_line_builder - -# get the prefilters -from Hlt2Conf.lines.onia.builders.prefilters import make_prefilters - -# get the combination -from Hlt2Conf.lines.onia.builders.standard_combinations import make_BpToJpsiKp - -all_lines = {} - - -@register_line_builder(all_lines) -def Bp2ToJpsiKp_line(name='Hlt2BpToJpsiKpLine', prescale=1): - """[B+ --> Jpsi K+]CC line for B&Q combinations. - - input particles: J/psi, and K+ filtered according to onia requirements (RICH acceptance). - - use case: B+-hadron(s) combinations for B&Q spectroscopy studies. - """ - return HltLine( - name=name, - algs=make_prefilters() + [make_BpToJpsiKp()], - prescale=prescale) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py index 30c9543f686..a3ca606b4a4 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py @@ -15,5 +15,4 @@ from . import (BpToX, BcToX) # provide "all_lines" for correct registration by the overall HLT2 lines module all_lines = {} -all_lines.update(BpToX.all_lines) all_lines.update(BcToX.all_lines) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py index a0be4c34e19..72aa90c4195 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/builders/standard_combinations.py @@ -30,7 +30,7 @@ def make_BpToJpsiKp(make_detached_jpsi=make_detached_jpsi, vfaspf_max=25, bpvltime_max=0.3 * picosecond): """ - Make the [B+ --> Jpsi K+]cc candidate. + Make the B&Q [B+ --> Jpsi K+]cc candidate. """ jpsi = make_detached_jpsi() kaons = make_detached_kaons() -- GitLab From efc4e365ff24820ada236cf2e1aca0f85b1ad92d Mon Sep 17 00:00:00 2001 From: gcavalle Date: Wed, 6 May 2020 08:27:37 +0200 Subject: [PATCH 6/7] Onia module added to all-lines file --- Hlt/Hlt2Conf/python/Hlt2Conf/lines/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/__init__.py index ff66e2d8bfa..818926c804f 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/__init__.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/__init__.py @@ -29,6 +29,7 @@ from . import ( B2KsMuMu, InclusiveDetachedDilepton, inclusive_radiative_b, + onia, ) from jets import Hlt2Run2Jets @@ -67,6 +68,7 @@ modules = [ B2KsMuMu, InclusiveDetachedDilepton, inclusive_radiative_b, + onia, ] all_lines = _get_all_lines(modules) -- GitLab From 1ae7ccba3b72827371f1f2d11cb6a5a2773bd938 Mon Sep 17 00:00:00 2001 From: gcavalle Date: Wed, 6 May 2020 10:02:31 +0200 Subject: [PATCH 7/7] Remove import of BpToX module from __init__ in onia --- Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py index a3ca606b4a4..ef82745d13f 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/onia/__init__.py @@ -11,7 +11,7 @@ Submodule that defines the B&Q HLT2 lines """ -from . import (BpToX, BcToX) +from . import BcToX # provide "all_lines" for correct registration by the overall HLT2 lines module all_lines = {} -- GitLab