About csky

Introduction

csky is an unbinned likelihood maximization library optimized for the sorts of analyses commonly performed by the IceCube Neutrino Sources working group. It tries to strike a balance between flexibility and ease-of-use within that domain. It was originally written by Mike Richman (<mike.d.richman@gmail.com> / @mrichman on IceCube Slack / hereafter “I/me/my/etc”).

In many ways, csky is a direct response to skylab, whose wiki notes:

The current inheritance structure is top-down which leads to a fair amount of copied code and makes it difficult to follow calculations all the way through. It would help to make the likelihood class more modular with individual classes for the spatial and energy components. – @jwood

For how csky addresses this and other concerns, see the page on Design.

Features

Space PDFs

  • Single source or multi-source stacking

    • Optional source extension (circular Gaussian)

    • Optional signal subtraction

  • Highly-extended source with healpy template

    • Constant spectrum per pixel

    • Energy-binned spectrum per pixel

Energy PDFs

  • Fit power law (even for template analysis)

  • Fix arbitrary spectrum

Time PDFs

  • Gaussian or box flare fitting (fit peak time and/or flare width)

  • Multiflare (box flares)

  • A priori binned lightcurve

  • Fast transients (fixed box or fixed box+tails)

All-sky scans

  • Supports any single-point-like-source method

  • Get full scan results

  • Batch all-sky scan hottest-spot search trials

  • Optional last-step source position refinement

  • Optional spatial prior

Running trials

  • Robust sensitivity / discovery potential / upper limit estimation

  • Local multi-core multiprocessing

  • Optional live feedback during trial batch execution, sensitivity estimation, etc.

Data wrangling

  • Automatically mirror datasets

  • Cache expensive PDF constructions (e.g. energy PDF ratios, smoothed templates)

  • Slurp cluster outputs out of directory hierarchies (e.g. from cluster jobs)

Plotting

  • Enable TeX for all text rendering

  • Skymap plotting helper

  • Silence noisy healpy outputs

Name and origin

The name “csky” is a bit of a historical accident. The library was originally written for use with IceCube cascades. Over time, it developed into a far more flexible tool. Now you can think of it as a tool with which you can “c” (read: see) the sky (like, with neutrinos)… or something something certain parts of it are in C++ something something.

csky is the culmination of my (@mrichman’s) lessons learned on IceCube, building on years of experience with now defunct grbllh , multiple iterations of cascade-only analysis, and finally a couple of iterations of multiflavor-tolerant analysis before being distilled into the current form. I think I’ve finally found a design that is sufficiently robust to apply to nearly every type of astrophysical neutrino source search we do. And I hope csky will prove useful to ‘cubers who outlast me.

Authors

Users

Known active users

Known active users, listed roughly from longest to shortest time using:

Interested / getting started

People expressing interest / just getting started:

  • Mirco Huennefeld

    • interested in performance benchmarking with varied reconstructions and error error estimates

  • Christian Haack

    • interested in performance benchmarking with varied reconstructions and error error estimates

  • Pablo Correa

    • Ultra-luminous infrared galaxy stacking

  • Martina Karl

    • Self-triggered analysis

  • Lisa Schumacher

    • UHECRs as spatial priors for source searches

Presentations