Array calibration#

Array calibration concerns telescope inter and cross calibration. Inter calibration refers to relative calibration of same type telescopes while cross calibration refers to relative calibration of both same and different telescope types. It is composed of three distinct use cases:

  1. Cross / Inter calibration of telescope optical throughput using reconstructed shower energies.

  2. Inter calibration of telescope optical throughput using image size.

  3. Cross calibration of telescope timing.

Below we describe the configuration parameters of the tools implementing each of the above use cases.

Inter calibration of telescope optical throughput using reconstructed shower energies:

Inter calibration consists of a two step workflow. In the first step DL2 datasets, each corresponding to a single observation block, are processed in parallel and the event wise energy asymmetry is calculated and stored in intermediate temporary files. In the second step, the energy asymmetry files are processed and the inter calibration coefficients are calculated and stored as the corresponding DL2/Monitoring tables. This procedure is illustrated in the figure below:

../_images/intercalibration_schema.png

Below are the configuration parameters for the energy asymmetry calculation.

  • event_filters: a dictionary with the event selection filters. The keys are the name of the filters while the values are the thresholds. Currently implemented are:

  • min_gammaness: used to select gamma-like showers.

  • min_energy: the minimum energy.

  • max_distance_asymmetry: used to select equidistant events.

  • energy_reconstructor: name of the energy reconstruction algorithm.

  • geometry_reconstructor: name of the geometry reconstruction algorithm.

  • gammaness_reconstructor: name of the classification algorithm.

  • quality_criteria: criteria for DL2 tables filtering.

  • max_impact_distance: a FloatTelescopeParameter that sets the maximum distance between the telescopes and a shower core in meters. The maximum distance between the telescopes in pair should not exceed the sum of these values for the telescopes in pair.

CalculateAsymmetry:
  event_filters:
    max_distance_asymmetry: 0.05
  chunk_size: 100000
  energy_reconstructor: RandomForestRegressor
  geometry_reconstructor: HillasReconstructor
  gammaness_reconstructor: RandomForestClassifier

QualityQuery:
  quality_criteria:
    - ["energy threshold", "RandomForestRegressor_tel_energy > 50 * u.GeV"]
    - ["gammaness", "RandomForestClassifier_tel_prediction > 0.5"]
    - ["valid reco", "RandomForestRegressor_tel_is_valid"]

PairFinder:
  max_impact_distance:
    - [type, "LST*", 125.0]
    - [type, "MST*", 125.0]
    - [type, "SST*", 225.0]

Following the production of the asymmetry tables the inter calibration tool shall be invoked. Below are its configuration parameters.

  • reconstruction_algorithm: name of the energy reconstruction algorithm.

  • throughput_normalisation: Setting the overall telescope throughput normalisation. Depending the use case, it could reflect the absolute optical throughput measured by the muon rings / illuminator, if we want to compare or complement these methods. Alternatively it could get an arbitrary number, e.g. one that sets the average throughput to 1, if the user wants to ‘flat-field’ the array. Finally it could be set to 1, if we want to identify outlier telescopes or study the aging.

  • reference_telescopes: ID of the telescope whose throughput kept fixed during the intercalibration minimisation.

CalculateInterCalibration:
  overwrite: True
RelativeThroughputFitter:
  throughput_normalisation: {
            "LST": 1.0,
            "MST": 1.0,
            "SST": 1.0,
        }
  reference_telescopes: {
            "LST": 1,
            "MST": 5,
            "SST": 34,
        }

The tool produces a new hdf5 file with the following table:

  • DL2_SUBARRAY_INTER_CALIBRATION_GROUP

Where the inter-calibration results are stored. The table has the following fields:

Column Name

Type | Description

size_type

numpy.str

Telescope type (LST, MST, SST).

tel_id

numpy.int64

Telescope ID.

value

numpy.float64

Relative telescope throughput.

error

numpy.float64

Relative telescope throughput uncertainty.

Cross calibration of telescope optical throughput using reconstructed shower energies:

Not yet implemented.

Inter calibration of telescope optical throughput using image size:

Not yet implemented.

Cross calibration of telescope timing:

Not yet implemented.