diff --git a/MooreOnlineConf/options/reco.py b/MooreOnlineConf/options/reco.py index dcfc04c8b548bd2bbbfef6a6b04ecde2b228327a..872d86bb13a0724d30201f92d8dac4ed40a2d68f 100644 --- a/MooreOnlineConf/options/reco.py +++ b/MooreOnlineConf/options/reco.py @@ -9,12 +9,66 @@ # or submit itself to any jurisdiction. # ############################################################################### import os -from Moore import options, run_reconstruction +from Moore import options +from Moore.config import run_allen_reconstruction from Moore.config import Reconstruction from RecoConf.standalone import reco_prefilters, standalone_hlt2_global_reco from Hlt2Conf.settings.hlt2_binds import config_pp_2024_with_monitoring +from RecoConf.hlt1_allen import allen_gaudi_config +from RecoConf.legacy_rec_hlt1_tracking import make_RetinaCluster_raw_bank, make_velo_full_clusters, make_RetinaClusters +from PyConf.Algorithms import VertexCompare + +from RecoConf.legacy_rec_hlt1_tracking import ( + make_reco_pvs, + make_PatPV3DFuture_pvs, + make_VeloClusterTrackingSIMD, +) +from RecoConf.hlt2_tracking import ( + make_PrKalmanFilter_noUT_tracks, + make_PrKalmanFilter_Seed_tracks, + make_PrKalmanFilter_Velo_tracks, + make_TrackBestTrackCreator_tracks, +) from MooreOnlineConf.utils import update_and_reset +from Moore import options, run_moore +from RecoConf.global_tools import stateProvider_with_simplified_geom, trackMasterExtrapolator_with_simplified_geom +from RecoConf.reconstruction_objects import reconstruction +from RecoConf.hlt2_global_reco import reconstruction as hlt2_reconstruction, make_light_reco_pr_kf_without_UT +from RecoConf.hlt2_tracking import ( + make_TrackBestTrackCreator_tracks, + make_PrKalmanFilter_noUT_tracks, + make_PrKalmanFilter_Velo_tracks, + make_PrKalmanFilter_Seed_tracks, +) +from RecoConf.decoders import default_VeloCluster_source +from RecoConf.protoparticles import make_charged_protoparticles +from RecoConf.event_filters import require_gec +from Hlt2Conf.settings.defaults import get_default_hlt1_filter_code_for_hlt2 +from Moore.streams import Stream, Streams +from Hlt2Conf.lines.semileptonic import all_lines as full_lines # all full-stream lines +import sys +from DDDB.CheckDD4Hep import UseDD4Hep + +from Moore import options, run_moore +from RecoConf.global_tools import stateProvider_with_simplified_geom, trackMasterExtrapolator_with_simplified_geom +from RecoConf.reconstruction_objects import reconstruction +from RecoConf.hlt2_global_reco import reconstruction as hlt2_reconstruction, make_light_reco_pr_kf_without_UT +from RecoConf.hlt2_tracking import ( + make_TrackBestTrackCreator_tracks, + make_PrKalmanFilter_noUT_tracks, + make_PrKalmanFilter_Velo_tracks, + make_PrKalmanFilter_Seed_tracks, +) +from RecoConf.decoders import default_VeloCluster_source +from RecoConf.protoparticles import make_charged_protoparticles +from RecoConf.event_filters import require_gec +from Hlt2Conf.settings.defaults import get_default_hlt1_filter_code_for_hlt2 +from Moore.streams import Stream, Streams +from Hlt2Conf.lines.semileptonic import all_lines as full_lines # all full-stream lines +import sys +from DDDB.CheckDD4Hep import UseDD4Hep + task_type = os.getenv("TASK_TYPE", "GenericTask") ## Global event cut specifications: @@ -70,6 +124,7 @@ def with_update_and_reset(): IOVReset(ODIN=make_odin()), update_and_reset(), odin_bb_filter, rb_filter ]) + return reco @@ -78,5 +133,6 @@ def with_update_and_reset(): with config_pp_2024_with_monitoring(), reco_prefilters.bind( gec=False, gec_cut=GEC_cut, -): - run_reconstruction(options, with_update_and_reset) +),\ + VertexCompare.bind(produceNtuple=False,produceHistogram=False,monitoring=True): + run_allen_reconstruction(options, with_update_and_reset) diff --git a/MooreOnlineConf/options/vp_veloSP.py b/MooreOnlineConf/options/vp_veloSP.py new file mode 100644 index 0000000000000000000000000000000000000000..12676520553920a34d5bf4cb047a0e93d80e91a2 --- /dev/null +++ b/MooreOnlineConf/options/vp_veloSP.py @@ -0,0 +1,15 @@ +############################################################################### +# (c) Copyright 2024 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. # +############################################################################### +from RecoConf.decoders import default_VeloCluster_source +from AllenConf.velo_reconstruction import decode_velo + +default_VeloCluster_source.global_bind(bank_type="VP") +decode_velo.global_bind(retina_decoding=False) diff --git a/MooreScripts/CMakeLists.txt b/MooreScripts/CMakeLists.txt index db82a5e1628613e07c4216e3558d17f9856c549e..5537a4e859937d839f652fe6eb605349445527b9 100644 --- a/MooreScripts/CMakeLists.txt +++ b/MooreScripts/CMakeLists.txt @@ -26,6 +26,20 @@ if(BUILD_TESTING AND NOT USE_DD4HEP) ) endif() +if(BUILD_TESTING AND BINARY_TAG MATCHES ".*cuda.*") + # When compiling for GPU, vertex resolution monitoring call the device algorithms + # since these are incompatible with calling from Moore / Gaudi, disable the monitoring tests + set_property( + TEST + MooreScripts.beamspotmon + MooreScripts.calomon + MooreScripts.recomon + MooreScripts.velomon + PROPERTY + DISABLED TRUE + ) +endif() + # FIXME the following does not work as I don't know how to run cmsetup.py as part of the install # because xenv is not in available. Maybe find_package(xenv) would work? diff --git a/MooreScripts/job/runRecoMon.sh b/MooreScripts/job/runRecoMon.sh index 96a323050e3a2f969e6ba36d592a9ebd2ecef726..4b2cca1ab3561addfae3c9d10878b2c66b60f270 100755 --- a/MooreScripts/job/runRecoMon.sh +++ b/MooreScripts/job/runRecoMon.sh @@ -19,7 +19,7 @@ settings=$(python -c 'import OnlineEnvBase; print(OnlineEnvBase.HLTType)') vp_options=$MOOREONLINECONFROOT/options/vp_retina_clusters.py if [[ $settings == *"veloSP" ]]; then echo "RecoMon: configuring VELO SP algorithms based on current trigger config $settings" - vp_options= + vp_options=$MOOREONLINECONFROOT/options/vp_veloSP.py fi exec_gaudirun \ diff --git a/MooreScripts/tests/qmtest/recomon.qmt b/MooreScripts/tests/qmtest/recomon.qmt index 05066b627121434c1a91c1dea0820690de372201..b92254d585896e2336c117be9668669ad6602da0 100644 --- a/MooreScripts/tests/qmtest/recomon.qmt +++ b/MooreScripts/tests/qmtest/recomon.qmt @@ -1,4 +1,4 @@ -<?xml version="1.0" ?><!DOCTYPE extension PUBLIC '-//QM/2.3/Extension//EN' 'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'> +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE extension PUBLIC '-//QM/2.3/Extension//EN' 'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'> <!-- (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration @@ -28,7 +28,7 @@ Run an RecoMon job in the Online testbench import glob workdir = self._common_tmpdir for fn in glob.glob(workdir + "/recomon/*.*"): - if not fn.endswith(".mdf"): + if not fn.endswith(".mdf") and not fn.endswith(".root"): result[os.path.basename(fn)] = open(fn).read() </text></argument>