Skip to main content

CHerenkov Air Shower Model

Project description

CHASM_logo

CHASM (CHerenkov Air Shower Model)

CHASM is a python package which leverages the universality of charged particles in an extensive air shower to produce a deterministic prediction of the Cherenkov light signal for a given shower profile and geometry. At samples throughout the domain of all shower development stages and altitudes, the angular and yield distributions of Cherenkov light have been calculated at an array of distances from a shower axis. Chasm accesses and interpolates between these distributions at runtime to produce the aggregate signal from the whole shower at user defined telescope locations.

Installation

To install from pip:

pip install CHASM-NuSpacesim

To install from source:

  1. git clone https://github.com/ikepc1/CHASM_NuSpacesim
  2. cd CHASM_NuSpacesim
  3. python3 -m pip install -e .

Usage

CHASM has implementations of both upward and downward going shower axes in either flat planar or curved atmospheres. A shower profile can be defined either by Gaisser-Hillas parameters, or as an array of particle counts and at a corresponding array of depths. Cherenkov yield distributions can be sampled along the shower axis, or in a mesh of points surrounding the axis, at which charged particles are distributed according to the NKG lateral distribution. The first step is to create a simulation.

import CHASM as ch

sim = ch.ShowerSimulation()

Then add an axis. The origin of the coordinate system is where the axis meets the ground. It is defined by a polar angle, azimuthal angle, and keyword arguments for the ground level and whether to account for atmospheric curvature.

sim.add(ch.DownwardAxis(theta, phi, ground_level = 0., curved = False))

or

sim.add(ch.UpwardAxis(theta, phi, ground_level = 0., curved = False))

Then add a shower.

sim.add(ch.GHShower(X_max, N_max, X0, Lambda))

or

sim.add(ch.UserShower(X, N))

Now we add photon counters. Both spherical CORSIKA IACT style counters and flat counting apertures are available.

sim.add(ch.SphericalCounters(counter_vectors, counter_radius))

or

sim.add(ch.FlatCounters(counter_vectors, counter_radius))

Finally, we define the Cherenkov wavelength interval of interest.

sim.add(ch.Yield(min_l, max_l, N_bins = 1))

We can now run the simulation, and generate signals. The simulation's run method takes two keyword boolean flags, 'mesh' specifies whether to use mesh sampling around the shower axis, 'att' specifies whether to use atmospheric extinction along the travel paths of the light. The run method returns a ShowerSignal object, which contains the number of photons, their arrival times, their wavelengths, and vectors to their source points.

sig = sim.run(mesh = True)

CHASM can also write its output to the eventio format used by CORSIKA IACT. The function that does this takes ShowerSignal object and the target filename as arguments.

ch.write_ei_file(sig, 'filename.dat')

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

CHASM_NuSpacesim-1.0.0.tar.gz (96.3 MB view details)

Uploaded Source

File details

Details for the file CHASM_NuSpacesim-1.0.0.tar.gz.

File metadata

  • Download URL: CHASM_NuSpacesim-1.0.0.tar.gz
  • Upload date:
  • Size: 96.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for CHASM_NuSpacesim-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8cc3ae5cfcae6f2441276f7596fc72efb98ba3330ef81e1dc4cf1cab13f422d5
MD5 8e325dce4a06f59c0372c2659f5a1381
BLAKE2b-256 2b62311bae0549edd6b6edbff647b176f6820bef9980bffd40f00a1e1bcb83e4

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