Skip to content

Resolve RICH-55

Anatoly Solomin requested to merge RICH-55 into master

This MR is the Python part of the implementation of JIRA task RICH-55: Reimplement production of delta theta vs. phi distributions of photons within RTA framework.

It is indivisible from MR Rec!2122 (merged) that implements the histogramming of Cherenkov delta theta (actual minus expected) vs. phi angles of the emitted photons. The file there is Rec/Rich/RichFutureRecMonitors/src/RichSIMDAlignment.cpp. That one is the C++ part of the implementation.

A new steering file is created to run RICH-alignment-aimed Moore's HLT2-mode reconstruction:

Moore/Hlt/RecoConf/options/hlt2_reco_baseline_with_data_monitoring_alignment_rich.py.

It uses configurable add_hlt2_rich to turn on the RICH alignment monitoring and to choose the radiator (as the alignment is done one RICH at a time), the tasks of interest, and the track types.

The tasks are activated in hlt2_reco_baseline_with_data_monitoring_alignment_rich.py (any line can be simply commented out):

with add_hlt2_rich.bind(
        do_data_monitoring_rich=True,
        moni_set="Alignment",
        radiator="Rich1Gas",
        align_tasks=
    [
        'Produce',  # fill the production set of histograms
        'Monitor',  # add various checking histograms
        'Map',  # add counters for creation of the HLT1 pre-selection line "map"
        'Optimize',  # add counters for optimization of the RICH2 mirror combinations subset
        'Explore',  # explore influence of RICH1 coordinate systems on distribution shapes
    ],

The modified files are:

Moore/Hlt/RecoConf/python/RecoConf/rich_data_monitoring.py
Moore/Hlt/RecoConf/python/RecoConf/rich_reconstruction.py
Moore/Hlt/RecoConf/python/RecoConf/standalone.py

Additional options needed for the RICH alignment are introduced.

The add_hlt2_rich configurable is moved from standalone.py to a new, separate file: rich_add_reconstruction_monitoring_checking.py. Necessary addition and modifications are made for the mirror alignment histogramming. The orphaned nodes variable is removed.

In particular, new parameters are added so that rich monitoring can be switched on individually.

@configurable
def add_hlt2_rich(
        best_tracks,
        light_reco=False,
        do_mc_checking=False,
        do_data_monitoring=False,
        do_data_monitoring_rich=False, # can switch it on individually
        do_data_monitoring_allow_rich=True, # can protect from global switch
        moni_set="Standard",
        align_tasks=['Produce'],
        radiator="Rich2Gas",
        track_types=['Long', 'Downstream', 'Upstream'],
):

and therefore, in the steering script, the RICH alignment is turned on with

with add_hlt2_rich.bind(
        do_data_monitoring_rich=True,
        moni_set="Alignment",

A file for the nightly testing in the lhcb-master slot at x86_64-centos7-gcc9+py3-opt platform is created:

Moore/Hlt/RecoConf/tests/qmtest/hlt2_reco_baseline_with_data_monitoring_alignment_rich.qmt

Some yapf-permitted readability improvements are made.

Depends on Rec!2122 (merged).

edit (acasaisv): Updated references MR: !676 (closed)

Edited by Anatoly Solomin

Merge request reports