Skip to main content

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 mostly follows FCCSW rules and guidelines concerning C++. SimSiPM has been developed especially for high-energy physics applications 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 to exploit vectorization capabilities of the compilers.

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.setProperty("Xt",0.03);  // Using parameter name
std::cout<<myProperties<<"\n";        // All classes can be printed using std::cout

// ===> SiPM Properties <===
// Address: 0x7f2cf11ea018
// Size: 1.00 mm
// Pitch: 25.00 um
// Number of cells: 1600
// Hit distribution: Uniform
// Cell recovery time: 50.00 ns
// Dark count rate: 250.00 kHz
// Optical crosstalk probability: 3.00 %
// Delayed optical crosstalk is OFF
// Afterpulse probability: 3.00 %
// Tau afterpulses (fast): 10.00 ns
// Tau afterpulses (slow): 80.00 ns
// Cell-to-cell gain variation: 5.00 %
// SNR: 30.00 dB
// Photon detection efficiency is OFF (100 %)
// Rising time of signal: 1.00 ns
// Falling time of signal (fast): 50.00 ns
// Signal length: 500.00 ns
// Sampling time: 1.00 ns

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
std::cout<<mySensor<<"\n";

// ===> SiPM Sensor <===
// Address: 0x7f48ef5d62f0
// ===> SiPM Properties <===
// Address: 0x7f48ef5d62f0
// Size: 1.00 mm
// Pitch: 25.00 um
// Number of cells: 1600
// Hit distribution: Uniform
// Cell recovery time: 50.00 ns
// Dark count rate: 200.00 kHz
// Optical crosstalk probability: 5.00 %
// Delayed optical crosstalk is OFF
// Afterpulse probability: 1.00 %
// Tau afterpulses (fast): 10.00 ns
// Tau afterpulses (slow): 80.00 ns
// Cell-to-cell gain variation: 5.00 %
// SNR: 30.00 dB
// Photon detection efficiency is OFF (100 %)
// Rising time of signal: 1.00 ns
// Falling time of signal (fast): 50.00 ns
// Signal length: 500.00 ns
// Sampling time: 1.00 ns
// Address :0x7ffcded8a300
// ===> SiPM Debug Info <===
// Number of photons impinging to the sensor: 0
// Number of photoelectrons detected: 0
// Number of dark count events (DCR): 0
// Number of optical crosstalk events (XT + DTX): 0
// Number of delayed optical crosstalk events (DXT): 0
// Number of afterpulsing events (AP): 10.00

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];
std::cout<<signal<<"\n";

// ===> SiPM Analog Signal <===
// Address: 0x7f48ef5d64e8
// Signal length is: 0.00 ns
// Signal is sampled every: 1.00 ns
// Signal contains: 0 points

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);

// 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

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 = {Proserpio, Edoardo, and Santoro, Romualdo},
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)

Metadata

Release files for SiPM 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SiPM 2.1.0
File Size Uploaded
sipm-2.1.0.tar.gz 29.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for SiPM 2.1.0
File
sipm-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
sipm-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
sipm-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
sipm-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
sipm-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
sipm-2.1.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
sipm-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
sipm-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
sipm-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
sipm-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
sipm-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
sipm-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
sipm-2.1.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
sipm-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
sipm-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
sipm-2.1.0-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details
sipm-2.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
sipm-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
SiPM-2.1.0-cp37-cp37m-musllinux_1_2_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ x86-64 Details
SiPM-2.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
SiPM-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details
SiPM-2.1.0-cp36-cp36m-musllinux_1_2_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ x86-64 Details
SiPM-2.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details
SiPM-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64 Details

Total release size: 13.5 MB

Release files / sipm-2.1.0.tar.gz

Download URL sipm-2.1.0.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6cb3be9e559ffeccf565dd86b97842ffc2daead4c626c064379855d72dcdb60c
BLAKE2b-256 checksum
How to use checksums
ad3cc6b06dbbe3b8851d324747fdce38ef8be4bece2aae8655d3afc6ae25b37f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL sipm-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
fcda0349e3884731dcb98d21dfb6b00d266f42341c0aa67e5be6babe66a8b16a
BLAKE2b-256 checksum
How to use checksums
56025c93b399351740c41c1718153a5b97291eedaf1b80a91c3e79147ca48413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sipm-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 241.0 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
414c0454df89ec894cdf1059493e7533d08bb9a9b3a756f03ebc2d8ce252f9ac
BLAKE2b-256 checksum
How to use checksums
85a99cf39d6bfb8ba096f9a775b0448a6b9204df88719e870aed34665d9ceeab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL sipm-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 181.6 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
850abb221ab9af5c231d7015baf36e0142e85d1fe0c895239543e4f00e5888ab
BLAKE2b-256 checksum
How to use checksums
6c50726f4c983301359f95affa63ee619c910e281a5dff8e8b1eecfa6999601e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL sipm-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
04415e7b90ec5f4132bcbc6afcaafacbb2d46b90a210693d3d207e4f76bbc9bd
BLAKE2b-256 checksum
How to use checksums
8267de4eb4d4ff731b62d4b36e7afb4daba0dd7989efc49cd2646f883c8826c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sipm-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 241.4 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
13be49482c8acb034305178e29ac5d9f7e636033da05978415cae4837e65b6f4
BLAKE2b-256 checksum
How to use checksums
ac69dddfeb3ad5583bfddbfc7a52740cc0361abc9eddfc2b7fcdc0df58d5f57c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL sipm-2.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 181.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
461ced1469c3d5616689b2bf4a17a7311ccc7463fca5a44d90974fd92ca8d4df
BLAKE2b-256 checksum
How to use checksums
8778c88b91659bb0910faf86508642b83c3d0d045db1c0f221bfe45effa9dc21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL sipm-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9a54ffdab306a7dbbf82470d624cd775cd439ba1826558ab1459d305f7605b24
BLAKE2b-256 checksum
How to use checksums
558077681be2ecb57ea4f0bf14829f5deebb08d7988a73215498ba479a2ee843
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sipm-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 245.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
11bf09c630008ae954552b65f4b1c3563d5f423688f7aa471f71786f35f9bd53
BLAKE2b-256 checksum
How to use checksums
128890a5f903d17c22cfab82b284539160829fad9d3c316702d7c3d4ab621a96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL sipm-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 180.3 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a1cc9bf09dd98ff99b647a35132b5032f1a437a23e3082db32787ef7d088ce4d
BLAKE2b-256 checksum
How to use checksums
cff1acb3d7f957b73e7678ddff513b42df8108ccb818a366673b2befadc92f6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL sipm-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
718e1bc6efd91e5d99bed9b2e8f018b632ac960879cefc27d400c8c627ee0d0e
BLAKE2b-256 checksum
How to use checksums
d35f6f3cc1ab78969036b9c628424e148ccbb1df05cbf1b134ebf642c8f2a4ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sipm-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 243.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6dfb9d10c55ec53be87f263f9480587fc9eb4a1307e29e30b460a92ee0658509
BLAKE2b-256 checksum
How to use checksums
ee81902f3d6205d4dd5ef403533c0d0bca914a4cd8fe851d78881a7983271cd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL sipm-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 179.0 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
645de8ffc072340f1f8f5a26b916050a18e2951cefd295bffa7764cc9b45ee30
BLAKE2b-256 checksum
How to use checksums
0f081c7171af73849e909cc2d619d60d78411079dc9b85db2ddf15c903d09cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL sipm-2.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3c177847d93ffa308d93739b73d61bf7df1f8f4c4a0334766b1547c70960df62
BLAKE2b-256 checksum
How to use checksums
bf54105e68bbe1281d21bf91f6d65076f9ace414b4478466ce4b1810fcff2436
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sipm-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 245.0 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
56333a51633ab7549d9be722d73841fd29ad8138fbdf2e5a202cf63b9b191a5f
BLAKE2b-256 checksum
How to use checksums
d91f0c4b9acb1e8f00e10dddba3518efebbd1b4c1d5ddb2a7d1590ed7101ff5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL sipm-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 179.1 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2c68f6bb30e1dd4eb2c78a74460520b48c18e57482c2d23d4c55f346cfe20d6a
BLAKE2b-256 checksum
How to use checksums
d297568b0af3050a09d0e2bc4cfa53ce583f53db1531684c1b98a68117cb34f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL sipm-2.1.0-cp38-cp38-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e7f84ec7053c4fda8df8657c257c654c819223c7a58058acbf6d5f0127b8352a
BLAKE2b-256 checksum
How to use checksums
492f1524ca3dd11139b7046d350750fc0a209d87fe08d690791ba5d0ee305202
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sipm-2.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 244.0 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
525cfcf774115fcdb8d63222676a8ec5a1de6f3b301cc665947c1e31283dfd25
BLAKE2b-256 checksum
How to use checksums
5f4268631369652f3efbec67b81d38d5939b8f4dd2f7fcdc3c88c9b3cdd9a47d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / sipm-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl

Download URL sipm-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Size 178.9 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
69b70666ee44c40e00e1ebc2851afe4c7331b7b214ca9be9f5cbc807031ae51d
BLAKE2b-256 checksum
How to use checksums
0a810922d6de29aa267881b126a012d87c082b325f77f9016343977356af52c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / SiPM-2.1.0-cp37-cp37m-musllinux_1_2_x86_64.whl

Download URL SiPM-2.1.0-cp37-cp37m-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
af8f22feafd08273820d05592a92f4e50b3ea61bcf130cdaa19d9f1f1834d683
BLAKE2b-256 checksum
How to use checksums
4d803b7bbcf5f1995b5373484c332899c072f9da0bed1d7691314d849d8f6786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / SiPM-2.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL SiPM-2.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 239.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
433879e3e70b811ed07b0b265700b0859c395dfe838c6960851b6720cab9ea36
BLAKE2b-256 checksum
How to use checksums
af5a4cd42badfe8fc989d1a897f0e82d78e88ed158b63fff630dca74a1376756
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / SiPM-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL SiPM-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Size 177.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
e646b1a92a4ccea71efe182ebfe028241665c20abb490979749d261b987ab554
BLAKE2b-256 checksum
How to use checksums
1a3184b0a624c1c299a83dd4b44caa6f9759a4141d2a27751f667dde7252227b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / SiPM-2.1.0-cp36-cp36m-musllinux_1_2_x86_64.whl

Download URL SiPM-2.1.0-cp36-cp36m-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3ade266ad6b6cc555b32103cf7c79537b1372ae8d8ab85ca3c49e9e2f138b024
BLAKE2b-256 checksum
How to use checksums
919c099b477db7771377083d64a29dc0214855f2b3a8c6bc33c44a7a5917c135
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / SiPM-2.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL SiPM-2.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 242.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2eca0509100d8824832a2cb52770e68a0f634708aa79f17160003077fe3000fd
BLAKE2b-256 checksum
How to use checksums
8ed808b510f706a428a8becea59fabe63c37093126173682463d9ebc194388f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / SiPM-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl

Download URL SiPM-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Size 176.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
382f15e1000f69f46ce410546e80f70e0fa4cff0515d0ec9c63eeae527c81ee2
BLAKE2b-256 checksum
How to use checksums
6f9053642c6a58964cdda2012c37370f7334fdad7fa8b23422ad8ff484695b7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page