HillasIntersection

class ctapipe.reco.hillas_intersection.HillasIntersection(**kwargs: Any)[source]

Bases: ctapipe.reco.reconstructor.HillasGeometryReconstructor

This class is a simple re-implementation of Hillas parameter based event reconstruction. e.g. https://arxiv.org/abs/astro-ph/0607333

In this case the Hillas parameters are all constructed in the shared angular (Nominal) system. Direction reconstruction is performed by extrapolation of the major axes of the Hillas parameters in the nominal system and the weighted average of the crossing points is taken. Core reconstruction is performed by performing the same procedure in the tilted ground system.

The height of maximum is reconstructed by the projection os the image centroid onto the shower axis, taking the weighted average of all images.

Uncertainties on the positions are provided by taking the spread of the crossing points, however this means that no uncertainty can be provided for multiplicity 2 events.

Note: only input from CameraFrame is currently supported

Attributes Summary

atmosphere_profile_name

name of atmosphere profile to use

weighting

Weighting Method name

Methods Summary

__call__(event)

Perform stereo reconstruction on event.

intersect_lines(xp1, yp1, phi1, xp2, yp2, phi2)

Perform intersection of two lines.

reconstruct_nominal(hillas_parameters)

Perform event reconstruction by simple Hillas parameter intersection in the nominal system

reconstruct_tilted(hillas_parameters, tel_x, …)

Core position reconstruction by image axis intersection in the tilted system

reconstruct_xmax(source_x, source_y, core_x, …)

Geometrical depth of shower maximum reconstruction, assuming the shower maximum lies at the image centroid

weight_konrad(p1, p2)

weight_sin(phi1, phi2)

Attributes Documentation

atmosphere_profile_name

name of atmosphere profile to use

weighting

Weighting Method name

Methods Documentation

__call__(event)[source]

Perform stereo reconstruction on event.

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 intersect_lines(xp1, yp1, phi1, xp2, yp2, phi2)[source]

Perform intersection of two lines. This code is borrowed from read_hess.

Parameters
xp1: ndarray

X position of first image

yp1: ndarray

Y position of first image

phi1: ndarray

Rotation angle of first image

xp2: ndarray

X position of second image

yp2: ndarray

Y position of second image

phi2: ndarray

Rotation angle of second image

Returns
ndarray of x and y crossing points for all pairs
reconstruct_nominal(hillas_parameters)[source]

Perform event reconstruction by simple Hillas parameter intersection in the nominal system

Parameters
hillas_parameters: dict

Hillas parameter objects

Returns
Reconstructed event position in the horizon system
reconstruct_tilted(hillas_parameters, tel_x, tel_y)[source]

Core position reconstruction by image axis intersection in the tilted system

Parameters
hillas_parameters: dict

Hillas parameter objects

tel_x: dict

Telescope X positions, tilted system

tel_y: dict

Telescope Y positions, tilted system

Returns
(float, float, float, float):

core position X, core position Y, core uncertainty X, core uncertainty X

reconstruct_xmax(source_x, source_y, core_x, core_y, hillas_parameters, tel_x, tel_y, zen)[source]

Geometrical depth of shower maximum reconstruction, assuming the shower maximum lies at the image centroid

Parameters
source_x: float

Source X position in nominal system

source_y: float

Source Y position in nominal system

core_x: float

Core X position in nominal system

core_y: float

Core Y position in nominal system

hillas_parameters: dict

Dictionary of hillas parameters objects

tel_x: dict

Dictionary of telescope X positions in tilted frame

tel_y: dict

Dictionary of telescope Y positions in tilted frame

zen: float

Zenith angle of shower

Returns
float:

Estimated depth of shower maximum

static weight_konrad(p1, p2)[source]
static weight_sin(phi1, phi2)[source]