Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ipolyako/Moore
  • qhan/Moore
  • allightb/Moore
  • gpietrzy/Moore
  • smaccoli/Moore
  • rmatev/Moore
  • bldelane/Moore
  • egranado/Moore
  • peilian/Moore
  • rcurrie/Moore
  • mstahl/Moore
  • jonrob/Moore
  • raaij/Moore
  • lhcb/Moore
14 results
Show changes
Commits on Source (820)
Showing
with 106 additions and 102 deletions
......@@ -12,6 +12,7 @@
/toolchain.cmake
/Makefile
/cache_preload.cmake
/run
# common byproducts
*.pyc
......
......@@ -18,7 +18,7 @@ variables:
TARGET_BRANCH: master
# Parameters for downloading nightlies and building Moore
BINARY_TAG: x86_64_v2-centos7-gcc11-opt
LCG_VERSION: 101
LCG_VERSION: 101x
NO_LBLOGIN: "1" # prevent lbdocker containers to start LbLogin/LbEnv
LB_NIGHTLY_SLOT: lhcb-master
......@@ -74,6 +74,9 @@ build:
# Allow failure as the nightly slot we depend on may have itself failed
allow_failure: true
artifacts:
paths:
- build.$BINARY_TAG
- run
untracked: true
expire_in: 1 hr
......
......@@ -11,7 +11,7 @@
cmake_minimum_required(VERSION 3.15)
project(Moore VERSION 53.6
project(Moore VERSION 54.0
LANGUAGES CXX)
# Enable testing with CTest/CDash
......@@ -25,9 +25,8 @@ list(PREPEND CMAKE_MODULE_PATH
set(WITH_Moore_PRIVATE_DEPENDENCIES TRUE)
include(MooreDependencies)
if(USE_DD4HEP)
option(LOKI_BUILD_FUNCTOR_CACHE "Enable building of LoKi Functors Caches." FALSE)
endif()
include(FileContentMetadataRepository)
lhcb_create_local_filecontent_metadata_repo( "${CMAKE_CURRENT_BINARY_DIR}/file-content-metadata/" )
# -- Subdirectories
lhcb_add_subdirectories(
......
......@@ -44,14 +44,14 @@
/Hlt/RecoConf/python/RecoConf/calo*.py @cmarinbe @jmarchan
/Hlt/RecoConf/tests/qmtest/*calo*.qmt @cmarinbe @jmarchan
# HLT1 and HLT2 tracking
/Hlt/RecoConf/python/RecoConf/hlt[12]_tracking.py @chasse @gunther @mstahl
/Hlt/RecoConf/python/RecoConf/hlt[12]_tracking.py @gunther @mstahl
/Hlt/RecoConf/tests/qmtest/hlt2_reco_brunelesque.qmt @mstahl
# Muon
/Hlt/RecoConf/python/RecoConf/*muon*.py @cprouve
# RICH
/Hlt/RecoConf/python/RecoConf/rich*.py @jonrob
# MC checking and performance
/Hlt/RecoConf/python/RecoConf/mc*.py @chasse @mstahl @peilian
/Hlt/RecoConf/python/RecoConf/mc*.py @mstahl @peilian
/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution.qmt @peilian
/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_IPresolution_plots.qmt @peilian
/Hlt/RecoConf/tests/qmtest/performance.qms/hlt1_reco_muonIDeff.qmt @peilian
......@@ -96,7 +96,6 @@
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/Chic2JpsiMuMu.py @gcavalle @mengzhen
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/B2KsMuMu.py @gcavalle @mengzhen
# Charm lines
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/builders.py @mstahl @tpajero @lpica @fsouzade @roneil
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/cbaryon_to_phh.py @msaur @ziyiw
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/cbaryon_to_pk.py @msaur @ziyiw
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/cbaryon_to_sl.py @ziyiw @msaur
......@@ -104,12 +103,13 @@
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/ccbaryon_to_hyperon_dh.py @ziyiw @msaur
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/charm_to_h0x.py @thadaviz
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d_to_etah.py @jowalsh @stracka @gtuci
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d_to_hhh.py @polye
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d_to_hhh.py @polye @fsouzade
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d_to_ksh @msaur @ziyiw
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hh.py @tpajero @nkleijne
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py @jcobbled @mamartin
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_ksks.py @lpica @gtuci
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_kshh.py @eshields
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/detection_asymmetry_lines @ldufour
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/hyperons.py @mstahl
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/lc_to_ksh_kshhh.py @msaur @ziyiw
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/particle_properties.py @mstahl @tpajero @lpica @fsouzade @roneil
......@@ -139,6 +139,11 @@
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/rare_tau_decay_builders.py @maik
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/RpK_lines.py @maik
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/RpK_builders.py @maik
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/strange.py @mramospe
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/strange.py @mramospe
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/bnv_builders.py @fdevelli
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/bnv_lines_hlt2.py @fdevelli
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/lfv_lines_hlt2.py @fdevelli
# QEE
/Hlt/Hlt2Conf/python/Hlt2Conf/lines/qee/ @wbarter @ncooke @jideng @rjhunter @olupton @yqiu @cvazquez @hyin @dzuliani
......
###############################################################################
# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration #
# (c) Copyright 2000-2022 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". #
......@@ -9,7 +9,5 @@
# or submit itself to any jurisdiction. #
###############################################################################
from Moore import options, run_allen
from RecoConf.hlt1_allen import sequence
with sequence.bind(sequence="hlt1_pp_default"):
run_allen(options)
run_allen(options)
data_type: Upgrade
simulation: True
dddb_tag: 'dddb-20180815'
conddb_tag: 'sim-20180530-vc-md100'
input_files: ["root://eoslhcb.cern.ch//eos/lhcb/wg/rta/WP6/Allen/digi_input/RetinaCluster_samples/MiniBrunel_2018_MinBias_FTv4_DIGI_retinacluster_digi/minbias_2018_retinacluster_1.digi"]
input_type: "ROOT"
evt_max: 100
output_file: 'allen_production_test.dst'
output_type: 'ROOT'
\ No newline at end of file
......@@ -62,14 +62,14 @@ def tos_filter_for(alg):
raise ValueError("No TOS filter available for {}".format(output_type))
def one_track_line(name='Hlt1TrackMVALine'):
def one_track_line(name='Hlt1TrackMVA'):
"""A one-track line that selects all tracks."""
track_filter = Filter(make_tracks_mva_tracks(),
ALL)['PrFittedForwardWithPVs']
return HltLine(name, [track_filter])
def two_track_line(name='Hlt1TwoTrackMVALine'):
def two_track_line(name='Hlt1TwoTrackMVA'):
"""A two-track line that selects all vertices."""
children = Filter(make_tracks_mva_tracks(), ALL)
combination_filter = CombineTracks(
......@@ -80,7 +80,7 @@ def two_track_line(name='Hlt1TwoTrackMVALine'):
return HltLine(name, [combination_filter])
def one_track_muon_line(name='Hlt1TrackMuonMVALine'):
def one_track_muon_line(name='Hlt1TrackMuonMVA'):
"""A one-track muon line that selects all tracks."""
track_filter = Filter(make_fitted_tracks_with_muon_id(),
ALL)['PrFittedForwardWithMuonID']
......
......@@ -28,6 +28,4 @@ options.dddb_tag = "dddb-20190223"
options.conddb_tag = "sim-20180530-vc-mu100"
options.evt_max = 1000
from RecoConf.decoders import default_ft_decoding_version
with default_ft_decoding_version.bind(value=6):
run_moore(options, smog_lines)
run_moore(options, smog_lines)
......@@ -22,6 +22,4 @@ which_sample = "pgas"
options.set_input_and_conds_from_testfiledb(test_sample[which_sample])
options.evt_max = 1000
from RecoConf.decoders import default_ft_decoding_version
with default_ft_decoding_version.bind(value=6):
run_moore(options, smog_lines)
run_moore(options, smog_lines)
......@@ -20,7 +20,7 @@ def gec_prefilters():
@configurable
def gec_passthrough_line(name='Hlt1GECPassThroughLine', prescale=1):
def gec_passthrough_line(name='Hlt1GECPassThrough', prescale=1):
"""A line that returns a positive decision if the global event cut passes.
Can be useful for determining the GEC efficiency of a given physics
......
......@@ -26,7 +26,7 @@ def track_muon_prefilters():
@configurable
def one_track_muon_highpt_line(
name='Hlt1SingleHighPtMuonLine',
name='Hlt1SingleHighPtMuon',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
min_pt=6 * GeV,
......
......@@ -57,7 +57,7 @@ def prefilters(make_pvs=make_pvs):
@configurable
def detached_low_pt_muon_line(
name='Hlt1LowPtMuonLine',
name='Hlt1LowPtMuon',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
make_pvs=make_pvs,
......@@ -83,7 +83,7 @@ def detached_low_pt_muon_line(
@configurable
def detached_low_pt_dimuon_line(
name='Hlt1LowPtDiMuonLine',
name='Hlt1LowPtDiMuon',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
make_pvs=make_pvs,
......
......@@ -36,7 +36,7 @@ def odin_lumi_filter(make_odin=make_odin):
return VoidFilter(Cut=fmath.test_bit(EVENTTYPE(odin), lumi_bit))
def luminosity_line(name="Hlt1LuminosityLine", prescale=1):
def luminosity_line(name="Hlt1Luminosity", prescale=1):
"""Fills lumi counters for all crossings marked with the Lumi ODIN bit."""
lumi = odin_lumi_filter()
......
......@@ -37,7 +37,7 @@ def odin_nobias_filter(make_odin=make_odin):
return VoidFilter(Cut=fmath.test_bit(EVENTTYPE(odin), nobias_bit))
def low_multiplicity_velo_line(name="Hlt1MicroBiasLowMultVeloLine",
def low_multiplicity_velo_line(name="Hlt1MicroBiasLowMultVelo",
prescale=1,
nvelo_tracks_min=5):
"""Accepts NoBias events with at least some number of VELO tracks."""
......@@ -48,7 +48,7 @@ def low_multiplicity_velo_line(name="Hlt1MicroBiasLowMultVeloLine",
return HltLine(name=name, algs=[nobias, ntracks_filter], prescale=prescale)
def no_bias_line(name="Hlt1NoBiasLine", prescale=1):
def no_bias_line(name="Hlt1NoBias", prescale=1):
"""Accepts all crossings marked with the NoBias ODIN bit."""
nobias = odin_nobias_filter()
......
......@@ -25,7 +25,7 @@ from Functors.math import in_range
@configurable
def smog_minimumbias_line(
name='Hlt1_Smog_MinimumBias_Line',
name='Hlt1_Smog_MinimumBias',
prescale=1,
make_input_tracks=make_VeloClusterTrackingSIMD_tracks,
max_Smog_z=-250 * mm,
......@@ -42,7 +42,7 @@ def smog_minimumbias_line(
@configurable
def smog_dimuon_line(
name='Hlt1_Smog_OSMuonsHighMass_Line',
name='Hlt1_Smog_OSMuonsHighMass',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
min_pt=500 * MeV,
......
......@@ -33,7 +33,7 @@ def track_muon_prefilters(pvs):
@configurable
def one_track_muon_mva_line(
name='Hlt1TrackMuonMVALine',
name='Hlt1TrackMuonMVA',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
make_pvs=make_pvs,
......@@ -64,7 +64,7 @@ def one_track_muon_mva_line(
@configurable
def low_mass_dimuon_line(
name='Hlt1DiMuonLowMassLine',
name='Hlt1DiMuonLowMass',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
make_pvs=make_pvs,
......@@ -101,7 +101,7 @@ def low_mass_dimuon_line(
@configurable
def high_mass_dimuon_line(name='Hlt1DiMuonHighMassLine',
def high_mass_dimuon_line(name='Hlt1DiMuonHighMass',
prescale=1,
make_input_tracks=make_fitted_tracks_with_muon_id,
make_pvs=make_pvs,
......
......@@ -49,7 +49,7 @@ def track_mva_prefilters(pvs):
@configurable
def one_track_mva_line(
name='Hlt1TrackMVALine',
name='Hlt1TrackMVA',
prescale=1,
make_input_tracks=make_tracks_mva_tracks,
make_pvs=make_pvs,
......@@ -78,7 +78,7 @@ def one_track_mva_line(
@configurable
def two_track_mva_line(name='Hlt1TwoTrackMVALine',
def two_track_mva_line(name='Hlt1TwoTrackMVA',
prescale=1,
make_input_tracks=make_tracks_mva_tracks,
make_pvs=make_pvs):
......@@ -92,18 +92,12 @@ def two_track_mva_line(name='Hlt1TwoTrackMVALine',
def apply_to_combination(functor):
"""Helper for applying 'Combination' cuts to a composite."""
return COMB(
Functor=functor,
ChildContainers=(children, ),
ChildContainerTypes=((children.type, 'SelKernel/TrackZips.h'), ))
return COMB(Functor=functor, ChildContainers=[children])
# See gaudi/Gaudi#117 for discussion of the expansion of ${PARAMFILESROOT}
VertexCut = ((CHI2DOF < 10.) & (BPVDIRA(pvs) > 0) & (BPVCORRM(
Vertices=pvs) > 1. * GeV) & fmath.in_range(2., BPVETA(pvs), 5.) & (MVA(
MVAType='MatrixNet',
Config={
'MatrixnetFile': "${PARAMFILESROOT}/data/Hlt1TwoTrackMVA.mx"
},
Config={'MatrixnetFile': "paramfile://data/Hlt1TwoTrackMVA.mx"},
Inputs={
'chi2': CHI2DOF,
'fdchi2': BPVFDCHI2(pvs),
......
......@@ -9,73 +9,72 @@
# or submit itself to any jurisdiction. #
###############################################################################
from Moore import options
from Moore.config import allen_control_flow, get_allen_hlt1_decision_ids
from RecoConf.hlt1_allen import sequence, decode_allen_sel_reports, call_allen
from PyConf.application import configure_input, configure, all_nodes_and_algs
from PyConf.Algorithms import (
AllenForwardToV2Tracks,
LHCb__Converters__Track__v1__fromV2TrackV1TrackVector as
FromV2TrackV1Track, TOSFilter__v1__Track as TOSFilter)
from PyConf.Tools import ParticleTisTos
from Moore.config import get_allen_hlt1_decision_ids
from RecoConf.hlt1_allen import (make_allen_sel_reports,
make_allen_forward_tracks,
call_allen_decision_logger, allen_gaudi_node)
from PyConf.application import configure_input, configure
from PyConf.control_flow import CompositeNode, NodeLogic
from Allen.config import setup_allen_non_event_data_service
## Flag for producing a control flow diagram for testing
debug_ctrl_flow = False
## Get default Allen control flow
config = configure_input(options)
def make_tos_filter(line_name):
from PyConf.Algorithms import TOSFilter__v1__Track as TOSFilter
from PyConf.Tools import ParticleTisTos
with (sequence.bind(sequence="hlt1_pp_default"),
call_allen.bind(monitor_file="allen_tracks_tos.root")):
allen_cf = allen_control_flow(options)
return TOSFilter(
name=line_name + 'TOS',
InputContainer=make_allen_forward_tracks()['v1'],
SelReports=make_allen_sel_reports(),
DecisionPattern=line_name,
ParticleTisTosTool=ParticleTisTos(
TOSFracVP=1.0, TOSFracFT=1.0, TOSFracMuon=1.0))
## Find the RunAllen output
allen_nodes, allen_algs = all_nodes_and_algs(allen_cf)
ra_alg = next(alg for alg in allen_algs if alg.typename == 'RunAllen')
raw_rep_alg = next(
alg for alg in allen_algs if alg.typename == 'AllenReportsToRawEvent')
## Configure a decoder for SelReports
sel_dec = decode_allen_sel_reports(
raw_sel_reports=lambda: raw_rep_alg.OutputRawReports)
def setup_tos_node():
hlt1_line_ids = get_allen_hlt1_decision_ids()
filt_algs = [
make_tos_filter(line_name) for line_name in hlt1_line_ids.keys()
]
## Configure the transformer from Allen output to forward tracks
fwd_trk_alg = AllenForwardToV2Tracks(AllenOutput=ra_alg.AllenOutput)
return CompositeNode(
'tosfilters', combine_logic=NodeLogic.NONLAZY_OR, children=filt_algs)
fwd_v1 = FromV2TrackV1Track(
InputTracksName=fwd_trk_alg.OutputTracks).OutputTracksName
fwd_mu_v1 = FromV2TrackV1Track(
InputTracksName=fwd_trk_alg.OutputMuonTracks).OutputTracksName
## Make a TOSFilter for each Allen line
filt_algs = []
hlt1_line_ids = get_allen_hlt1_decision_ids()
for line_name in hlt1_line_ids.keys():
in_trks = fwd_mu_v1 if 'Muon' in line_name else fwd_v1
filt = TOSFilter(
name=line_name + 'TOS',
InputContainer=in_trks,
SelReports=sel_dec.OutputHltSelReportsLocation,
DecisionPattern=line_name,
ParticleTisTosTool=ParticleTisTos(
TOSFracVelo=1.0, TOSFracOTIT=1.0, TOSFracMuon=1.0))
def run_test():
"""
Final configuration for the test application
"""
non_event_data_node = setup_allen_non_event_data_service()
config = configure_input(options)
# Get Allen configuration
allen_node = allen_gaudi_node()
# Get the configured TOS filters
tos_node = setup_tos_node()
# Make a complete control flow
test_node = CompositeNode(
'TestAllenFwdTracksTOS',
combine_logic=NodeLogic.LAZY_AND,
children=[
non_event_data_node, allen_node,
call_allen_decision_logger(), tos_node
],
force_order=True)
# Finalize configuration
config.update(configure(options, test_node))
filt_algs.append(filt)
return config
## Collect all of the TOS filters
tos_node = CompositeNode(
'tosfilters', combine_logic=NodeLogic.NONLAZY_OR, children=filt_algs)
## Make a complete control flow
test_node = CompositeNode(
'test',
combine_logic=NodeLogic.LAZY_AND,
children=[allen_cf, tos_node],
force_order=True)
# Script main
from RecoConf.hlt1_tracking import default_ft_decoding_version
default_ft_decoding_version.global_bind(value=6)
## Finalize configuration
config.update(configure(options, test_node))
# Expand algorithm name field
options.msg_svc_format = '% F%70W%S %7W%R%T %0W%M'
if debug_ctrl_flow:
from PyConf.application import plot_control_flow
plot_control_flow(test_node)
run_test()
......@@ -14,4 +14,3 @@ from Moore import options
options.input_files = ['test_allen_hlt1_persistence_dst_write.dst']
options.input_type = 'ROOT'
options.evt_max = -1
options.tck = 0x11300000
......@@ -13,4 +13,3 @@ from Moore import options
options.output_file = 'test_allen_hlt1_persistence_dst_write.dst'
options.output_type = 'ROOT'
options.tck = 0x11300000