Skip to content

key4hep/k4Clue

Repository files navigation

linux

Logo

k4CLUE: The CLUE algorithm for future colliders (on CPU and GPU)

Table of contents

General info

The CLUEstering algorithm (here the gitLab repo) was adapted to run in the Gaudi software framework and to support EDM4hep data format for inputs and outputs.

CLUEstering uses the alpaka library to run both on CPUs and GPUs, currently NVIDIA and AMD GPUs are supported. The alpaka library is fetched directly by CLUEstering and downloaded if not available. It requires Boost >1.75 to work.

CLUEstering is able to perform the clustering in different number of dimensions, here it has been specialised for 2D and 3D clustering.

Setup the environment

The following setup is considering a machine with cvmfs and OS compatible with the Key4hep environment.

# source key4hep environment
source /cvmfs/sw.hsf.org/key4hep/setup.sh

# then setup this project
git clone https://github.com/key4hep/k4Clue.git
cd k4Clue
cmake -S . -B build
cmake --build build
# if installation is needed
mkdir install
cd build/ ; cmake .. -DCMAKE_INSTALL_PREFIX=../install; make install

Setup CLUE

Input parameters

CLUEstering needs four parameters as input:

  • dc is the critical distance used to compute the local density;
  • rhoc is the minimum local density for a point to be promoted as a seed;
  • dm is the maximum distance considered to search for followers.
  • (optional) seed_dc is the critical distance used to promote a high density point as a seed (if -1 is set equal to dc);

( In the original article and implementation, four parameters were needed (dc, rhoc, deltao and deltac):

  • deltao is the maximum distance for a point to be linked to a nearest higher point (now dm).
  • deltac is the minimum distance for a local high density point to be promoted as a Seed (now seed_dc). )

Detector layout

CLUEstering uses a spatial index to access and query spatial data points efficiently. Thus, a multi-layer tessellation is created which divides the space into fixed bins. The limits of the tessellated space are defined by the algorithm based on the points in input, while the size of the bins can be chosen by the user (as a fourth input parameter to the algorithm). This algorithm is detector agnostic, therefore it does not need any information on the detector geometry to run.

Examples of use

CLUE as Gaudi algorithm

If the projects compiles without errors, you can go run the CLUE algorithm by

cd build/
./run gaudirun.py ../gaudi_opts/clue_gaudi_wrapper.py

CLUE parameters and input/output file name are contained in gaudi_opts/clue_gaudi_wrapper.py. The input files are using the EDM4HEP data format and the ECALBarrel and ECALEndcap CalorimeterHit collections are required.

The output file output.root contains CLUEClusters (currently also transformed as CaloHits in CLUEClustersAsHits).

A simple recipe to run k4CLUE as part of the CLIC reconstruction chain can be found here.

Package maintainers

If you encounter any error when compiling or running this project, please contact:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9