Production Tags
Overview
This page describes the process to make a new reconstruction or simulation tag.
These operations have been performed in the
fasermc
or
faserrec
service accounts,
but in principle can be done by any FASER user.
We define simulation tags and reconstruction tags based on their purpose, but there is no technical difference between these two types of tags. They are both just git tags of calypso that provide a frozen release for running production jobs.
Information about available tags can be found at
FaserReleases.
Tag Creation
To produce a tag, you only need to use
calypso gitlab
. Make sure you are using the faser/master not your own personal master, and make sure the actual master (or branch) you are tagging has been validated! Use the Repository / Tag menu and look at the previous tags to find the next number for the tag you want to create. The New tag button will allow you to produce a new tag. It is helpful to enter both a brief description of the tag in the Message field, but also a more detailed list of updates in the Release Notes box. These release notes will show up on the
gitlab releases
page. Please also add an entry for any new tag on the
FaserReleases page!
- Navigate to a calypso release directory. For simulation, this is
fasermc@lxplus:Work/mc22/dev
. For reco this is faserrec@lxplus:work/proc-dev/dev
.
- Make sure that everything in the release directory is up to date and ready to go in origin/master
- Switch to the
fasermc-simtag
or faserrec-recotag
branch and pull from origin/master
- Make sure the following files are using a named production DB release, not current. Searching in gitlab
is a good idea.
- asetup.faser
- Database/ConnectionManagement/FaserAuthentication/data/dblookup.xml
- Control/CalypsoExample/Reconstruction/scripts/faser_reco.py
- Push any changes if necessary (don't push directly to master)
- Make sure this passes the CI
- Go to gitlab
and select "Create new tag". Use the branch above as the basis for the new tag, and include a brief massage. Once created, add some release notes to make this a release
. The commits log
is useful.
- Update the FaserReleases TWiki page
- Switch back to
master
in the release directory to avoid forgetting to do this later!
Installing Production Tag
Once a tag is created, it needs to be installed on the production
fasermc
or
faserrec
account area.
Authorized users can just ssh into lxplus with the appropriate userid.
Most of the MC sim/digi/reco is being organized from the
/afs/cern.ch/user/f/fasermc/Work/mc22
directory.
To create a new tag installation, I use the following recipe (here for the sim/s0002 tag):
setupATLAS
mkdir s0002; cd s0002
git clone --recursive https://:@gitlab.cern.ch:8443/faser/calypso.git
cd calypso
# Only needed if tag created after git clone operation above
# git remote add upstream https://gitlab.cern.ch/faser/calypso.git
# git fetch upstream
git checkout sim/s0002
cd ..
fsetup Athena,22.0.49
mkdir build;cd build
cmake -DCMAKE_INSTALL_PREFIX=../run ../calypso ; make ; make install
The tag installation is also known as a "detached head" meaning it is really like a point release. You can make local modifications to the files (which could be useful for quick patches to scripts or config files) but in general any code changes should be made elsewhere and merged back into the master so a new tag can be created.
In addition to the
calypso
,
run
, and
build
directories, you should install the
MonteCarloProduction
package which holds the condor submission scripts.
git clone https://:@gitlab.cern.ch:8443/faser/offline/mcp.git
It is also worth creating a
submit
directory where condor job submission logs and other useful stuff can be stored. Also, please put a
README
in the main release directory giving some indication of what this release was created for.
Simulation and Digitization tags
Ideally, both simulation and digitization can be done with the same simulation tag (sXXXX). In case digitization is updated, a digi tag (dXXXX) can be created. It is possible to also do sim/digi steps with a reconstruction (rXXXX) tag.
Reco tags
Prompt reconstruction tags (pXXXX) use the current version of the conditions available on cvmfs. Reco tags (rXXXX) should use frozen versions of the conditions. If the conditions have changed, you will need to create a new point release on cvmfs, and also update the specific directory used in
dblookup.xml
. To avoid confusion in the master branch, I have created a
recotag
branch for this. So check out this branch, merge the current head, update
dblookup.xml
, push this branch, and make the reco tag from this branch instead of master. Note that the ACTS geometry file is also currently specified in the faser_reco.py script, so this must also be updated if that file has changed.
--
EricTorrence - 2022-12-08