--
ParasNaik - 2022-05-26
How to perform various code-related tasks for the Run 3 RICH Mirrors' alignment
Projects and Branches
To check your commits and the resulting pipelines, make sure to click on the
GitLab links below
Gitlab MR - main person responsible - branch name --- notes --- person working on it
Rec !3229
- Anatoly - richalign_run3
MERGED Rec !2572
- Anatoly - asolomin_OptimRichMirrAlignMST --- ---
Anatoly (Paras will occasionally update this branch to master using script below; Paras will also try to fix any broken pipelines)
Moore !1925
- Anatoly - richalign_run3
MERGED Moore !1091
- Anatoly - asolomin_OptimRichMirrAlignMST --- ---
Anatoly (Paras will occasionally update this branch to master using scripts below; Paras will also try to fix any broken pipelines)
Panoptes !197
- Anatoly - richalign_run3
MERGED Panoptes !136
- Alex - alex_branch --- Branch for
RichMirrCombinFit &
RichMirrAlign ---
Anatoly
These branches of Panoptes will
no longer be used:
Panoptes !126
- Vidar - vidar_upload --- Do not remove this branch, but Jake Reich took over and the new versions of the files are now merged into pnaik_Run3MirrOnline_202205
Panoptes !160
- Paras - pnaik_Run3MirrOnline_202205 --- Branch for the Iterator/RichAnalyzer ---
Paras
Panoptes !171
- Paras - mirr_scripts --- Branch for scripts only, Jake Amey's panel alignment scripts can be found here ---
Paras
Our code Online
Information specifically regarding our iteration/processing code code Online can be found here:
LHCbRun3RichMirrAlignCodeOnline (though Paras needs to bring back the images)
The instructions below are for all things other than our iteration/processing code for the Online RICH mirrors' alignment. (Though some will certainly be relevant to this)
Keeping your branches up to date with the master branch - Anatoly
OK If you are doing from scratch, literally, meaning that those branches are up-to-date by that time, you are all right.
But a huge nuance is that if you are in the process of development of your branches,
then you must have everything up to date before you are going to build.
After you have committed and pushed a new change into the clone of your branch in your local directory on lxplus,
you have to update your local clone of it with the changes in the master that happened since your last work,
and then propagate it to this branch in the repository with commands:
cd $DEVAREA/asolomin_OptimRichMirrAlignMST/Moore_asolomin_OptimRichMirrAlignMST
git pull origin master
git add .
git commit -m "Merge recent master changes to branch."
git push -f
Please check the branch you are working on in
GitLab at this time (and after every `git push`) to make sure that the commit appears to look like what you expect, and that the pipeline has passed. If the pipeline is failed, try to identify why and push a fix. It may be because of copyright statements missing or formatting issues... look in the pipeline log by clicking on any red checkmarks in the pipeline, there will be instructions there on what to do. Note that the instructions may be different for each commit!
(first line is your local directory with the branch, of course)
But that's not all. Now you have to update your stack with your changed branch
and with all the rest of the master branches of the packages that are in your local clones
of your local stack with the latest changes in all those branches in the repository
That is done by saying
cd $DEVAREA/stack_moore
make update
And only after that you can finally say
make -j -k Moore 2>&1 | tee make_moore.log &
That nuance is in the how to develop locally, which is even more sophisticated, because in that case you develop locally, but build on lxplus (see the instruction, that is unique...)
Script to keep branches up to date with the master branch - Paras
I set up my code in a directory called `/afs/cern.ch/user/p/pnaik/gituser`. You will of course have your own root directory where you like to set up projects.
There I cloned projects I am interested in:
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Rec.git
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Moore.git
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Panoptes.git
To save some time when keeping things up to date I made these scripts. You may wish to adjust them depending on how you have set things up.
updateAnatolyRecMooretoMaster.sh
This first script updates Anatoly's
Moore
and
Rec
branches (
asolomin_OptimRichMirrAlignMST
) with new content from that branch on the repo, and also the
master
branch. You may wish to change
asolomin_OptimRichMirrAlignMST
if working with another branch. Place the script in the directory above where you have
Moore
and
Rec
(e.g. "gituser").
Note that you should
not use this script if you made changes to Anatoly's branches! In that case you will need to be more careful; probably best to manually update with commits from repo and commits from master and then git add your changes and then make your commits.
git config --global lb-use.protocol ssh
cd Rec
pwd
git fetch --all
git checkout asolomin_OptimRichMirrAlignMST
git pull --all --no-edit
git config pull.rebase false
git pull origin master --no-edit
git commit
git push
cd ..
cd Moore
pwd
git fetch --all
git checkout asolomin_OptimRichMirrAlignMST
git pull --all --no-edit
git config pull.rebase false
git pull origin master --no-edit
git commit
git push
cd ..
Please check the branch you are working on in
GitLab at this time (and after every `git push`) to make sure that the commit appears to look like what you expect, and that the pipeline has passed. If the pipeline is failed, try to identify why and push a fix. It may be because of copyright statements missing or formatting issues... look in the pipeline log by clicking on any red checkmarks in the pipeline, there will be instructions there on what to do. Note that the instructions may be different for each commit!
updateParasPanoptestoMaster.sh
This second script updates Paras's
Panoptes
branch (
pnaik_Run3MirrOnline_202205
) with new content from that branch on the repo, and also the
master
branch. You may wish to change
pnaik_Run3MirrOnline_202205
if working with another branch.
git config --global lb-use.protocol ssh
cd Panoptes
pwd
git fetch --all
git checkout pnaik_Run3MirrOnline_202205
git pull --all --no-edit
git config pull.rebase false
git pull origin master --no-edit
git commit
git push
cd ..
Please check the branch you are working on in
GitLab at this time (and after every `git push`) to make sure that the commit appears to look like what you expect, and that the pipeline has passed. If the pipeline is failed, try to identify why and push a fix. It may be because of copyright statements missing or formatting issues... look in the pipeline log by clicking on any red checkmarks in the pipeline, there will be instructions there on what to do. Note that the instructions may be different for each commit!
How to Develop Locally - Anatoly
The idea of the following development method, using git and lb-stack-setup, is to have two collections of the projects clones:
a) on lxpus for building and running
b) on notebook for development
Suppose, we have two branches with the same name asolomin_OptimRichMirrAlignMST, both in Moore and in Rec (because we need to make corresponding changes in both projects: in options and in C++, respectively).
Then, to produce histograms, please follow instructions in how_to_produce_histograms.txt.
Just after Moore was "made", a collection of clones of the involved projects is seen in your directory $DEVAREA/stack_moore/
For further development, i.e. making any changes of the code locally, we create the same collection of clones on the notebook, and for reference, we also create here clones of the master branches of those projects that we are developing. For that purpose, for each project, we create separate directories named after all branches we are working with.
In our example, in Moore and in Rec, we have branch of the same name, asolomin_OptimRichMirrAlignMST, as the current development goes in both projects simultaneously. Therefore, we create directory asolomin_OptimRichMirrAlignMST.
Additionally, we create directory master, because we need it as a starting point in case we are messed in some way and we also create there clones of all projects required by Moore, for reference.
on diver:
---------
cd /home/solomin/private/LHCb
mkdir rich_align_upgrade
export DEVAREA=$HOME/private/LHCb/rich_align_upgrade
cd $DEVAREA
mkdir asolomin_OptimRichMirrAlignMST
mkdir master
Let's see what projects are required:
On lxplus,
----------
in our $DEVAREA/stack_moore we have the following directories:
cd $DEVAREA/stack_moore
tree -d -L 1
|-- Allen
|-- DBASE <-- NB! this is not accessible
|-- Detector
|-- Gaudi
|-- LHCb
|-- Lbcom
|-- Moore
|-- PARAM
|-- Rec
|-- contrib <-- NB! this is not a git project !!!
`-- utils <-- NB! this is not accessible
11 directories
tree -d -L 1 DBASE
DBASE
|-- AppConfig
`-- PRConfig
2 directories
on diver:
---------
Therefore, create the following clones of the master and the asolomin_OptimRichMirrAlignMST branches:
cd $DEVAREA/master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/Allen.git Allen_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/Detector.git Detector_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/gaudi/Gaudi.git Gaudi_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/LHCb.git LHCb_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/Lbcom.git Lbcom_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/Moore.git Moore_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/Rec.git PARAM_master
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/lhcb/Rec.git Rec_master
cd $DEVAREA/asolomin_OptimRichMirrAlignMST
git clone --recurse-submodules --single-branch --branch asolomin_OptimRichMirrAlignMST ssh://git@gitlab.cern.ch:7999/lhcb/Moore.git Moore_asolomin_OptimRichMirrAlignMST
git clone --recurse-submodules --single-branch --branch asolomin_OptimRichMirrAlignMST ssh://git@gitlab.cern.ch:7999/lhcb/Rec.git Rec_asolomin_OptimRichMirrAlignMST
cd $DEVAREA
git config --global pull.rebase false
The sofware is here! And now open all these projects in kate:
kate \
master/Allen_masterCMakeLists.txt \
master/Detector_masteCMakeLists.txt \
master/Gaudi_masterCMakeLists.txt \
master/LHCb_masterCMakeLists.txt \
master/Lbcom_masterCMakeLists.txt \
master/Moore_masterCMakeLists.txt \
master/PARAM_masterCMakeLists.txt \
master/Rec_masterCMakeLists.txt \
asolomin_OptimRichMirrAlignMST/Moore_asolomin_OptimRichMirrAlignMSTCMakeLists.txt \
asolomin_OptimRichMirrAlignMST/Rec_asolomin_OptimRichMirrAlignMSTCMakeLists.txt \
&
This way we are will be able to open a particular file simultaneously in its master version and in its current version in a devevelopment branch.
During the development, keep everything up to date.
The key action is to keep up to date with the master, the local clones of your dev branches, so that other peoples' developments of other files in those projects are here. (Assumed, of course, that nobody else modify your current file independently. Otherwise, if someone needs to, you should do your modifications intermittently, in a coordinated fashion).
For that, in our example do the following:
cd $DEVAREA/asolomin_OptimRichMirrAlignMST/Moore_asolomin_OptimRichMirrAlignMST
git pull origin master
git add .
git commit -m "Merge recent master changes to branch."
git push -f
cd $DEVAREA/asolomin_OptimRichMirrAlignMST/Rec_asolomin_OptimRichMirrAlignMST
git pull origin master
git add .
git commit -m "Merge recent master changes to branch."
git push -f
In the above, git push performs update of your branch in the repository, on the server.
For consistency, also update your reference clones of the master branches:
cd $DEVAREA/master/Allen_master \ git pull
cd $DEVAREA/master/Detector_maste \ git pull
cd $DEVAREA/master/Gaudi_master \ git pull
cd $DEVAREA/master/LHCb_master \ git pull
cd $DEVAREA/master/Lbcom_master \ git pull
cd $DEVAREA/master/Moore_master \ git pull
cd $DEVAREA/master/PARAM_master \ git pull
cd $DEVAREA/master/Rec_master \ git pull
Now, as usual, do some development (of Moore) using kate, and then:
cd $DEVAREA/asolomin_OptimRichMirrAlignMST/Moore_asolomin_OptimRichMirrAlignMST
git add .
git commit -m "New developments."
git push -f
Finally, before building, update your clones
on lxplus:
----------
export WORK=/afs/cern.ch/work/a/asolomin
export DEVAREA=$WORK/public/LHCb/rich_align_upgrade
cd $DEVAREA/stack_moore
make update
As a result, your dev branches are now up to date with both master and you modifications on notebook.
then
make -j -k Moore 2>&1 | tee make_moore.log &
By analogy, one can develop any project, e.g. Panoptes, AlignmentOnline, etc.
How to Produce Histograms - Anatoly
(please adapt the paths below:)
building on lxplus:
===================
ssh asolomin@lxplus.cern.ch
export WORK=/afs/cern.ch/work/a/asolomin
export DEVAREA=$WORK/public/LHCb/rich_align_upgrade
cd $DEVAREA
curl https://gitlab.cern.ch/rmatev/lb-stack-setup/raw/master/setup.py | python3 - stack_moore
cd $DEVAREA/stack_moore
nano utils/config.json
and just add here "gitBranch" definitions [on top of "gitBase"] like follows
(here we instruct lb-stack-setup to use our branches of Moore and Rec,
that are under development, instead of their master branches):
was:
--------------------------------------------------------------------------------
"gitBase": "ssh://git@gitlab.cern.ch:7999",
"useDocker": false,
"distccLocalslots": 10,
"localPoolDepth": 20,
"distccLocalslotsCpp": 20
--------------------------------------------------------------------------------
becomes:
--------------------------------------------------------------------------------
"gitBranch": {
"Gaudi": "master",
"default": "master",
"defaultDataPackages": "master",
"Moore": "asolomin_OptimRichMirrAlignMST",
"Rec": "asolomin_OptimRichMirrAlignMST"
},
"gitBase": "ssh://git@gitlab.cern.ch:7999",
"useDocker": false,
"distccLocalslots": 10,
"localPoolDepth": 20,
"distccLocalslotsCpp": 20
--------------------------------------------------------------------------------
python3 utils/setup.py
python3 utils/config.py
make -j -k Moore 2>&1 | tee make_moore.log &
==================
running on lxplus:
==================
cd $DEVAREA
(NB! in the following, "MD" or "md" means magnetic field down)
create there file:
hlt2_reco_baseline_with_data_monitoring_alignment.py
with content:
--------------------------------------------------------------------------------
from Moore import (
options,
run_reconstruction,
)
from RecoConf.rich_add_reconstruction_monitoring_checking import (
add_hlt2_rich, )
from RecoConf.standalone import (
standalone_hlt2_reco, )
# save output file with histograms
options.histo_file = 'rich2_produce_md.root'
with add_hlt2_rich.bind(
do_data_monitoring_rich=True,
moni_set="Alignment",
#moni_set="PhotonCherenkovAngles",
#radiator="Rich1Gas",
radiator="Rich2Gas",
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
#'Select', # check filling the rest of RICH2 mirror combinations along with 8 poorest
#'Calibrate', # check filling all RICH2 mirror combinations with elimination when filled
#'Explore', # explore influence of RICH1 coordinate systems on distribution shapes
],
track_types=[
#'Upstream',
'Downstream',
'Long',
],
):
run_reconstruction(options, standalone_hlt2_reco)
--------------------------------------------------------------------------------
and create another file:
input_and_conds.py
with content:
--------------------------------------------------------------------------------
import glob
from Moore import (
options, )
"""Options for running over data with FT raw bank version 6."""
from RecoConf.hlt1_tracking import (
default_ft_decoding_version, )
default_ft_decoding_version.global_bind(value=6)
options.evt_max = 500000
# comment: made from MC_Upgrade_Beam7000GeVUpgradeMagDownNu7.625nsPythia8_Sim10aU1_30000000_MDF.py
options.input_files = sorted(['mdf:root://eoslhcb.cern.ch/%s' %f for f in glob.glob(r'/eos/lhcb/grid/prod/lhcb/MC/Upgrade/MDF/00146082/000*/00146082_*')])
options.input_type = 'MDF'
options.dddb_tag = 'dddb-20201211'
options.conddb_tag = 'sim-20201218-vc-md100'
options.n_threads = 10
--------------------------------------------------------------------------------
and then run:
cd $DEVAREA
./stack_moore/Moore/run gaudirun.py input_and_conds.py hlt2_reco_baseline_with_data_monitoring_alignment.py 2>&1 | tee rich2_produce_mu.log
==================
MooreOnline Instructions - Richard
Creating histograms with Moore online
====
Basically follow the instructions here: https://gitlab.cern.ch/lhcb/MooreOnline/
1. Log in to the online machines
----
- Make sure when you SSH you use X11 forwarding (-X or -Y on the command line)
- SSH to lxplus.cern.ch -> lbgw.cern.ch -> plus
- Create Kerberos token - `kinit -r 7d <username>@CERN.CH`
2. Update branches on git
----
- Since we're not using the master branches for all the LHCb repos (see below), we need to make sure our development
branches (in this case the branches called asolomin_OptimRichMirrAlignMST) are up to date with the trunk branches
(master).
- i.e. we just need to merge master into asolomin_OptimRichMirrAlignMST, then push changes if there are any
- To do this, clone Rec and Moore on your laptop if you havent already
- cd to your local Rec repo
- `git checkout asolomin_OptimRichMirrAlignMST`
- `git pull`
- `git pull origin master`
- `git commit`
- `git push`
- Repeat the above with your local Moore repo
Note: you have to do this *before* setting up the stack, since we need the version of asolomin_OptimRichMirrAlignMST
that the stack sees to include the lastest changes from master. Otherwise all the LHCb git repos don't work with each
other
Please check the branch you are working on in GitLab at this time (and after every `git push`) to make sure that the commit appears to look like what you expect, and that the pipeline has passed. If the pipeline is failed, try to identify why and push a fix. It may be because of copyright statements missing or formatting issues... look in the pipeline log by clicking on any red checkmarks in the pipeline, there will be instructions there on what to do. Note that the instructions may be different for each commit!
2. Set up stack
----
- `hostname --fqdn | grep -q lbdaq.cern.ch && git config --global 'http.https://github.com/.proxy' lbproxy01:8080`
- `mkdir stack`
- `curl https://gitlab.cern.ch/rmatev/lb-stack-setup/raw/master/setup.py | python3 - stack`
- `utils/config.py useDistcc false`
- Edit the `gitBranch` bit of `utils/config.json` to use the branches you want; my config.json looks like:
```
{
"gitBranch": {
"Gaudi": "master",
"default": "master",
"defaultDataPackages": "master",
"Online": "master",
"Moore": "asolomin_OptimRichMirrAlignMST",
"Rec": "asolomin_OptimRichMirrAlignMST"
},
"gitBase": "https://:@gitlab.cern.ch:8443",
"useDistcc": false,
"localPoolDepth": 256,
"distccLocalslots": 128,
"distccLocalslotsCpp": 256,
"useDocker": false
}
```
- `make MooreOnline Online`
3. Make some changes to get the right histograms out
----
- edit the file `Moore/InstallArea/x86_64_v2-centos7-gcc11-opt/python/RecoConf/standalone.py`. Yours might be in a sligtly different dir
- find the function called `standalone_hlt2_reco`. This is the bit of code that determines which histograms come out. I think
- Change the `rich_reco` function call to look like this:
```
print("X"*79, "RUNNING RICH RECO THING") # This isn't necessary, but it shows you whether the right file is getting parsed
rich_reco = add_hlt2_rich(
light_reco=False,
best_tracks=best_tracks,
do_mc_checking=do_mc_checking,
do_data_monitoring=do_data_monitoring,
do_data_monitoring_rich=True,
moni_set="Alignment",
radiator="Rich2Gas",
align_tasks=["Produce"],
track_types=["Downstream", "Long"],
)
```
3.5. Optional - change the input files
----
You can get higher statistics histograms by changing the input files.
- Edit `MooreOnline/MooreScripts/scripts/TestBeamGUI/MDFProd.opts`
- Change the following:
```
Reader.Directories = {"/daqarea1/fest/202110/mdf_hlt1/30000000-2022-04"};
Reader.FilePrefix = "Run_0000001234_20220414";
```
This is a larger sample + will give you more populated histograms
4. Start the TestBeam GUI
----
- `MooreOnline/run MooreOnline/MooreScripts/scripts/TestBeamGUI/start.sh`
- wait for it to load
- Click `apply parameters`. This will unlock the greyed out buttons
- Click the following in order:
- Start logSrv
- Start tmSrv
- Start logViewer
- Start mbmmon
5. Start "The Application"
----
- Literally just click "AutoStart"
6. Make a histogram
----
- Open another terminal, ssh into lxplus->lbgw->the same plus node again
- e.g. run `ssh pluscc09` from lbgw, or whatever node you opened the GUI on
- not sure if this is actually necessary - might be able to do everything from one terminal window but idk
- run the kinit command again
- `cd stack`
- Inspect the currently running tasks with `Online/run taskCounters.exe -dns=PLUSCC03`
- This spits out the names of currently running tasks - e.g. "TEST_PLUSCC09_Moore_0"
- Inspect the histograms for this tasks with `Online/run taskHistos.exe -dns=PLUSCC09 -task=TEST_PLUSCC09_Moore_0 -show
- This opens a ROOT interpreter - get the number of histograms with gHistos.size()
- Display the histograms with e.g. gHistos[0]->Draw()
7. Save Histograms
----
- From the root interpreter run some code like
```
for (size_t i=40; i<228) {
std::string name{gHistos[i]->name()};
std::replace(name.begin(), name.end(), '/', '_');
name += ".root";
gHistos[i]->SaveAs(name.c_str());
}
```
This will save each histogram as an individual root file, which is a bit annoying but is much faster than trying
to save them all as individual PNGs or something with ROOT.
Then you can hadd them all together and transfer to lxplus then to your laptop to look at them
```
hadd hists.root *.root
scp hists.root lxplus.cern.ch:~
```
then from your laptop
```
scp <username>@lxplus.cern.ch:~/hists.root .
root hists.root
```
and now you can look at all of the histograms and hopefully they're not all empty
Running our core code - Alex
Follow instructions from
https://gitlab.cern.ch/rmatev/lb-stack-setup
curl https://gitlab.cern.ch/rmatev/lb-stack-setup/raw/master/setup.py | python3 - stack
cd stack
make Panoptes
then after a few hours of compiling everything, the executable can be found at:
stack/Panoptes/build.x86_64_v2-centos7-gcc11-opt/bin/RichMirrCombinFit.exe
It can be run with
Panoptes/run Panoptes/build.x86_64_v2-centos7-gcc11-opt/bin/RichMirrCombinFit.exe
edit code, then again from stack directory
make -j -k Panoptes
actually
make -j -k fast/Panoptes
to avoid recompiling/checking everything else
RichMirrCombinFit: NEED TO CHANGE DIRECTORY OF CONF FILE
Panoptes/run Panoptes/build.x86_64_v2-centos7-gcc11-opt/bin/RichMirrCombinFit.exe /afs/cern.ch/work/m/marshall/RICH/stack2/Panoptes/Rich/RichMirrCombinFit/files/rich2_prod_map_opt_calib_md_test500k_i0.conf 2
RichMirrAlign:
Panoptes/run Panoptes/build.x86_64_v2-centos7-gcc11-opt/bin/RichMirrAlign.exe /afs/cern.ch/work/m/marshall/RICH/stack2/Panoptes/Rich/RichMirrAlign/files/rich2_prod_map_opt_calib_md_test500k_i0.conf
SUMMARY OF CHANGES ALEX MADE TO THE CODE:
Change histogram names, add Rich/RichMirrCombinFit/src/rich_align_opts.inc which includes the list of mirror pairs, convert XML to YAML.
Python 2 to Python 3 cheat sheet
https://python-future.org/compatible_idioms.html
Questions for the Online team
Is the Communicator.py that we have still good for driving the alignment? (unasked)
Is /group/online/hlt/conditions/LHCb/NoYear still the place with the most recent conditions? (I believe it is, though currently no yml conditions there)
In Run 2 we were able to get the dictionary of conditions for the
RunChangeHandler service from All.py
Can we still
import All and have access to the
ConditionsMap? This was very useful to us in Run 2 as we could substitute the files for which we wanted to use a local .xml file.
The map had this format:
ConditionMap={
'LHCb/NoYear/%s/online.xml':[
"Conditions/Online/LHCb/Magnet/Set"
,"Conditions/Online/Velo/MotionSystem"
,"Conditions/Online/LHCb/Lumi/LumiSettings"
,"Conditions/Online/LHCb/LHCFillingScheme"
,"Conditions/Online/LHCb/RunParameters"
,"Conditions/Online/Rich1/R1HltGasParameters"
,"Conditions/Online/Rich2/R2HltGasParameters"]
,'LHCb/NoYear/%s/rich1mirroralign.xml':[
"Conditions/Alignment/Rich1/SphMirror0_Align"
*and so on*
We can still use this to try to run tests with
DetDesc (though perhaps by the time we get them to work
DD4Hep will be available)
Will there be a similar map for Run 3 involving YAML?
Questions for the Monet team
Can we have TGraphs displayed in Monet? (unasked)