SOLARIS_Analysis/README.md

82 lines
2.9 KiB
Markdown

# Introduction
This is the analysis package for the SOLARIS DAQ. It is supposed to be the analysis path for the SOLARIS DAQ.
The folder struture is
Analysis
├── README.md
├── SetupNewExp // bash script to create new branch and raw data folder
├── SOLARIS.sh // bash script to define some env variable and functions
├── Armory // analysis codes, independent from experiment.
├── Cleopatra // Swaper for DWBA code Ptolomey and simulation
├── data_raw // should be the symbolic link to the raw data, created by SetUpNewExp
├── root_data // symbolic link to converted root file, created by SetUpNewExp
└── working // working directory, depends on experiment.
# SOLARIS.sh
this batch shell script adds few enviroment variables and functions. Add the Armory and Cleopatra into the system PATH.
```sh
>source SOLARIS.sh
```
# Event Builder
Please download the SOLARIS_DAQ, under the Aux directory, make, and link the EventBuilder to Armory.
The reason for having EventBuilder in the DAQ code is the Hit.h is original from the DAQ code.
# ROOT issue
We are still using TProof for parallel calculation. TProof is not pre-compiled since 6.32+. And 6.30 only precompiled for Ubuntu 22.04. So, for system using Ubuntu 24.04, user must precompiled to root in order to work.
## Compilation
We can manual download the git repository of the root following the instruction. in the cmake
```sh
root_install="/opt/root_v6.32.00_compiled"
root_src="root_src"
root_build="root_build"
cmake -DCMAKE_INSTALL_PREFIX=$root_install $root_src -Dproof=ON -Dmathmore=ON
sudo cmake --build . --target install -j <number_of_threads>
```
# Analysis & Simulation
The Armory/AnalysisLib.h constains many small but handy functions.
All class headers are started with Class*.h
The classes **DetGeo**** and **ReactionConfig** are fundamental for loading the detectorGeo.txt and reactionConfig.txt.
Both txt file support empty lines, can have multiple settings. The reason for that is for many-array configuration.
The **TransferReaction** class is only use one of the reaction from the reactionConfig.txt. This class generates the TLorentzVector for ligh and heavy recoils.
```C++
TransferReaction::SetReactionFromFile("reactionConfig.txt", ID); // ID = 0 or 1
```
Same for the **Helios** class, **Helios** class use the detectorGeo.txt. It takes TLorentzVector and calculate does it be detected by the array or recoil detector.
```C++
HELIOS::SetDetectorGeometry("detectorGeo.txt", ID); // ID = 0 or 1
```
## Simulation
Simply run
```sh
>SimTransfer
```
it will digest the detectorGeo.txt, reactionConfig.txt, if DWBA.root exist, find the reactions.
* it does not have TargetScattering (yet)
* for multiple reactions, it will randomly use any and disregard the total Xsec of different reactions. The Xsec only takes effect within same reaction.
* the decay of heavy recoil only have isotropic decay.