PRIMASOFT Installation
Docker installation
The PRIMA software for analysis, simulation, etc. is inside a Docker container. In case you are not running primasoft in any of EMP's pc's, then first you will need to install Docker. Check how to do it here:
Git clone the image
Now you need to pull the Docker image from the EMP GitLab repository. Open a new terminal, and do:
git clone https://gitlab.rlp.net/emp/primasoft.git
Start the container
Before starting the proper docker container, you need to add your personal user into the docker group. For that, do:
usermod -a -G <user> docker
After that, you will need to 're-enter' into your user session to make sure your user is now inside the docker group. For doing this, you can always restart the computer, or type in a terminal
su <user_name>
and then write
groups
Once you type that, you should be able to see all groups your user is in, so the docker
name should appear there.
Starting the container and testing the simulation
Now you need to start the container so you can run the full primasoft. Write:
$ cd primasoft $ ./start_run.sh
A new container with the name primaSoft-dev should be created. After running ./start_run.sh The output should look like this:
./start_run.sh The default directory for G4WORKDIR is /home/foski/geant4_workdir. You can change it by adding -DG4WORKDIR=${Your_Host_Dir} to run this script. access control disabled, clients can connect from any host starting new container with name primaSoft-dev... Unable to find image 'registry.gitlab.rlp.net/emp/docker_image_test/prima_soft_nonsu:2501' locally 2501: Pulling from emp/docker_image_test/prima_soft_nonsu 54609b48ebc1: Pull complete 37577e941a51: Pull complete e8d35fa376e8: Pull complete 279d4a417a51: Pull complete ae2ad9eaf997: Pull complete acacd230c1e4: Pull complete 17d4bdcfb566: Pull complete 45ec860a2ac8: Pull complete 4f4fb700ef54: Pull complete Digest: sha256:e4ebe8a28daf2f3a94d323882e54773d6ee072a71ecd740e38d1065f285618ca Status: Downloaded newer image for registry.gitlab.rlp.net/emp/docker_image_test/prima_soft_nonsu:2501 ec6f1e35929d0f6f8720fc46ec303b2d4993dd43aa61526b0f61b523f6fcd35d new container started with id ec6f1e35929d G4VMCDIR set to /opt/g4vmc/6.6p1_install ubuntu@oskar:~/primasoft$
The last line means your are already inside the container under the ubuntu
username.
Set the environment
source ./setenv.sh cd utils/ make cd ~/primasoft/analysis mkdir lib make
Compile geant4 simulation
cd ~/primasoft/geant4 make
Execute geant4 simulation
geant4$ primag4sim primag4sim.conf
Rootmacros
In order to execute rootmacros, the include paths need to be set.
This can be done automatically with a rootlogon.C
file.
Create the rootlogon.C file:
$ cd ~/ $ mkdir .rootlogon $ geany .rootlogon/rootlogon.C
Enter the following lines to your rootlogon.C file:
// This is the file rootlogon.C { printf("\n Beginning new ROOT session\n"); gROOT->ProcessLine(".include your_path/primasoft/geant4"); gSystem->Load("<geant4_workdir>/tmp/Linux-g++/primag4sim/libprimadict.so"); }
Here, your_path
is the path to the primasoft git repository and the <geant4_workdir>
can be found out by $ echo $G4WORKDIR
.
Now root needs to know where to find the rootlogon.C file. Therefore in ''$FAIRSOFT_BUILD_DIR'/share/root/etc/system.rootrc' change the line:
Rint.Logon: rootlogon.C
to:
Rint.Logon: ~/.rootlogon/rootlogon.C
Now you can execute the rootmacro:
/geant4$ root -l rootmacros/test.C+