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.0b0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distributions

SiPM-2.0.0b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl (241.6 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

SiPM-2.0.0b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (168.9 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

SiPM-2.0.0b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl (242.3 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

SiPM-2.0.0b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl (169.0 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

SiPM-2.0.0b0-cp39-cp39-manylinux2010_x86_64.whl (241.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

SiPM-2.0.0b0-cp39-cp39-macosx_11_0_arm64.whl (161.6 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

SiPM-2.0.0b0-cp39-cp39-macosx_10_9_x86_64.whl (170.0 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

SiPM-2.0.0b0-cp39-cp39-macosx_10_9_universal2.whl (324.2 kB view details)

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

SiPM-2.0.0b0-cp38-cp38-manylinux2010_x86_64.whl (241.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

SiPM-2.0.0b0-cp38-cp38-macosx_10_9_x86_64.whl (169.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

SiPM-2.0.0b0-cp37-cp37m-manylinux2010_x86_64.whl (243.4 kB view details)

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

SiPM-2.0.0b0-cp37-cp37m-macosx_10_9_x86_64.whl (164.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

SiPM-2.0.0b0-cp36-cp36m-manylinux2010_x86_64.whl (243.8 kB view details)

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

SiPM-2.0.0b0-cp36-cp36m-macosx_10_9_x86_64.whl (164.4 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

SiPM-2.0.0b0-cp35-cp35m-manylinux2010_x86_64.whl (243.8 kB view details)

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

SiPM-2.0.0b0-cp35-cp35m-macosx_10_9_x86_64.whl (163.6 kB view details)

Uploaded CPython 3.5m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0.tar.gz
Algorithm Hash digest
SHA256 efdbe6273ddc160088a5dedc197d2e26835a68aade91c14f61acbe6c5331235e
MD5 32f8da9418b6076b2b54b6284c35dd03
BLAKE2b-256 8bff0696e42bd1ca3b9f33883c0d37a84df24e8fb7032149b479d88e83f8963a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 241.6 kB
  • Tags: PyPy, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-pp37-pypy37_pp73-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e990de4079d7fa8ff5e7cb0d7a1641bb5595ecdafbfe9cbd6f7ff1b79f657a22
MD5 8868c9c09bbcf45e84ad95bf5dac9ebc
BLAKE2b-256 2d6363f260a3a0dc7257ef8922cee427b23169df267c7b111e13c68250a8577b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 168.9 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c67b1edffc424fc9649f0495233958948a778f07d62d022de2815c36d9984c9
MD5 c34a45b9a70c896851be24225ded24f1
BLAKE2b-256 012e35df3a1a64bd82330ad78b677b6e417a1fa2e2ed1b8e205d8cf84bf586e9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 242.3 kB
  • Tags: PyPy, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ff4f2ac0fc57af9a88f5ae7acf0affa80351f9fef769f33e75ae566f7a2bf825
MD5 1cac0a2f1d3c71cd57353aced2023469
BLAKE2b-256 fb570a84fe0f59ee63997fadf0ff0b84c02d50f380ef163741920f7799851754

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 169.0 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b6180171ac953868f9d08da7f63d8aac6745070fa7f22cc6fcccac79ce650911
MD5 8ac538487d35f8f3905880a634185b44
BLAKE2b-256 8252d7f7795699f561734948d5599231570a90435d40ff3342abc5e0c4b7e294

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 241.1 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6b91d13a03c8f6ab619eef00c442728a4694aba19921af389c053064429120c6
MD5 127ae2edde714b9261ed99a1741674e9
BLAKE2b-256 b4298b8238a3cbaeca1019dd70de3bcb167528d4428bfe81a63de97294373423

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 161.6 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0adebf3edd3d62ac5276d9b1eba163badb4952a3224d5c8d8173de4ed4495e92
MD5 272426ac97f0a1cbc1eb3cbb0a5a01bf
BLAKE2b-256 89d1b53f018bbd93fca77cfcbdbeb45ddf7e9dbeb153caeac917b67af6da628d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 170.0 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e86f907b373708a47fff31404e77f7fa6d3b0992052caaa66b2c325c5653169e
MD5 c4461e285291191b222c71eaf1006079
BLAKE2b-256 224065876d09bb15d4bf4c891ae109f7045bdbd2e9979da18ccd45c4e7320570

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 324.2 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6faf4a293bf8dbcfc09f675a1808e18b6723c658da8e5f5941d2ca1d43c9aeb2
MD5 a09e9d98ab35a67650528f932929b8c7
BLAKE2b-256 f0092d020c81844715e43ce03bc07770a6660d2657c56041557413b51b6aeac9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 241.1 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2ad0fe459eb7fbfafdd9583499b439b239f7b06127b184a1385b7990c945b5b5
MD5 6ba018c2a4d721a997856fd8cdd9cd1c
BLAKE2b-256 ba3783fb781729c9cdbee501d56a8d055b6434b12f6024b6c5442a9c41d42d13

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 169.8 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 52f8049db6f9f0eac1ef868659cdc838ff2e61543c1e92848a364fcdc9ca8604
MD5 c0a6a8a5d2ebfec66f911bcf07705cc4
BLAKE2b-256 77d127daed20a503474dd1ee077e40c82a93a7e095e41d0327825c70cb40917a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 243.4 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2a152d389f4d77b641699040f1430d955f714e2d46dc5f283a1103e51e82fdc7
MD5 3744df7f782ede06aed762e903216233
BLAKE2b-256 9245b6029ba0665c04c23969e80bd84ea13cdef8d3c16a4a3505f9737c0660b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 164.4 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3bf589fa197a26c73b0a4c8e2402917e69ca4ea3060c5b00b9102f9f0156a7d3
MD5 4b482e736078d6331405bf855b6846a5
BLAKE2b-256 56545546d5d12ffa575a2755329f8db0614779e10fc4b95bbfb94038421796ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 243.8 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d8a43f63038f540a2d839a9cf59ccb6935296df25e570e1f4a7e0750bb1bc1fe
MD5 fc61442f1af9c7b7036ce0d00451528f
BLAKE2b-256 05913fc9db175d775ffb8a2695253ebb0505da26fff82c7d2c2c6511b26af4fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 164.4 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0c3a0050226106c5ab169c1cd5b0d66131d57589acf9cfc3e92c2564d77073f2
MD5 418b20f04b40b7087d954207e20b8536
BLAKE2b-256 4007b368b048c7bdff14168a28c15e21c203d90a672294705aa74d1879dc25c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 243.8 kB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f7e375240441d46abed720bbe67fa13d0b6fa15339cc0c1144371fbf036b8c42
MD5 fb192b136ced134344f72181e95e6b9a
BLAKE2b-256 685f51b4c55a5968f16c7a8243fdc35604470c3e6e24509ca5a9a286a16cb97c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SiPM-2.0.0b0-cp35-cp35m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 163.6 kB
  • Tags: CPython 3.5m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 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.0b0-cp35-cp35m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fd3f838049bf39f4f1c61dd02b8fedea46cb1296364dbfe5396d91bf047ad230
MD5 bfb988eac37a5f518589e1f7e14e6750
BLAKE2b-256 5a91cfcc59154c2d2a7f4a289d92589cbe4c71edbb264936c61568c2bfdfb08e

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