Skip to main content

Library for Silicon Photomultipliers simulation.

Project description

SimSiPM

GitHub release

GCC AppleClang

GitHub issues GitHub last commit GitHub license

Downloads Downloads

Authors

SimSiPM has been developed by Edoardo Proserpio under the supervision of professor Romualdo Santoro at University of Insubria Como - Italy.
SimSiPM is distrubuted as an Open Source project and if you plan to use it please acknowledge us as authors or cite us in your paper.

Table of contents

  1. Introduction
  2. Features
  3. Installation
  1. C++ Basic use
  2. Python Basic use
  3. Advanced use
  1. Contributing

Introduction

SimSiPM is a simple and easy to use C++ library providing a set of object-oriented tools with all the functionality needed to describe and simulate Silicon PhotonMultipliers (SiPM) sensors. The main goal of SimSiPM is to include the response of SiPM sensors, along with noise and saturation effects, in the description of a generic detector in order to have a more detailed simulation. It can also be used to perform optimization studies considering different SiPMs models allowing to choose the most suitable product available on the market.

SimSiPM code follows FCCSW rules and guidelines concerning C++. SimSiPM has been developed especially for high-energy physics and particle physics experiments, however its flexibility allows to simulate any kind of experiments involving SiPM devices.

SimSiPM does not have any major external dependency making it the perfect candidate to be used in an already existing environment (Geant4 or DD4HEP) or as "stand-alone".

Features

  • Easy to use:
    • Straight forward installation without external dependencies
    • Easy to use Object Oriented paradigm
    • Python implementation via Pybind11
  • Description of SiPM sensors:
    • Driven by parameters that can be obtained from the datasheet or laboratory measurements
    • High level of customization allowing to describe a wide range of use cases
    • Does not include tedious electronic circuit simulations
  • High performance:
    • Very fast signal generation
    • Reliable description of SiPM signals and related quantities over all the dynamic range
    • Low memory footprint (if you do not intend to save all waveforms!)

Installation

SimSiPM is fully functional without any external dependencies other than CMake.

Optional dependencies:

  • Pybind11: to generate python bindings
  • Doxygen: to generate documentation
  • GTest/Pytest: for advanced testing

C++

SimSiPM can be installed using the standard CMake workflow:

# In SimSiPM directory
cmake -B build -S .
make -C build
make -C build install

It is advisable to enable compiler optimizations like -O3 and -mfma -mavx2 since some parts of code are specifically written using intrinsic functions for vectorization.

Installation directory can be specified with -DCMAKE_INSTALL_PREFIX variable.

Python bindings can be compiled and installed by adding the variable -DCOMPILE_PYTHON_BINDINGS=ON but this requires Pybind11. The corresponding python module is called SiPM and each class can be accessed as a sub-module.

import SiPM
from SiPM import SiPMSensor

print(SiPM.__version__)

Python

It is also possible to use pip to install only the Python version using a precompiled binary wheel. This installation method is easyer but performance may be impaired with respect to the C++/Pybind11 installation.

pip install SiPM

C++ basic use

SimSiPM focuses on simplicity! It does not make use of pointers, or custom classes as parameters of the simulation or input. In most cases a std::vector is all that you need in order to get started.

SiPMProperties

SiPMProperties class stores all SiPM and simulation parameters. It can be used to define the SiPM detector model in use and it can be shared among different SiPMs in case many identical sensors are needed.

#include "SiPMProperties.h"
using namespace sipm;

// Create a SiPMProperties object
SiPMProperties myProperties;

// Edit some parameters
myProperties.setDcr(250e3);           // Using proper setter
myProperties.setPropery("Xt",0.03);   // Using parameter name

SiPMSensor

SiPMSensor class is the core of the simulation and is created from a SiPMProperties class. It stores input photoelectrons, it runs the event simulation and gives a signal as output.

#include "SiPMProperties.h"
using namespace sipm;

// Create a SiPMSensor object
SiPMSensor mySensor(myProperties);

// Change parameters
mySensor.properties().setAp(0.01);    // Using proper getter/setter
mySensor.setProperty("Pitch", 25);    // Using parameter name

SiPMAnalogSignal

SiPMAnalogSignal class is a wrapper around std::vector that expands its features. It contains the samples of the SiPM waveform along with some properties and methods used to extract features from the signal.

SiPMAnalogSignal signal = mySensor.signal();
double sampling = signal.sampling();
double sample = signal[10];

Input and simulation

The only input needed for the simulation of a SiPM event is the arriving time of each photon to the sensitive surface of the SiPM detector. In order to have a detailed description of the dependency of the PDE with respect to the photon wavelength it is possible to add the wavelength information togheter with the time information.

It is possible to add individual photons in a loop

mySensor.resetState();
for(...){
  // Generate times for photons
  mySensor.addPhoton(time);   // Appends a single photon (time is in ns)
}
mySensor.runEvent();          // Runs the simulation

It is also possible to add all photons at once

std::vector<double> times = {13.12, 25.45, 33.68};
mySensor.resetState();
mySensor.addPhotons(times);    // Sets photon times (times are in ns) (not appending)
mySensor.runEvent();           // Runs the simulation

Signal output and signal features

The simulation can output the signal waveform and can also perform some simple features extraction.

SiPMAnalogSignal mySignal = mySensor.signal();

double integral = signal.integral(5,250,0.5);   // (intStart, intGate, threshold)
double peak = signal.peak(5,250,0.5);   // (intStart, intGate, threshold)
double toa = signal.toa(5,250,0.5);   // (intStart, intGate, threshold)
double tot = signal.tot(5,250,0.5);   // (intStart, intGate, threshold)

// It is possible to iterate throw an analog signal
for(int i=0;i<mySignal.size();++i){
  double sample = mySignal[i]
  // Do something with sample
}

// It is possible to convert an analog signal to a simple vector
std::vector<double> waveform = mySignal.waveform();

Complete event loop

This is an example of "stand-alone" usage of SimSiPM. In case SimSiPM is used in Geant4 or other framework, then the generation of photon times has to be caryed by the user (usually in G4UserSteppingAction) and the event has to be simulated after all photons have been added (usually in G4UserEventAction).

// Create sensor and set parameters
SiPMProperties myProperties;
SiPMSensor mySensor(myProperties);
// ...

// Store results in here
std::vector<double> integral(NEVENTS);
// peak
// ...

for(int i=0;i<NEVENTS;++i){
  // Generate photons times accordingly
  // to your experimental setup
  mySensor.resetState();
  mySensor.addPhotons(times);
  mySensor.runEvent();

  SiPMAnalogSignal mySignal = mySensor.signal();

  integral[i] = signal.integral(10,250,0.5);
  // peak
  // ...
}

Python basic use

Python bindings are generated for all the classes using Pybind11. This allows for an almost 1:1 mapping of the C++ functionalities in Python.

from SiPM import SiPMSensor, SiPMProperties

myProperties = SiPMProperties()
myProperties.setDcr(250e3)
myProperties.setProperty("Xt",0.03)

mySensor = SiPMSensor(myProperties)

mySensor.resetState()
mySensor.addPhotons([13.12, 25.45, 33.68])
mySensor.runEvent()

mySignal = mySensor.signal()
integral = mySignal.integral(10,250,0.5)

Advanced use

PDE

No Pde

Tracking a large number of photons throwgh a scintillator crystal or optical fiber is a very CPU-intensive task. Since most of photons will not be detected due to photon detection efficiency (PDE) it is a waste of time to track all of them.

By default SiPM sensors have PDE set to 100% meaning that every photon given as input is converted to a photoelectron, detected and generates a signal. This allows to generate and track only the photons that will be detected by the sensor. For example the geometry of IDEA dual-readout calorimeter requires the simulation of 130 millions of optical fibers and in each one of those photons are tracked by Geant4 requiring a lot of CPU time. It would be meaningless to track photons along the fibers if they are not detected, so PDE is evaluated before the tracking of photons.

Simple PDE

It is possible to account for PDE in the simulation using a fixed value of PDE for all photons. In this case the probability to detect a photon is proportional to PDE. This option can be used if the spectrum of emitted photons is very narrow or if the SiPM has a wide and flat spectral response.

// Set in SiPMProperties
myProperties.setPdeType(sipm::SiPMProperties::PdeType::kSimplePde);
myProperties.setPde(0.27);

// Change setting of a sensor
mySensor.properties().setPdeType(sipm::SiPMProperties::PdeType::kSimplePde);
mySensor.setProperty("Pde",0.27); // or mySensor.properties().setPde(0.27);

To revert back at default setting of 100% PDE use setPdeType(sipm::SiPMProperties::PdeType::kSimplePde)

Spectral PDE

In SiPM sensors PDE strongly depends on photon wavelength. In some cases it might be necessary to consider the spectral response of the SiPM for a more accurate simulation. This can be done by feeding the SiPM settings with two arrays containing wavelengths and corresponding PDEs.

In this case it is also necessary to input photon wavelength along with its time.

std::vector<double> wlen = {800, 750, 700, 650, 600, 550, 500, 450, 400, 350, 300};
std::vector<double> pde = {0.22, 0.30, 0.40, 0.45, 0.50, 0.50, 0.45, 0.35, 0.25, 0.15, 0.0};

myProperties.setPdeType(sipm::SiPMProperties::PdeType::kSpectrumPde);
myProperties.setPdeSpectrum(wlen,pde);

// or using a std::map
// std::map<double,double> wlen_pde = {{300, 0.01}, {400, 0.20}, {500, 0.33}, ...};
// myProperties.setPdeSpectrum(wlen_pde);

// Adding photons to the sensor
mySensor.addPhoton(photonTime, photonWlen);
// or mySensor.addPhotons(photonTimes, photonWlens);

The input values for PDE given by the user are interpolated using the formula below to obtain additional 25 values over the given range. Then, during the simulation, values are linearly interpolated between the points of the newly obtained curve.

Hit distribution

By default photoelectrons hits are considered to be uniformly distributed on the surface of the SiPM. In most cases this assumption resembles what happens in a typical setup but sometimes the geometry of the sensor or the optical characteristics of the setup lead to an inhomogeneous distribution of the light on the sensor's surface.

Uniform hit distribution

This is the default setting: each SiPM cell has the same probability to be hitted. This setting should work in most of scenarios.

myPropertie.setHitDistribution(sipm::SiPMProperties::HitDistribution::kUniform);

Circular hit distribution

In this case 90% of photons are placed in a circle centered in the sensor and with a diameter that is the same as the sensor's side lenght. The remaining 10% is distributed outside this circle. This setting resembles those cases where light is focused in the central region.

myPropertie.setHitDistribution(sipm::SiPMProperties::HitDistribution::kCircle);

Gaussian hit distribution

In this case 95% of the photons are distributed following a gaussian distribution centered in the sensor. The remaining 5% is distributed uniformly on the sensor.

myPropertie.setHitDistribution(sipm::SiPMProperties::HitDistribution::kGaussian);

Contributing

SimSiPM is being developed in the contest of FCCSW and IDEA Dual-Readout Calorimeter Software. I am the main responsible for development and maintainment of this project. Feel free to contact me if you have any problem while including SimSiPM in your project, if you find a bug or have any suggestion or improvement. I would be pleased to discuss it with you.

Cite

Even thou SimSiPM has been used in simulations related to published articles, there is not yet an article about SimSiPM itself. So if you need to cite SimSiPM please use:

@manual{,
title = {{SimSiPM: a library for SiPM simulation}},
author = {Edoardo, Proserpio and Romualdo, Santoro},
address = {Como, Italy},
year = 2021,
url = {https://github.com/EdoPro98/SimSiPM}
}

Contacts

Author: Edoardo Proserpio
Email: edoardo.proserpio@gmail.com (private)
Email: eproserpio@studenti.uninsubria.it (instiutional)

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

SiPM-2.0.1b0.tar.gz (31.4 kB view details)

Uploaded Source

Built Distributions

SiPM-2.0.1b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl (241.5 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (168.7 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

SiPM-2.0.1b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl (242.1 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl (168.8 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

SiPM-2.0.1b0-cp39-cp39-manylinux2010_x86_64.whl (241.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-cp39-cp39-macosx_11_0_arm64.whl (161.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

SiPM-2.0.1b0-cp39-cp39-macosx_10_9_x86_64.whl (169.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

SiPM-2.0.1b0-cp39-cp39-macosx_10_9_universal2.whl (323.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

SiPM-2.0.1b0-cp38-cp38-manylinux2010_x86_64.whl (241.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-cp38-cp38-macosx_10_9_x86_64.whl (169.5 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

SiPM-2.0.1b0-cp37-cp37m-manylinux2010_x86_64.whl (244.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-cp37-cp37m-macosx_10_9_x86_64.whl (164.2 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

SiPM-2.0.1b0-cp36-cp36m-manylinux2010_x86_64.whl (244.1 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-cp36-cp36m-macosx_10_9_x86_64.whl (164.1 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

SiPM-2.0.1b0-cp35-cp35m-manylinux2010_x86_64.whl (244.1 kB view details)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

SiPM-2.0.1b0-cp35-cp35m-macosx_10_9_x86_64.whl (163.3 kB view details)

Uploaded CPython 3.5m macOS 10.9+ x86-64

File details

Details for the file SiPM-2.0.1b0.tar.gz.

File metadata

  • Download URL: SiPM-2.0.1b0.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0.tar.gz
Algorithm Hash digest
SHA256 d0300fb5557f17e61710f243263552576984f011d4f140caf1c77e5495eac8fb
MD5 c1558778b657d014e76a0596cee60104
BLAKE2b-256 f6a8ff8751e3c40ea6fbfa057bf56ac06b5ef1220b3e7cc94053f04e658a9b72

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 241.5 kB
  • Tags: PyPy, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 171b7671c1e8316bf8a946f486eca9975a7781c84486d9bee71dbc86b374e23b
MD5 8a88f3b8b9323671308c100ed5c40313
BLAKE2b-256 735b928789bd626fe733c79c63c36fd136e8e6b23533b7938bc216a80684a5ed

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 168.7 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 41bf9ff6b40b521c26e718dc27698433753f67c593d696e8c9e441c768c0b8c4
MD5 86bb71d3f451cddf645d4aac576d5ea1
BLAKE2b-256 65ddb1681da84de9c2bb3be474a5916f9a2d368ae3e24d7e6ac216727b55d46d

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 242.1 kB
  • Tags: PyPy, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ab3d197a388b1e5fa174602a9c9b4a1e62261a974a4a1e63689960d102066b79
MD5 27ae26444f28430e683d03cb122d9894
BLAKE2b-256 70439f37464b9122ff28a6fa4edaa250ec2bc4ecf96e271b6c12dd999ea5fad0

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 168.8 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 805b077a2c1a0436365e0e4d6ffc6688b5c0f1beff5bd12ce057e24e20953985
MD5 3ecd1550ee244211355d7be0e015a815
BLAKE2b-256 4418b4ae3b62d828dec7773aa2fd04dac9703c21b5cab2343d36f715b5223b70

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 241.2 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c93c618ce97ba32a7faa641b1377d7a79b61d89df98d9428d32c5ce85ebcbd41
MD5 dc198a848f16b16999ec6be3e4a0be50
BLAKE2b-256 65cd7e7086d5bda0f385ca70a44ceb7d3910d1c0cf3962eae5447b04fd5eff77

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 161.5 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e64e2fb2956f9947ec2bb333d976cc6514bc370e447d83a0ca8cd5afeb8b65bc
MD5 4850475bd4cba50aec5391aac577700d
BLAKE2b-256 46b369541b3956f31e2f8ce89eef4bec90d3a93b866f5505b4b5c672d994d16e

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 169.8 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c8a91ca653c95846715ee12ff3d54b9c522785b66865ae0c442d0eef68dda89
MD5 b2f01919660ddef27476178064a4c45c
BLAKE2b-256 941c9a67cae043e1a982db64255f68ae766fd10b817d6e03587b9ef9d9e90372

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 323.9 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3e09ba953f86e84eb3836fa082a119868728e623b305d2f4934dddb15364bb34
MD5 6e6e25f8347f60ca412c2af3f923186d
BLAKE2b-256 56220112d384d16093466f6c307b8d3bc490ea7b29a54408e0c53e36c64eb281

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 241.0 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c073ae584d39f9c1f5f1c66d429fa4fa956311a25519b939332eabefa4693645
MD5 6da461f012e192e0795e6cf88a6f13c7
BLAKE2b-256 633e581ea785483fd16b65bc47378f7a70a80a29fbdb6f2d815dc1b977a8ba5a

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 169.5 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7578371833cb461a70e962e08328279befed57ff7bb848b3cf889462e00d49c7
MD5 55a1fdaeb848c67325119a4b0ea2cb1b
BLAKE2b-256 071d6a88b39f2dd7443dcfae81a61ba2d9202da9b01fec884570a05390ed023d

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 244.8 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 107dcf771e8dc847be3ffb736a061c9773b1e280e5a6d8005a924d1d97e09bd4
MD5 4652d566901e4f9bbcd4880a88552c24
BLAKE2b-256 c1fd7d583275a49592da5b00acc5775826036f86035666b0409ac93891152673

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 164.2 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c754f3a2fd21475fac7563eb233d1c482a6cd4a7fe229257e135b115a7966a5d
MD5 6923079e25711e92a4b563ac64dbc3a5
BLAKE2b-256 eef9dfc501e4c6f24ab10748b97edff9c4ebfd95b08b0247bd096ac3287ca19c

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 244.1 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1f6d8ff5b5bcd6a860d55bfd3c98bbd03d36995ba9d6ebf176537d349da2b426
MD5 999e1b09bbb2e23026839613ee3fbeca
BLAKE2b-256 9f1cb93bf87adbe648873facbb556c6817da4b92e33794c11d7db39d62823d35

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 164.1 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0fbd84e04bcd0d4242f208eb6ef1c591651f024162c5f91887e47f2be744f1f6
MD5 e466381d734b1e6d6ee3c0c65a84916a
BLAKE2b-256 35ac8c0dab68035f317a9346e234cb78650e95bb533bc7e12cbb78978768ebca

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 244.1 kB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3c7f90e93685e05fad9b49bc6bc45d26471267d876c1b4ae543aa5dbdba8d1e3
MD5 638ce06683fc0bfb4ffe8560f58f8a87
BLAKE2b-256 00a5f421f2e9510b06fac6743caf2584bda8c1fb8499eb5584f5b994dda3352d

See more details on using hashes here.

File details

Details for the file SiPM-2.0.1b0-cp35-cp35m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: SiPM-2.0.1b0-cp35-cp35m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 163.3 kB
  • Tags: CPython 3.5m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for SiPM-2.0.1b0-cp35-cp35m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8f48409ae8c97d8e92e9352ab8f328f6765595b74a452bbf7f194503dc32db3a
MD5 b232f441d3bb77182d6e25b111c2fb7a
BLAKE2b-256 d110a2422c678bd2e46cac2d702e37ae5dde77bc98fd4710b8b26418ba790444

See more details on using hashes here.

Supported by

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