ctapipe is not stable yet, so expect large and rapid changes to structure and functionality as we explore various design choices before the 1.0 release.

HillasReconstructor#

class ctapipe.reco.HillasReconstructor(**kwargs: Any)[source]#

Bases: HillasGeometryReconstructor

class that reconstructs the direction of an atmospheric shower using a simple hillas parametrisation of the camera images it provides a direction estimate in two steps and an estimate for the shower’s impact position on the ground.

so far, it does neither provide an energy estimator nor an uncertainty on the reconstructed parameters

Methods Summary

__call__(event)

Perform the full shower geometry reconstruction.

estimate_core_position(array_pointing, psi, ...)

Estimate the core position by intersection the major ellipse lines of each telescope.

estimate_direction(norm, weight)

calculates the origin of the gamma as the weighted average direction of the intersections of all hillas planes

estimate_relative_h_max(cog_vectors, positions)

Estimate the relative (to the observatory) vertical height of shower-max by intersecting the lines of the cog directions of each telescope.

initialize_arrays(event, hillas_dict)

Creates flat arrays of needed quantities from the event structure.

Methods Documentation

__call__(event)[source]#

Perform the full shower geometry reconstruction.

Parameters:
eventArrayEventContainer

The event, needs to have dl1 parameters. Will be filled with the corresponding dl2 containers, reconstructed stereo geometry and telescope-wise impact position.

static estimate_core_position(array_pointing, psi, positions)[source]#

Estimate the core position by intersection the major ellipse lines of each telescope.

Parameters:
hillas_dict: dict[HillasContainer]

dictionary of hillas moments

array_pointing: SkyCoord[HorizonFrame]

Pointing direction of the array

Returns:
core_x: u.Quantity

estimated x position of impact

core_y: u.Quantity

estimated y position of impact

Notes

The part of the algorithm taking into account divergent pointing mode and the usage of a corrected psi angle is explained in [Gas20] section 7.1.4.

static estimate_direction(norm, weight)[source]#

calculates the origin of the gamma as the weighted average direction of the intersections of all hillas planes

Returns:
gammashape (3) numpy array

direction of origin of the reconstructed shower as a 3D vector

crossingsshape (n,3) list

an error estimate

static estimate_relative_h_max(cog_vectors, positions)[source]#

Estimate the relative (to the observatory) vertical height of shower-max by intersecting the lines of the cog directions of each telescope.

Returns:
astropy.unit.Quantity:

the estimated height above observatory level (not sea level) of the shower-max point

initialize_arrays(event, hillas_dict)[source]#

Creates flat arrays of needed quantities from the event structure.

Parameters:
hillas_dictdictionary

dictionary of hillas moments

subarrayctapipe.instrument.SubarrayDescription

subarray information

telescopes_pointings: dictionary

dictionary of pointing direction per each telescope

array_pointing: SkyCoord[AltAz]

pointing direction of the array

Notes

The part of the algorithm taking into account divergent pointing mode and the correction to the psi angle is explained in [Gas20], section 7.1.4.