/KFBase

Base classes for kinematic fit

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Documentation in progress...

Overview

Kinematic and vertex fitting is widely used data analysis technique in particle physics experiments. This technique can be used in order to separate events corresponding to different kinematic hypotheses and to restore interaction and decay vertices. In addition, the use of this technique often leads to significant improvements in resolution of some quantities, such as various invariant masses.

KFBase contains the implementation of base classes for kinematic and vertex fitting. This package was developed for the CMD-3 experiment. However, the KFBase package is not detector-dependent and can be used in another experiment. The detector-dependent part of the kinematic and vertex fitting software for the CMD-3 experiment is contained in package KFCmd: https://github.com/sergeigribanov/KFCmd.

Dependencies

  1. Eigen 3 template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms: https://eigen.tuxfamily.org/index.php?title=Main_Page (successfully tested with version 3.4).
  2. ROOT data analysis framework used by high energy physics and others: https://root.cern (successfully tested with version 6.26).

Installation

  1. Get the source code:
git clone https://github.com/sergeigribanov/KFBase
  1. Setup ROOT environment:
source <path to ROOT installation>/bin/thisroot.sh
  1. Create a build directory:
mkdir <path to a build directory>
cd <path to a build directory>
  1. Run CMake:
cmake -DCMAKE_INSTALL_PREFIX=<installation prefix> <path to the source code directory>

To set C++ standard, -DCMAKE_CXX_STANDARD option can be used:

cmake -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=<installation prefix> <path to the source code directory>

The KFBase package has been successfully tested with both C++11 and C++17 standards. The same standard should be used that was used to build the ROOT framework.

In some cases, the option -DEigen3_DIR may be required in order to find Eigen 3 installation. See page https://eigen.tuxfamily.org/dox/TopicCMakeGuide.html for more details.

  1. Build the package:
make
  1. Install the package:
make install