-- 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)

Edit | Attach | Watch | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r8 - 2022-11-29 - ParasNaik
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback