Documentation of SBS-offline » History » Version 19

Eric Fuchey, 03/22/2021 08:31 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 19 Eric Fuchey
The directory in which the replay is run should include the file rootlogon.C attached at the end of this page.
66 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):
67 15 Eric Fuchey
 * replay/setup_db.csh
68 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.
69 15 Eric Fuchey
70 15 Eric Fuchey
The script (and any other script using the SBS-offline library) uses the Hall A analyzer (Podd).
71 15 Eric Fuchey
To execute this script:
72 15 Eric Fuchey
73 16 Eric Fuchey
bq. > analyzer
74 15 Eric Fuchey
analyzer [0] .L replay_gmn.C+
75 15 Eric Fuchey
analyzer [1] replay_gmn_test("your_input_file_base", -1)
76 15 Eric Fuchey
77 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"). 
78 15 Eric Fuchey
The second argument is the number of arguments to process (-1 for all).
79 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.