diff --git a/MooreOnlineConf/options/reco.py b/MooreOnlineConf/options/reco.py index 490f9812faa0057ac2a1cc6a70d1a29ae52e4957..1ac149a15fb5eef2b0ad60acfdf22ac8b84d7a38 100644 --- a/MooreOnlineConf/options/reco.py +++ b/MooreOnlineConf/options/reco.py @@ -25,6 +25,8 @@ from RecoConf.hlt2_tracking import ( make_TrackBestTrackCreator_tracks, ) from MooreOnlineConf.utils import update_and_reset +from MooreOnlineConf.mass_monitors import make_mass_monitors +from DDDB.CheckDD4Hep import UseDD4Hep def with_update_and_reset(): @@ -39,20 +41,25 @@ def with_update_and_reset(): return Reconstruction( "with_update_and_reset", [IOVReset(ODIN=make_odin()), - update_and_reset(), reco.node], + update_and_reset(), reco.node] + make_mass_monitors(), filters=[odin_bb_filter]) return reco - -#put this back if the excluded TrackEff lines are fixed and still need get_global_measurement_provider -#get_global_measurement_provider.bind(velo_hits=make_RetinaClusters),\ #noqa with make_VeloClusterTrackingSIMD.bind(algorithm=VeloRetinaClusterTrackingSIMD, SkipForward=4),\ make_reco_pvs.bind(make_pvs_from_velo_tracks=make_PatPV3DFuture_pvs),\ get_UpgradeGhostId_tool_no_UT.bind(velo_hits=make_RetinaClusters),\ - make_TrackBestTrackCreator_tracks.bind(max_chi2ndof=10.0),\ - make_PrKalmanFilter_Velo_tracks.bind(max_chi2ndof=10.0),\ - make_PrKalmanFilter_noUT_tracks.bind(max_chi2ndof=10.0),\ - make_PrKalmanFilter_Seed_tracks.bind(max_chi2ndof=10.0),\ + make_TrackBestTrackCreator_tracks.bind(max_chi2ndof=4.2),\ + make_PrKalmanFilter_Velo_tracks.bind(max_chi2ndof=4.2),\ + make_PrKalmanFilter_noUT_tracks.bind(max_chi2ndof=4.2),\ + make_PrKalmanFilter_Seed_tracks.bind(max_chi2ndof=4.2),\ make_digits.bind(calo_raw_bank=True),\ make_muon_hits.bind(geometry_version=3): run_reconstruction(options, with_update_and_reset) + +if UseDD4Hep: + from Configurables import LHCb__Det__LbDD4hep__DD4hepSvc + dd4hep_svc = LHCb__Det__LbDD4hep__DD4hepSvc() + dd4hep_svc.DetectorList = [ + '/world', 'VP', 'FT', 'Magnet', 'Rich1', 'Rich2', 'Ecal', 'Hcal', + 'Muon' + ] diff --git a/MooreOnlineConf/python/MooreOnlineConf/mass_monitors.py b/MooreOnlineConf/python/MooreOnlineConf/mass_monitors.py new file mode 100644 index 0000000000000000000000000000000000000000..32564e61be5c53a0b3b8b0315a97b259ec236f7f --- /dev/null +++ b/MooreOnlineConf/python/MooreOnlineConf/mass_monitors.py @@ -0,0 +1,531 @@ +############################################################################### +# (c) Copyright 2023 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 Moore.config import Reconstruction +from PyConf.Algorithms import Monitor__ParticleRange +from PyConf.packing import persisted_location +from RecoConf.reconstruction_objects import reconstruction +from GaudiKernel.SystemOfUnits import (GeV, MeV, mm, micrometer as um) +from RecoConf.hlt1_tracking import make_pvs +from RecoConf.event_filters import require_pvs +from Hlt2Conf.standard_particles import (make_photons, make_ismuon_long_muon, + make_long_pions, make_long_kaons, + make_long_protons) +from Hlt2Conf.algorithms_thor import (ParticleCombiner, ParticleFilter) +from Hlt2Conf.lines.rd.builders.rdbuilder_thor import make_rd_detached_dielectron +import Functors as F + + +def _MIP_MIN(cut, pvs=make_pvs): + return F.MINIPCUT(IPCut=cut, Vertices=pvs()) + + +def _MIPCHI2_MIN(cut, pvs=make_pvs): + return F.MINIPCHI2CUT(IPChi2Cut=cut, Vertices=pvs()) + + +def _DZ_CHILD(i): + return F.CHILD(i, F.END_VZ) - F.END_VZ + + +def _DRHO2_CHILD(i): + return (F.CHILD(i, F.END_VX) - F.END_VX) * (F.CHILD( + i, F.END_VX) - F.END_VX) + (F.CHILD(i, F.END_VY) - F.END_VY) * ( + F.CHILD(i, F.END_VY) - F.END_VY) + + +def _filter_photons(): + return ParticleFilter( + make_photons(), + F.FILTER( + F.require_all(F.PT > 300 * MeV, + F.CALO_NEUTRAL_1TO9_ENERGY_RATIO > 0.9, + F.IS_PHOTON > 0.7, F.IS_NOT_H > 0.5))) + + +def _filter_long_pions_for_strange(): + return ParticleFilter( + make_long_pions(), + F.FILTER(F.require_all(F.PT > 100 * MeV, _MIPCHI2_MIN(24.)))) + + +def _filter_long_pions_for_charm(): + return ParticleFilter( + make_long_pions(), + F.FILTER(F.require_all(F.PT > 200 * MeV, _MIP_MIN(120 * um)))) + + +def _filter_long_pions_for_dst(): + return ParticleFilter( + make_long_pions(), + F.FILTER(F.require_all(F.PT > 100 * MeV, _MIP_MIN(100 * um)))) + + +def _filter_long_kaons_for_strange(): + return ParticleFilter( + make_long_kaons(), + F.FILTER( + F.require_all(F.PT > 100 * MeV, _MIPCHI2_MIN(12.), F.PID_K > 0.0))) + + +def _filter_long_kaons_for_charm(): + return ParticleFilter( + make_long_kaons(), + F.FILTER( + F.require_all(F.PT > 200 * MeV, _MIP_MIN(80. * um), + F.PID_K > 5.0))) + + +def _filter_long_protons_for_strange(): + return ParticleFilter( + make_long_protons(), + F.FILTER( + F.require_all(F.PT > 500 * MeV, F.P > 9 * GeV, _MIPCHI2_MIN(8.), + F.PID_P > 0.0))) + + +def _filter_long_protons_for_charm(): + return ParticleFilter( + make_long_protons(), + F.FILTER( + F.require_all(F.PT > 600 * MeV, F.P > 9 * GeV, _MIP_MIN(80. * um), + F.PID_P > 5.0))) + + +def _filter_long_muons_for_jpsi(): + cut = F.require_all(F.PT > 500 * MeV, + F.MINIP(make_pvs()) < 120 * um, F.PID_MU > 0.) + return ParticleFilter(make_ismuon_long_muon(), F.FILTER(cut)) + + +def _diphoton(): + return ParticleCombiner( + name="RecoMon_DiPhoton", + Inputs=[_filter_photons(), _filter_photons()], + ParticleCombiner="ParticleAdder", + DecayDescriptor="eta -> gamma gamma", + CombinationCut=F.require_all( + F.math.in_range(0 * MeV, F.MASS, 1200 * MeV), F.PT > 1.6 * GeV), + CompositeCut=F.ALL, + ) + + +def _gg_mass_mon(): + return Monitor__ParticleRange( + Input=_diphoton(), + name="DiPhotonMassMon", + Variable=F.MASS, + HistogramName="gg_m", + Bins=240, + Range=(0 * MeV, 1200 * MeV)) + + +def _ks(): + return ParticleCombiner( + [_filter_long_pions_for_strange(), + _filter_long_pions_for_strange()], + DecayDescriptor="KS0 -> pi+ pi-", + name="RecoMon_KS0_LL", + CombinationCut=F.require_all( + F.math.in_range(380 * MeV, F.MASS, 610 * MeV), + F.MAXDOCACUT(200 * um), + F.PT > 300 * MeV, + F.P > 3.5 * GeV, + ), + CompositeCut=F.require_all( + F.math.in_range(410 * MeV, F.MASS, 590 * MeV), + F.PT > 350 * MeV, + F.P > 4 * GeV, + F.CHI2DOF < 12., + F.BPVVDZ(make_pvs()) > 4 * mm, + F.BPVVDRHO(make_pvs()) > 1.5 * mm, + F.BPVDIRA(make_pvs()) > 0.999, + ), + ) + + +def _ks_mass_mon(): + return Monitor__ParticleRange( + Input=_ks(), + name="KShortMassMon", + Variable=F.MASS, + HistogramName="ks_m", + Bins=180, + Range=(410 * MeV, 590 * MeV)) + + +def _lambda(): + return ParticleCombiner( + [_filter_long_protons_for_strange(), + _filter_long_pions_for_strange()], + DecayDescriptor="[Lambda0 -> p+ pi-]cc", + name="RecoMon_Lambda_LL", + CombinationCut=F.require_all( + F.MASS < 1180 * MeV, + F.MAXDOCACUT(500 * um), + F.PT > 650 * MeV, + ), + CompositeCut=F.require_all( + F.MASS < 1140 * MeV, + F.PT > 700 * MeV, + F.CHI2DOF < 16., + F.BPVVDZ(make_pvs()) > 4 * mm, + F.BPVVDRHO(make_pvs()) > 2 * mm, + F.BPVFDCHI2(make_pvs()) > 180., + F.math.in_range(-80 * mm, F.END_VZ, 640 * mm), + F.BPVDIRA(make_pvs()) > 0.999, + ), + ) + + +def _lambda_mass_mon(): + return Monitor__ParticleRange( + Input=_lambda(), + name="LambdaMassMon", + Variable=F.MASS, + HistogramName="lambda_m", + Bins=120, + Range=(1080 * MeV, 1140 * MeV)) + + +def _xi(): + return ParticleCombiner( + [_lambda(), _filter_long_pions_for_strange()], + DecayDescriptor="[Xi- -> Lambda0 pi-]cc", + name="RecoMon_Xim_LLL", + CombinationCut=F.require_all( + F.math.in_range(1110 * MeV, F.CHILD(1, F.MASS), 1121 * MeV), + F.MASS < 1400 * MeV, + F.PT > 700 * MeV, + F.MAXDOCACUT(200 * um), + ), + CompositeCut=F.require_all( + F.MASS < 1380 * MeV, + F.PT > 800 * MeV, + F.CHI2DOF < 12., + _DZ_CHILD(1) > 8 * mm, + _DRHO2_CHILD(1) > 50 * 50 * um * um, + F.BPVVDZ(make_pvs()) > 4 * mm, + F.BPVFDCHI2(make_pvs()) > 80., + F.math.in_range(-120 * mm, F.END_VZ, 630 * mm), + F.BPVDIRA(make_pvs()) > 0.999, + ), + ) + + +def _xi_mass_mon(): + return Monitor__ParticleRange( + Input=_xi(), + name="XiMassMon", + Variable=(F.MASS - F.CHILD(1, F.MASS) + 1115.683 * MeV), + HistogramName="xi_m", + Bins=120, + Range=(1260 * MeV, 1380 * MeV)) + + +def _omega(): + return ParticleCombiner( + [_lambda(), _filter_long_kaons_for_strange()], + DecayDescriptor="[Omega- -> Lambda0 K-]cc", + name="RecoMon_Omega_LLL", + CombinationCut=F.require_all( + F.math.in_range(1110 * MeV, F.CHILD(1, F.MASS), 1121 * MeV), + F.MASS < 1800 * MeV, + F.PT > 700 * MeV, + F.MAXDOCACUT(200 * um), + ), + CompositeCut=F.require_all( + F.MASS < 1760 * MeV, + F.PT > 800 * MeV, + F.CHI2DOF < 12., + _DZ_CHILD(1) > 4 * mm, + _DRHO2_CHILD(1) > 50 * 50 * um * um, + F.BPVVDZ(make_pvs()) > 2 * mm, + F.BPVFDCHI2(make_pvs()) > 64., + F.math.in_range(-120 * mm, F.END_VZ, 630 * mm), + F.BPVDIRA(make_pvs()) > 0.999, + ), + ) + + +def _omega_mass_mon(): + return Monitor__ParticleRange( + Input=_omega(), + name="OmegaMassMon", + Variable=(F.MASS - F.CHILD(1, F.MASS) + 1115.683 * MeV), + HistogramName="omega_m", + Bins=80, + Range=(1600 * MeV, 1760 * MeV)) + + +def _d0(): + return ParticleCombiner( + [_filter_long_kaons_for_charm(), + _filter_long_pions_for_charm()], + DecayDescriptor="[D0 -> K- pi+]cc", + name="RecoMon_D0ToKmPip", + CombinationCut=F.require_all( + F.math.in_range(1665 * MeV, F.MASS, 2065 * MeV), + F.PT > 1.4 * GeV, + F.P > 10 * GeV, + F.SUM(F.PT) > 1.2 * GeV, + F.MAXSDOCACUT(100 * um), + ), + CompositeCut=F.require_all( + F.math.in_range(1700 * MeV, F.MASS, 2030 * MeV), + F.PT > 1.4 * GeV, + F.P > 12 * GeV, + F.CHI2DOF < 10., + F.BPVIP(make_pvs()) < 0.8 * mm, + F.BPVVDZ(make_pvs()) > 1 * mm, + F.BPVVDRHO(make_pvs()) < 2 * mm, + F.BPVFDCHI2(make_pvs()) > 24., + F.BPVDIRA(make_pvs()) > 0.9999, + ), + ) + + +def _d0_mass_mon(): + return Monitor__ParticleRange( + Input=_d0(), + name="D0MassMon", + Variable=F.MASS, + HistogramName="d0_m", + Bins=150, + Range=(1715 * MeV, 2015 * MeV)) + + +def _dst(): + return ParticleCombiner( + [_d0(), _filter_long_pions_for_dst()], + DecayDescriptor="[D*(2010)+ -> D0 pi+]cc", + name="RecoMon_Dstar", + CombinationCut=F.require_all( + F.math.in_range(1845 * MeV, F.CHILD(1, F.MASS), 1885 * MeV), + F.MASS - F.CHILD(1, F.MASS) < 195 * MeV, + F.MAXDOCACUT(150 * um), + F.PT > 1800 * MeV, + ), + CompositeCut=F.require_all(F.MASS - F.CHILD(1, F.MASS) < 180 * MeV, + F.CHI2DOF < 12., F.PT > 2000 * MeV), + ) + + +def _dst_mass_mon(): + return Monitor__ParticleRange( + Input=_dst(), + name="DstMassMon", + Variable=(F.MASS - F.CHILD(1, F.MASS)), + HistogramName="dst_m", + Bins=80, + Range=(140 * MeV, 180 * MeV), + ) + + +def _dp(): + return ParticleCombiner( + [ + _filter_long_kaons_for_charm(), + _filter_long_pions_for_charm(), + _filter_long_pions_for_charm() + ], + DecayDescriptor="[D+ -> K- pi+ pi+]cc", + name="RecoMon_DpToKmPipPip", + Combination12Cut=F.MASS < 1960 * MeV, + CombinationCut=F.require_all( + F.math.in_range(1640 * MeV, F.MASS, 2100 * MeV), + F.PT > 1.2 * GeV, + F.P > 10 * GeV, + F.SUM(F.PT) > 1.2 * GeV, + F.MAXSDOCACUT(100 * um), + ), + CompositeCut=F.require_all( + F.math.in_range(1670 * MeV, F.MASS, 2070 * MeV), + F.PT > 1.4 * GeV, + F.P > 12 * GeV, + F.CHI2DOF < 12., + F.BPVIP(make_pvs()) < 0.8 * mm, + F.BPVVDZ(make_pvs()) > 1.5 * mm, + F.BPVVDRHO(make_pvs()) < 2 * mm, + F.BPVFDCHI2(make_pvs()) > 28., + F.BPVDIRA(make_pvs()) > 0.9999, + ), + ) + + +def _dp_mass_mon(): + return Monitor__ParticleRange( + Input=_dp(), + name="DpMassMon", + Variable=F.MASS, + HistogramName="dp_m", + Bins=100, + Range=(1670 * MeV, 2070 * MeV), + ) + + +def _ds(): + return ParticleCombiner( + [ + _filter_long_kaons_for_charm(), + _filter_long_kaons_for_charm(), + _filter_long_pions_for_charm() + ], + DecayDescriptor="[D_s+ -> K+ K- pi+]cc", + name="RecoMon_DspToPhiPip", + Combination12Cut=F.MASS < 1050 * MeV, + CombinationCut=F.require_all( + F.math.in_range(1665 * MeV, F.MASS, 2165 * MeV), + F.PT > 1.2 * GeV, + F.P > 10 * GeV, + F.SUM(F.PT) > 1.2 * GeV, + F.MAXSDOCACUT(100 * um), + ), + CompositeCut=F.require_all( + F.math.in_range(1700 * MeV, F.MASS, 2100 * MeV), + F.PT > 600 * MeV, + F.CHI2DOF < 12., + F.BPVIP(make_pvs()) < 0.8 * mm, + F.BPVVDZ(make_pvs()) > 1 * mm, + F.BPVVDRHO(make_pvs()) < 2.5 * mm, + F.BPVFDCHI2(make_pvs()) > 24., + F.BPVDIRA(make_pvs()) > 0.9999, + ), + ) + + +def _ds_mass_mon(): + return Monitor__ParticleRange( + Input=_ds(), + name="DsMassMon", + Variable=F.MASS, + HistogramName="ds_m", + Bins=100, + Range=(1700 * MeV, 2100 * MeV)) + + +def _lc(): + return ParticleCombiner( + [ + _filter_long_protons_for_charm(), + _filter_long_kaons_for_charm(), + _filter_long_pions_for_charm() + ], + DecayDescriptor="[Lambda_c+ -> p+ K- pi+]cc", + name="RecoMon_LcpToPpKmPip", + Combination12Cut=F.MASS < 2420 * MeV, + CombinationCut=F.require_all( + F.math.in_range(2200 * MeV, F.MASS, 2560 * MeV), + F.PT > 1.7 * GeV, + F.P > 15 * GeV, + F.SUM(F.PT) > 1.8 * GeV, + F.MAXSDOCACUT(100 * um), + ), + CompositeCut=F.require_all( + F.math.in_range(2130 * MeV, F.MASS, 2630 * MeV), + F.PT > 2 * GeV, + F.P > 16 * GeV, + F.CHI2DOF < 12., + F.BPVIP(make_pvs()) < 0.8 * mm, + F.BPVVDZ(make_pvs()) > 0.5 * mm, + F.BPVVDRHO(make_pvs()) < 2 * mm, + F.BPVFDCHI2(make_pvs()) > 16., + F.BPVDIRA(make_pvs()) > 0.9999, + ), + ) + + +def _lc_mass_mon(): + return Monitor__ParticleRange( + Input=_lc(), + name="LcMassMon", + Variable=F.MASS, + HistogramName="lc_m", + Bins=125, + Range=(2130 * MeV, 2630 * MeV)) + + +def _jpsi(): + return ParticleCombiner( + [_filter_long_muons_for_jpsi(), + _filter_long_muons_for_jpsi()], + name="RecoMon_JpsiToMumMup", + DecayDescriptor="J/psi(1S) -> mu+ mu-", + CombinationCut=F.require_all( + F.math.in_range(2.6 * GeV, F.MASS, 4.0 * GeV), + F.SUM(F.PT) > 2. * GeV, + F.MAXSDOCACUT(0.2 * mm), + ), + CompositeCut=F.require_all( + F.math.in_range(2.7 * GeV, F.MASS, 3.9 * GeV), F.CHI2DOF < 12., + F.BPVIP(make_pvs()) < 0.8 * mm), + ) + + +def _jpsi_mass_mon(): + return Monitor__ParticleRange( + Input=_jpsi(), + name="JpsiMassMon", + Variable=F.MASS, + HistogramName="jpsi_m", + Bins=120, + Range=(2.7 * GeV, 3.9 * GeV)) + + +def _jpsi_ee(): + return make_rd_detached_dielectron(am_min=2000 * MeV, am_max=3500 * MeV) + + +def _jpsi_ee_mass_mon(): + return Monitor__ParticleRange( + Input=_jpsi_ee(), + name="JpsiEEMassMon", + Variable=F.MASS, + HistogramName="jpsi_ee_m", + Bins=150, + Range=(2.0 * GeV, 3.5 * GeV)) + + +def make_mass_monitors(): + with persisted_location.bind(force=False), reconstruction.bind( + from_file=False): + ks_mon_reco = Reconstruction( + "KShortMassMonCF", [_ks_mass_mon()], filters=[_ks()]) + gg_mon_reco = Reconstruction( + "DiPhotonMassMonCF", [_gg_mass_mon()], filters=[_diphoton()]) + lambda_mon_reco = Reconstruction( + "LambdaMassMonCF", [_lambda_mass_mon()], filters=[_lambda()]) + xi_mon_reco = Reconstruction( + "XiMassMonCF", [_xi_mass_mon()], filters=[_xi()]) + omega_mon_reco = Reconstruction( + "OmegaMassMonCF", [_omega_mass_mon()], filters=[_omega()]) + d0_mon_reco = Reconstruction( + "D0MassMonCF", [_d0_mass_mon()], filters=[_d0()]) + dst_mon_reco = Reconstruction( + "DstMassMonCF", [_dst_mass_mon()], filters=[_dst()]) + dp_mon_reco = Reconstruction( + "DpMassMonCF", [_dp_mass_mon()], filters=[_dp()]) + ds_mon_reco = Reconstruction( + "DsMassMonCF", [_ds_mass_mon()], filters=[_ds()]) + lc_mon_reco = Reconstruction( + "LcMassMonCF", [_lc_mass_mon()], filters=[_lc()]) + jpsi_mon_reco = Reconstruction( + "JpsiMassMonCF", [_jpsi_mass_mon()], filters=[_jpsi()]) + jpsiee_mon_reco = Reconstruction( + "JpsiEEMassMonCF", [_jpsi_ee_mass_mon()], filters=[_jpsi_ee()]) + reco_with_require_pvs = Reconstruction( + "MassMonWithPVsCF", [ + ks_mon_reco.node, lambda_mon_reco.node, xi_mon_reco.node, + omega_mon_reco.node, d0_mon_reco.node, dst_mon_reco.node, + dp_mon_reco.node, ds_mon_reco.node, lc_mon_reco.node, + jpsi_mon_reco.node, jpsiee_mon_reco.node + ], + filters=[require_pvs(make_pvs())]) + return [gg_mon_reco.node, reco_with_require_pvs.node] diff --git a/MooreScripts/tests/options/HLT2VdM/OnlineEnv.opts b/MooreScripts/tests/options/HLT2VdM/OnlineEnv.opts index bb1f431cf985b6f00a341546e42486a92493002c..5f131486a51a9ca8671738aee7d5fd4a0dc22c32 100644 --- a/MooreScripts/tests/options/HLT2VdM/OnlineEnv.opts +++ b/MooreScripts/tests/options/HLT2VdM/OnlineEnv.opts @@ -4,7 +4,9 @@ OnlineEnv.Activity = "PHYSICS"; OnlineEnv.OutputLevel = 3; // OnlineEnv.Reader_Rescan = 0; -OnlineEnv.Reader_Directories = {"/hlt2/objects/LHCb/0000252975/"}; +// OnlineEnv.Reader_Directories = {"/hlt2/objects/LHCb/0000252975/"}; // OnlineEnv.Reader_FilePrefix = "Run_0000252975_"; // 4.0 GB -OnlineEnv.Reader_FilePrefix = "Run_0000252975_HLT24705_20221110-090425-628"; +// OnlineEnv.Reader_FilePrefix = "Run_0000252975_HLT24705_20221110-090425-628"; +OnlineEnv.Reader_Directories = {"/hlt2/objects/LHCb/0000255983"}; +OnlineEnv.Reader_FilePrefix = "Run_0000255983_HLT22610_20230204"; diff --git a/MooreScripts/tests/options/RecoMon/OnlineEnv.opts b/MooreScripts/tests/options/RecoMon/OnlineEnv.opts index 08b53756be1ca62fa638e1b559477f48c925d2d9..cb8763439c62b088f8e048d4a5050ff487c3aabe 100644 --- a/MooreScripts/tests/options/RecoMon/OnlineEnv.opts +++ b/MooreScripts/tests/options/RecoMon/OnlineEnv.opts @@ -4,5 +4,5 @@ OnlineEnv.Activity = "PHYSICS"; OnlineEnv.OutputLevel = 3; // OnlineEnv.Reader_Rescan = 0; -OnlineEnv.Reader_Directories = {"/hlt2/objects/LHCb/0000252002"}; -OnlineEnv.Reader_FilePrefix = "Run_0000252002_"; \ No newline at end of file +OnlineEnv.Reader_Directories = {"/hlt2/objects/LHCb/0000255983"}; +OnlineEnv.Reader_FilePrefix = "Run_0000255983_HLT22610_20230204"; \ No newline at end of file