Resolve RICH-55
This MR is the C++ part of the implementation of JIRA task RICH-55: Reimplement production of delta theta vs. phi distributions of photons within the RTA
framework. Histogramming of Cherenkov delta theta (actual minus expected) vs. phi angles of the emitted photons is done here. This is a part of the RICH mirror alignment procedure.
It is indivisible from MR Moore!547 (merged) that implements the required configuration options control.
The new file is created:
Rec/Rich/RichFutureRecMonitors/src/RichSIMDAlignment.cpp
.
Apart from the main production task, it can also fill histograms needed for creating the map of solid angles for the track selection in the HLT1
line (for each of RICH1 and RICH2) and for the choice of the best RICH2 mirror segment combinations subset for the performance optimization of the entire RICH alignment procedure.
The choice of the tasks is done in Moore/Hlt/RecoConf/options/hlt2_reco_baseline_with_data_monitoring_alignment_rich.py
, in the add_hlt2_rich.bind
expression there:
align_tasks=[
'Produce', # the production set of histograms
'Monitor', # various checking histograms
'Map', # shaping the "map" for the HLT1 pre-selection line
'Optimize', # the RICH2 mirror combinations subset
'Explore', # influence of coordinate systems on distribution shapes
],
And they are passed to RichSIMDAlignment via Gaudi::Property<std::vector<std::string>>
"AlignmentTasks"
For the "Optimize" task, the counter of useful photons produced per mirror combination is stored in std::map<std::string, double> photCountSaturTrOpt. In the Finalize it is stored as a TTree object with one branch and one entry and written to a root file. The map can, later on, be read off that file and analyzed.
The goal is to eventually determine the minimal subset of the mirror segment combinations, that can be populated the fasted.
A typo is fixed in
Rec/Rich/RichFutureRecEvent/RichFutureRecEvent/RichRecCherenkovPhotons.h
(luckily, nobody except us is using that branch of code as yet).
Depends on Moore!547 (merged).