Documentation of SBS-offline » History » Version 18

Eric Fuchey, 01/27/2021 11:10 AM

1 1 Eric Fuchey
h1. Documentation of SBS-offline
2 10 Eric Fuchey
3 9 Eric Fuchey
{{toc}}
4 2 Eric Fuchey
5 2 Eric Fuchey
h2. Overview
6 2 Eric Fuchey
7 2 Eric Fuchey
This page is maintained by the UConn group (Eric Fuchey + Andrew Puckett) and as of February 14, 2020 is specific to the '''''master''''' branch of SBS-offline on github.
8 2 Eric Fuchey
9 2 Eric Fuchey
h2. Purpose
10 2 Eric Fuchey
11 2 Eric Fuchey
This page documents the SBS-offline program code, which purpose is to perform the data analysis for the upcoming SBS experiments.
12 2 Eric Fuchey
13 2 Eric Fuchey
h2. Getting the code and building the program
14 2 Eric Fuchey
15 2 Eric Fuchey
h3. Prerequisites
16 2 Eric Fuchey
17 4 Eric Fuchey
*Working [https://root.cern.ch/drupal/ ROOT] installation. '''libsbsdig is compatible with ROOT version 5 and ROOT version 6'''. '''''ROOT 6 is strongly recommended'''
18 2 Eric Fuchey
*Working installation of cmake '''version 3.9 minimum'''
19 2 Eric Fuchey
*Working analyzer '''built with cmake'''. for that purpose, refer to the instruction below.
20 2 Eric Fuchey
21 2 Eric Fuchey
h3. Instructions for analyzer cmake installation compatible
22 3 Eric Fuchey
23 2 Eric Fuchey
clone the analyzer repository from:
24 2 Eric Fuchey
 * git clone git@github.com:JeffersonLab/analyzer.git
25 2 Eric Fuchey
build it with cmake following the instructions at:
26 2 Eric Fuchey
 * https://github.com/JeffersonLab/analyzer#compiling-with-cmake
27 11 Eric Fuchey
_2 precisions:_ 
28 2 Eric Fuchey
*it seems that in these instructions the "build" directory ''has to be'' in the analyzer directory.
29 2 Eric Fuchey
*for your environment settings, in addition to the two lines mentionned in the instructions, you still want to define ANALYZER as the path to your install directory e.g.
30 2 Eric Fuchey
 * setenv ANALYZER $HOME/local/analyzer
31 2 Eric Fuchey
32 2 Eric Fuchey
h3. Downloading the repository
33 2 Eric Fuchey
34 2 Eric Fuchey
The code is hosted on a github repository owned by JLab. To clone via ssh (preferred method on JLab batch farm), do: 
35 1 Eric Fuchey
36 9 Eric Fuchey
bq. git clone git@github.com:JeffersonLab/SBS-offline.git
37 2 Eric Fuchey
38 2 Eric Fuchey
For this method to work, the ssh public key on the machine where you want to get the code must be added to your github account (see [https://help.github.com/articles/generating-ssh-keys/ Guide] to generating ssh keys and adding to your github.com account.)
39 2 Eric Fuchey
40 2 Eric Fuchey
Cloning the repository defaults to the "master" branch.
41 2 Eric Fuchey
42 2 Eric Fuchey
h3. Building and installing the library
43 2 Eric Fuchey
44 2 Eric Fuchey
Create a "build" directory that is parallel to the "SBS-offline" source directory (this is not strictly required, but the build directory must be separate from the "SBS-offline" directory in any case). 
45 1 Eric Fuchey
You also need to have setup an installation path e.g. /path/to/sbs-offline-install
46 10 Eric Fuchey
*NB*: similarly to the build directory, the /path/to/gsbs-offline-install directory shall '''not''' be the same as the source directory!
47 12 Eric Fuchey
_The following instructions assume that "build" is parallel to "SBS-offline":_
48 2 Eric Fuchey
If successful, the libsbs library and several other files and folders will be created in the "build" and the "install" directory.
49 2 Eric Fuchey
50 2 Eric Fuchey
To build and install, the procedure needs to be completed. From scratch:
51 9 Eric Fuchey
52 9 Eric Fuchey
bq. mkdir build
53 9 Eric Fuchey
cd build
54 9 Eric Fuchey
cmake -DCMAKE_INSTALL_PREFIX=/path/to/sbs-offline-install ../SBS-offline
55 9 Eric Fuchey
make install
56 2 Eric Fuchey
57 2 Eric Fuchey
58 2 Eric Fuchey
Then, the following line should be added in the OS login configuration file to take advantage of this functionality:
59 13 Eric Fuchey
* source /path/to/sbs-offline-install/bin/sbsenv.sh (or source /path/to/g4sbs_install/bin/sbsenv.csh on the batch farm)
60 14 Eric Fuchey
61 14 Eric Fuchey
h2. How to use SBS-offline
62 14 Eric Fuchey
63 15 Eric Fuchey
A working example script using the SBS-offline library is available in the SBS-offline repository at the following path:
64 15 Eric Fuchey
 * replay/replay_gmn.C
65 15 Eric Fuchey
It is recommended prior to use it to source a short environment file to setup the database path correctly (and optionally the directory where to retrieve the data):
66 15 Eric Fuchey
 * replay/setup_db.csh
67 18 Eric Fuchey
It is preferable to not use them in this directory but copy them in another directory outside of your copy of the SBS-offline repository.
68 15 Eric Fuchey
69 15 Eric Fuchey
The script (and any other script using the SBS-offline library) uses the Hall A analyzer (Podd).
70 15 Eric Fuchey
To execute this script:
71 15 Eric Fuchey
72 16 Eric Fuchey
bq. > analyzer
73 15 Eric Fuchey
analyzer [0] .L replay_gmn.C+
74 15 Eric Fuchey
analyzer [1] replay_gmn_test("your_input_file_base", -1)
75 15 Eric Fuchey
76 17 Eric Fuchey
The first argument "your_input_file_base" is the base name of the input file minus the ".root" file suffix (i.e. the full file name would be "your_input_file_base.root"). 
77 15 Eric Fuchey
The second argument is the number of arguments to process (-1 for all).
78 15 Eric Fuchey
This will produce a file called "replayed_your_input_file_base.root" containing the information extracted from the analysis of the input file.