Setup Guide#
This page explains how to set up this repository, for the first time as well as for every new session.
For the First Time#
To clone the repository for the first time, use either
sshorhttpsUsing
sshgit clone ssh://git@gitlab.cern.ch:7999/gdl4hep/xdigi2csv.git
Using
httpsgit clone https://gitlab.cern.ch/gdl4hep/xdigi2csv.git
If you are on an LXPLUS machine, the LHCb environment is already sourced. If not, you need to source the LHCb environment by running the following command:
source /cvmfs/lhcb.cern.ch/lib/LbEnv
If you do not have a mounted CVMFS, please refer to this section for instructions on how to mount CVMFS on an Ubuntu machine.
Install the
xdigi2csv_envpython environment withpyarrow, which is required to compress or convert the CSV files obtained by the XDIGI2CSV algorithm. To do so, run:./setup/install.sh
This command will install the environment in
setup/xdigi2csv_envaccording to the requirements specified insetup/requirements.txt.If you wish to use the XDIGI2CSV program, you need to setup the LHCb stack where the repositories are set to the
anthonyc-persistence_csvbranches. If you are on an LXPLUS machine, the necessary stack can be found at/afs/cern.ch/work/a/anthonyc/public/tracking/stack. The path to Moore within this directory is already set up by default, so no additional steps are required. If you are not on an LXPLUS machine, please refer to the second to last section for instructions on how to set up the LHCb stack.To find LFNs from a bookkeeping path, PFNs from LFNs, and download LFNs on a grid node outside of CERN using HTCondor, you must explicitly set the location where the Dirac proxy is written when
lhcb-proxy-initis invoked. You can do this by setting theX509_USER_PROXYenvironment variable in your.bashrcfile (or by editing thesetup/setup.shfile) to your desired location, for example:export X509_USER_PROXY=$HOME/.grid.proxy
When a job submitted, the environment variable
X509_USER_PROXYis explicitely passed to the HTCondor instance so it can access the LHCb proxy.If you plan to use the the MDF2CSV program in Allen, you need to build the
Allenrepository in theanthonyc-persistence_csv_mdfbranch. If you are not on an LXPLUS machine, the simplest way to do this is to set up Allen standalone, following the instructions in the last section.
Every Time#
lhcb-proxy-init#
If you need to access Dirac-related resources, you should initialize your proxy by executing the command:
lhcb-proxy-init
You do not need to run this command locally, as ganga will automatically run it for you if needed. However, you must run it if you want to run a job on HTCondor that requires the proxy.
source setup/setup.sh#
Do not forget to source setup/setup.sh to set up the environment variables appropriately, using the command:
source setup/setup.sh
This will:
Create the
XDIGI2CSV_REPOenvironment variable, which is the path to the root of the repositorySource the
xdigi2csv_envpython environment if it was installedSet up
gangaso that it works with Dirac. This also requires CVMFS.
If you also need to source the LHCb environment on CVMFS, you can run the following command instead:
source setup/setup_remote.sh
Setting Up the LHCb Stack Outside of LXPLUS#
In order to set up the LHCb stack in the anthonyc-persistence_csv branches
in your own space or machine, you can follow a modified
version of the official documentation.
Install the configuration files of the LHCb stack by executing the following command:
curl https://gitlab.cern.ch/rmatev/lb-stack-setup | python3 - stack
This will create a folder named “stack” that contains the LHCb stack.
Add the following lines to the
stack/utils/config.jsonconfiguration file:"binaryTag": "x86_64_v2-centos7-gcc12+detdesc-opt", "gitBranch": { "Moore": "anthonyc-persistence_csv", "Allen": "anthonyc-persistence_csv" }
This will set
anthonyc-persistence_csvas the default branch in Allen and Moore.Compile Moore and its dependencies within the stack by executing the following command:
cd stack make Moore
Note
When building on your local machine, you can use the
make Moore BUILDFLAGS='-j 15'command to limit the number of cores to 15, for example. By default, 75 cores are used if no limit is specified.To enable the XDIGI2CSV repository to locate your stack, you need to specify the path to the build directory of Moore. To do this, create or modify
setup/config.yamlwith the following content:build: # path to the build directories of Moore and Allen standalone moore: /path/to/stack/Moore/build.x86_64_v2-centos7-gcc11-opt
For example, if the repository and stack directories are at the same level, the content of
config.yamlshould be:build: # path to the build directories of Moore and Allen standalone moore: ../../stack/Moore/build.x86_64_v2-centos7-gcc11-opt
where the path is relative to the
config.yamlfile.
Setting Up Allen Standalone Outside of LXPLUS#
To set up Allen standalone outside of LXPLUS, follow these steps:
Clone the Allen repository
# SSH git clone ssh://git@gitlab.cern.ch:7999/lhcb/Allen.git # HTTPS git clone https://gitlab.cern.ch/lhcb/Allen.git
Check out the appropriate branch
anthonyc-persistence_csv_mdfgit checkout anthonyc-persistence_csv_mdf
Refer to the Allen Documentation](https://allen-doc.docs.cern.ch), specifically the section “BuildAllen” to build Allen.
In order for the XDIGI2CSV repository to use your local Allen standalone installation, you need to provide the path to the build directory of Allen. To do this, create or modify
setup/config.yamlwith the following contentbuild: allen_standalone: "/path/to/Allen/build"
Replace
/path/to/Allen/buildwith the actual path to the build directory of Allen.