Skip to main content

A python library for longitudinal particle beam tomography

Project description

https://gitlab.cern.ch/longitudinaltomography/tomographyv3/badges/master/pipeline.svg https://gitlab.cern.ch/longitudinaltomography/tomographyv3/badges/master/coverage.svg

Copyright 2020 CERN. This software is distributed under the terms of the GNU General Public Licence version 3 (GPL Version 3), copied verbatim in the file LICENCE.txt. In applying this licence, CERN does not waive the privileges and immunities granted to it by virtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction.

INSTALLATION

The computationally intensive or time-critical parts of the library is written in C++ and python bindings are provided using pybind11. The installation and usage of the library is the same for all operating systems, but different dependencies are needed for different operating systems.

Prerequisites

Linux

You need a C++ compiler like g++ installed. This is not required if installing a prebuilt package from acc-py or pypi.

Windows

On Windows computers MSVC >= 14.0 with the Windows 10 SDK is required.

In MinGW and WSL environments the standard g++ compiler works out of the box.

MacOS

No offical tests have been done on MacOS, but presumably g++, clang/llvm should work.

Install

The Longitudinal Tomography package is available in prebuilt wheels for Python 3.6-3.9 on CERN Acc-Py and pypy.org as longitudinal-tomography. The package can thus easily be installed on a Linux machine using

pip install longitudinal-tomography

The package can be installed on a MacOS or Windows machine in the same manner, but the C++ extension will be built on install.

Other ways to install

Clone the repository and run

pip install .

The C++ extension will be built on install.

For development environments where it’s preferable to compile the C++ extension inplace, it’s possible to run the command

pip install -e .

which will compile the C++ extension using the available compiler (decided by setuptools).

Documentation

This development is based on the well tested and widely used FORTRAN95 code, documented and available here: http://tomograp.web.cern.ch/tomograp/ Details on the algorithms in both codes, and the differences between them, can be found here: https://cdsweb.cern.ch/record/2750116?ln=ka

Parallelization using OpenMP

The C++ extension is accelerated by OpenMP parallel for loops. It is possible to limit the number of launched threads by setting it in the extension, by

from longitudinal_tomography.cpp_routines import libtomo
libtomo.set_num_threads([num_threads])

which will set the maximum number of used threads to [num_threads].

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

longitudinal_tomography-3.4.1.tar.gz (80.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

longitudinal_tomography-3.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (414.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

longitudinal_tomography-3.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (416.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

longitudinal_tomography-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (296.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

longitudinal_tomography-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (296.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

longitudinal_tomography-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (295.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

longitudinal_tomography-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (297.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

longitudinal_tomography-3.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (297.8 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

File details

Details for the file longitudinal_tomography-3.4.1.tar.gz.

File metadata

  • Download URL: longitudinal_tomography-3.4.1.tar.gz
  • Upload date:
  • Size: 80.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for longitudinal_tomography-3.4.1.tar.gz
Algorithm Hash digest
SHA256 2327c710a8bab130c169e40fcc69df2bb4f88590e6cff79c68577e0caad9aab2
MD5 0fe247a8c6fb2a4787895b3cd8688aec
BLAKE2b-256 7b7b32f0b7ef978957304ff1a57f30be39aea434a8ea75d5a96f44bd595a79f1

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99c6a32d47b1d5df025c51da1f8a5cd24650069a1e558d2de3596ecfc3fa8670
MD5 f0816abdcf49ba13aa84f939f7916647
BLAKE2b-256 513fd843973338faad897f6fe833b742ed4e030135a24a445df8da32873fabd2

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ef18042e79586b8ba9387d19a759b737890e9b2281f88da9332a9040b2d054c
MD5 c9b3af05c9c458ccb79f1ff6ced03a48
BLAKE2b-256 10f4252659056f8e2faae39c49ce825d057504ddc9713d0e0169b238b8d3e93d

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe1d7e8d15567ce0d510257bf14966e466beadc8863b934440d600f5edbb0b19
MD5 e5e5ff70e56424bb4f463490b98668e9
BLAKE2b-256 ffb4d5a9a6d6a819534e66904f4205e60e2ac89f6397f3a38423ecffe47b2598

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5876bca2494f64be1c5dc3d7c035e4b4428b0b1ae1728b430476cdfb4ebd1370
MD5 831130f8326afdc29f14861cd86a32eb
BLAKE2b-256 5f784c51d9b9d07464005db1e02676804d4629206c87effa4118abf8ead84e0f

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8e358f18a24a01af2e570643a72ebaaedc6d436f8e8b0f40aec3f2def0e28be
MD5 b8483e2984b799d4af3c10e881d2e566
BLAKE2b-256 6bac27554f1808d241ad995e1e719dd916f3d269edd16aa445145fecc2fd9229

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 473df6f6219d2d843c5bf8b1bffdfd7fe4b390089d252d58417a32aaeae47299
MD5 8febb0acb18357985866557a087d5e77
BLAKE2b-256 ea3b4ca98e47f4dfa9376101d73c919eded88815de96a3c16afc94fbde1b82f9

See more details on using hashes here.

File details

Details for the file longitudinal_tomography-3.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for longitudinal_tomography-3.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10b1465091d7f75eff341199ffac836968c74ee6483734ac72bda49dd9365319
MD5 094b3a59cb8f5fe74f2946b5736d8e6c
BLAKE2b-256 e01af3bffda263011d3f8ebe5e254781951b4af7fde20b85c7be1334ea8c92bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page