Currently, there are only two supported building and development environments:
FNAL machines are Almalinux9 and the supported package manager is Spack. Documentation can be found here.
To build and install sandreco
using spack, download the installation file and run it.
curl -O https://raw.githubusercontent.com/wiki/DUNE/sandreco/files/install-sandreco-with-spack.sh
source install-sandreco-with-spack.sh <spack installation folder>
When the script ends to run, you are ready to use sandreco
.
To develop sandreco
, first install edepsim
downloading the installation file and run it.
curl -O https://raw.githubusercontent.com/wiki/DUNE/sandreco/files/install-edepsim-with-spack.sh
source install-edepsim-with-spack.sh <spack installation folder>
Then, build sandreco
using the following commands:
mkdir <installation path>
cd <installation path>
git clone https://github.com/DUNE/sandreco.git
cd build & mkdir build
spack load [email protected]
spack load [email protected]
spack load [email protected]
cmake ../sandreco/ -DCMAKE_INSTALL_PREFIX=.. \
-DCMAKE_INSTALL_RPATH="$(spack find --paths [email protected] | grep "[email protected]" | awk -F' ' '{print $2}')/lib:$(spack find --paths [email protected] | grep "[email protected]" | awk -F' ' '{print $2}')/lib/root:${PWD}/../lib"
make -j8
make install
On the CNAF machine run, CMake is used to build sandreco
using the following commands:
mkdir <installation path>
cd <installation path>
git clone https://github.com/DUNE/sandreco.git
sed -i "s:set(CMAKE_CXX_STANDARD 17):set(CMAKE_CXX_STANDARD 14):g" sandreco/CMakeLists.txt
cd build & mkdir build
source /opt/exp_software/neutrino/env.sh
cmake ../sandreco/ -DCMAKE_INSTALL_PREFIX=..
make -j8
make install
source ../setup.sh
$ VERSION="v01_00_00"
$ QUAL="e20:prof"
$ source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
$ mrb newDev -v $VERSION -q $QUAL
$ source localProducts_larsoft_*/setup
$ mrb g sandreco
$ cd $MRB_BUILDDIR
$ mrbsetenv
$ mrb b -j8
$ mrb i
for a specific tag or branch do mrb g -t $TAG sandreco
or mrb g -b $BRANCH sandreco
The sandreco
project provides five executables:
- Digitize will perform digitization,
- Reconstruct will reconstruct tracks in STT and clusters in ECAL
- Analyze will identify particles and assign them a momentum
- FastCheck will produce a lot of plots to check everything is ok
- Display displays events
The executables exploit two libraries:
- libUtils.so for utilities
- libStruct.so for i/o
- Create digits of STT and cells of calorimeter
$ Digitize <MC file> <digit file>
- Track find and fit of STT track
- Clustering of calorimeter cells
$ Reconstruct <MC file> <digiti file> <reco file>
- reconstruct muon track fitting drift circles
- digitization included in the exhecutable
- reconstruct only muons in the fiducial volume
- reconstruct only tracks with at least 5+5 fired wires
$ ./build/bin/ReconstructNLLmethod -edep <EDEP file> -wireinfo tests/wireinfo.txt -o <reco file> --hit_time --signal_propagation
- Evaluate parameters of particles
- Evaluate neutrino energy
$ Analyze <MC file> <reco file>
- Produce several plots to check everything is ok
$ FastCheck <root file> <pdf file>
- Display an event
$ Display <event number> <MC file> <input file> [show trajectories] [show fits] [show digits]
The description of the data format can be found here
- The code format can be find here
- The developing scheme is described HowToDevelop.pdf
For any communication, please refer to [email protected]