# Process data from lower-data levels up to DL1 and DL2, including image extraction and optionally image parameterization as well as muon # analysis and shower reconstruction. ProcessorTool: #config_files: traitlets.Undefined # Enforce dl1 recomputation even if already present in the input file force_recompute_dl1: False # Enforce dl2 recomputation even if already present in the input file force_recompute_dl2: False #log_config: traitlets.Undefined # The date format used by logging formatters for %(asctime)s log_datefmt: '%Y-%m-%d %H:%M:%S' # Filename for the log log_file: None # Logging Level for File Logging log_file_level: INFO # The Logging format template log_format: '[%(name)s]%(highlevel)s %(message)s' # Set the log level by value or name. log_level: 30 # Configure additional log handlers. The default stderr logs handler is configured by the log_level, log_datefmt and log_format settings. # This configuration can be used to configure additional handlers (e.g. to output the log to a file) or for finer control over the default # handlers. If provided this should be a logging configuration dictionary, for more information see: # https://docs.python.org/3/library/logging.config.html#logging-config-dictschema This dictionary is merged with the base logging # configuration which defines the following: * A logging formatter intended for interactive use called ``console``. * A logging handler that # writes to stderr called ``console`` which uses the formatter ``console``. * A logger with the name of this application set to ``DEBUG`` # level. This example adds a new handler that writes to a file: .. code-block:: python c.Application.logging_config = { 'handlers': { # 'file': { 'class': 'logging.FileHandler', 'level': 'DEBUG', 'filename': '', } }, 'loggers': { '': { 'level': # 'DEBUG', # NOTE: if you don't list the default "console" # handler here then it will be disabled 'handlers': ['console', 'file'], }, } } #logging_config: traitlets.Undefined overwrite: False # show progress bar during processing progress_bar: False #provenance_log: traitlets.Undefined quiet: False # Instead of starting the Application, dump configuration to stdout show_config: False # Instead of starting the Application, dump configuration to stdout (as JSON) show_config_json: False # Calibrator to handle the full camera calibration chain, in order to fill the DL1 data level in the event container. CameraCalibrator: # Apply peak time shift corrections. Apply the remaining absolute and fractional time shift corrections to the peak time after pulse # extraction. If `apply_waveform_time_shift` is False, this will apply the full time shift. #apply_peak_time_shift: traitlets.Undefined # Apply waveform time shift corrections. The minimal integer shift to synchronize waveforms is applied before peak extraction if this option # is True. #apply_waveform_time_shift: traitlets.Undefined # The name of a DataVolumeReducer subclass. Possible values: ['NullDataVolumeReducer', 'TailCutsDataVolumeReducer'] data_volume_reducer_type: 'NullDataVolumeReducer' # Name of the ImageExtractor subclass to be used. The name of a ImageExtractor subclass. Possible values: ['FullWaveformSum', # 'FixedWindowSum', 'GlobalPeakWindowSum', 'LocalPeakWindowSum', 'SlidingWindowMaxSum', 'NeighborPeakWindowSum', 'TwoPassWindowSum', # 'FlashCamExtractor', 'BaselineSubtractedNeighborPeakWindowSum'] #image_extractor_type: traitlets.Undefined # Name of the InvalidPixelHandler to use. Possible values: ['NeighborAverage'] invalid_pixel_handler_type: 'NeighborAverage' # Serialize a sequence of events into a HDF5 file, in the correct format DataWriter: # compression level, 0=None, 9=maximum compression_level: 5 # compressor algorithm to use. compression_type: blosc:zstd #contact_info: traitlets.Undefined # Additional metadata keywords and values that describe this data. This should be a dictionary where the keys will be appended to the # CONTEXT section of the output file's attributes. Keys can be hierarchical by using a space between each level, e.g. ``SIMULATION # PRODUCTION`` would make a key PRODUCTION grouped under the key SIMULATION #context_metadata: traitlets.Undefined image_dtype: 'int32' image_offset: 0 image_scale: 10.0 #instrument_info: traitlets.Undefined # output filename output_path: events.dl1.h5 # overwrite output file if it exists overwrite: False peak_time_dtype: 'int16' peak_time_offset: 0 peak_time_scale: 100.0 transform_image: False transform_peak_time: False transform_waveform: False waveform_dtype: 'int32' waveform_offset: 0 waveform_scale: 1000.0 # Store DL1 Images if available write_images: False # Generate PyTables index datasets for all tables that contain an event_id or tel_id. These speed up in-kernel pytables operations,but add # some overhead to the file. They can also be generated and attached after the file is written write_index_tables: False # Store muon parameters if available write_muon_parameters: False # Store DL1 image parameters if available write_parameters: True # Store R0 waveforms if available write_raw_waveforms: False # Store DL2 stereo shower parameters if available write_showers: False # Store R1 waveforms if available write_waveforms: False # Takes DL1/Image data and cleans and parametrizes the images into DL1/parameters. Should be run after CameraCalibrator to produce all DL1 # information. ImageProcessor: # If true, apply ImageModifier to dl1 images. #apply_image_modifier: traitlets.Undefined # The name of a ImageCleaner subclass. Possible values: ['TailcutsImageCleaner', 'MARSImageCleaner', 'FACTImageCleaner', # 'TimeConstrainedImageCleaner'] image_cleaner_type: 'TailcutsImageCleaner' # Whether to calculate parameters in the telescope or camera frame use_telescope_frame: True # Takes cleaned images and extracts muon rings. Should be run after ImageProcessor. MuonProcessor: # Threshold for calculating the ``ring_completeness``. #completeness_threshold: traitlets.Undefined # Pedestal noise rms. #pedestal: traitlets.Undefined # Ring width for intensity ratio computation in units of pixel diameter. #ratio_width: traitlets.Undefined # Run the stereo event reconstruction on the input events. ShowerProcessor: # The stereo reconstructors to be used. The reconstructors are applied in the order given, which is important if e.g. the # `~ctapipe.reco.ParticleClassifier` uses the output of the `~ctapipe.reco.EnergyRegressor` as input.. Possible values: # ['DispReconstructor', 'HillasIntersection', 'HillasReconstructor', 'EnergyRegressor', 'ParticleClassifier'] #reconstructor_types: traitlets.Undefined # Instrumental Context Instrument: class_: Other id_: 'unspecified' # Which site of CTA (or external telescope) this instrument is associated with site: Other subtype: 'unspecified' type_: 'unspecified' version: 'unspecified' # Contact information Contact: email: 'unknown' name: 'unknown' organization: 'unknown' # A stereo trigger that can remove telescope events from subarray events. SoftwareTrigger: # Minimum number of telescopes required globally. Events with fewer telescopes will be filtered out completely. min_telescopes: 1 # Minimum number of telescopes required for a specific type. In events with fewer telescopes of that type , those telescopes will be removed # from the array event. This might result in the event not fullfilling ``min_telescopes`` anymore and thus being filtered completely. #min_telescopes_of_type: traitlets.Undefined # Parent class for EventSources. EventSource: # list of allowed tel_ids, others will be ignored. If None, all telescopes in the input stream will be included allowed_tels: None # Path to the input file containing events. #input_url: traitlets.Undefined # Maximum number of events that will be read from the file max_events: None # Event source for files in the ctapipe DL1 format. For general information about the concept of event sources, take a look at the parent # class ctapipe.io.EventSource. HDF5EventSource: # list of allowed tel_ids, others will be ignored. If None, all telescopes in the input stream will be included allowed_tels: None # If both nominal and effective focal lengths are available, which one to use for the `~ctapipe.coordinates.CameraFrame` attached to the # `~ctapipe.instrument.CameraGeometry` instances in the `~ctapipe.instrument.SubarrayDescription` which will be used in CameraFrame to # TelescopeFrame coordinate transforms. The 'nominal' focal length is the one used during the simulation, the 'effective' focal length is # computed using specialized ray-tracing from a point light source focal_length_choice: FocalLengthKind.EFFECTIVE # Path to the input file containing events. #input_url: traitlets.Undefined # Maximum number of events that will be read from the file max_events: None # Read events from a SimTelArray data file (in EventIO format). SimTelEventSource: # list of allowed tel_ids, others will be ignored. If None, all telescopes in the input stream will be included allowed_tels: None # Which type of atmosphere density profile to load from the file, in case more than one exists. If set to AUTO, TABLE will be attempted # first and if missing, FIVELAYER will be loaded. atmosphere_profile_choice: AtmosphereProfileKind.AUTO # Require the event source to be backwards seekable. This will reduce in slower read speed for gzipped files and is not possible for zstd # compressed files back_seekable: False # Factor to transform ADC counts into number of photoelectrons. Corrects the DC_to_PHE factor. calib_scale: 1.0 # Factor to shift the R1 photoelectron samples. Can be used to simulate mis-calibration. calib_shift: 0.0 # If both nominal and effective focal lengths are available in the SimTelArray file, which one to use for the # `~ctapipe.coordinates.CameraFrame` attached to the `~ctapipe.instrument.CameraGeometry` instances in the # `~ctapipe.instrument.SubarrayDescription`, which will be used in CameraFrame to TelescopeFrame coordinate transforms. The 'nominal' focal # length is the one used during the simulation, the 'effective' focal length is computed using specialized ray-tracing from a point light # source focal_length_choice: FocalLengthKind.EFFECTIVE # The name of a GainSelector subclass. Possible values: ['ManualGainSelector', 'ThresholdGainSelector'] gain_selector_type: 'ThresholdGainSelector' # Path to the input file containing events. #input_url: traitlets.Undefined # Maximum number of events that will be read from the file max_events: None # Skip calibration events skip_calibration_events: True # Clean images using the standard picture/boundary technique. See `ctapipe.image.tailcuts_clean` TailcutsImageCleaner: # second-level threshold in photoelectrons. #boundary_threshold_pe: traitlets.Undefined # If False, pixels with less neighbors than ``min_picture_neighbors`` areremoved. #keep_isolated_pixels: traitlets.Undefined # Minimum number of neighbors above threshold to consider. #min_picture_neighbors: traitlets.Undefined # top-level threshold in photoelectrons. #picture_threshold_pe: traitlets.Undefined # 1st-pass MARS-like Image cleaner (See `ctapipe.image.mars_cleaning_1st_pass`) MARSImageCleaner: # second-level threshold in photoelectrons. #boundary_threshold_pe: traitlets.Undefined # If False, pixels with less neighbors than ``min_picture_neighbors`` areremoved. #keep_isolated_pixels: traitlets.Undefined # Minimum number of neighbors above threshold to consider. #min_picture_neighbors: traitlets.Undefined # top-level threshold in photoelectrons. #picture_threshold_pe: traitlets.Undefined # Clean images using the FACT technique. See `ctapipe.image.fact_image_cleaning` for algorithm details FACTImageCleaner: # second-level threshold in photoelectrons. #boundary_threshold_pe: traitlets.Undefined # If False, pixels with less neighbors than ``min_picture_neighbors`` areremoved. #keep_isolated_pixels: traitlets.Undefined # Minimum number of neighbors above threshold to consider. #min_picture_neighbors: traitlets.Undefined # top-level threshold in photoelectrons. #picture_threshold_pe: traitlets.Undefined # arrival time limit for neighboring pixels, in ns. #time_limit_ns: traitlets.Undefined # MAGIC-like Image cleaner with timing information (See `ctapipe.image.time_constrained_clean`) TimeConstrainedImageCleaner: # second-level threshold in photoelectrons. #boundary_threshold_pe: traitlets.Undefined # If False, pixels with less neighbors than ``min_picture_neighbors`` areremoved. #keep_isolated_pixels: traitlets.Undefined # Minimum number of neighbors above threshold to consider. #min_picture_neighbors: traitlets.Undefined # top-level threshold in photoelectrons. #picture_threshold_pe: traitlets.Undefined # arrival time limit for neighboring boundary pixels, in ns. #time_limit_boundary_ns: traitlets.Undefined # arrival time limit for neighboring core pixels, in ns. #time_limit_core_ns: traitlets.Undefined # Extractor that sums within a fixed window defined by the user. FixedWindowSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Manually select index where the peak is located. #peak_index: traitlets.Undefined # Define the shift of the integration window from the peak_index (peak_index - shift). #window_shift: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Extractor which sums in a window about the peak from the global average waveform. GlobalPeakWindowSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Fraction of pixels to use for finding the integration window. By default, the full camera is used. If fraction is smaller 1, only the # brightest pixels will be averaged to find the peak position. #pixel_fraction: traitlets.Undefined # Define the shift of the integration window from the peak_index (peak_index - shift). #window_shift: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Extractor which sums in a window about the peak in each pixel's waveform. LocalPeakWindowSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Define the shift of the integration windowfrom the peak_index (peak_index - shift). #window_shift: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Sliding window extractor that maximizes the signal in window_width consecutive slices. SlidingWindowMaxSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Extractor which sums in a window about the peak defined by the wavefroms in neighboring pixels. NeighborPeakWindowSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Weight of the local pixel (0: peak from neighbors only, 1: local pixel counts as much as any neighbor). #local_weight: traitlets.Undefined # Define the shift of the integration window from the peak_index (peak_index - shift). #window_shift: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Extractor based on [1]_ which integrates the waveform a second time using a time-gradient linear fit. This is in particular the version # implemented in the CTA-MARS analysis pipeline [2]_. TwoPassWindowSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Picture threshold for internal tail-cuts pass. #core_threshold: traitlets.Undefined # only run the first pass of the extractor, for debugging purposes disable_second_pass: False # Name of the InvalidPixelHandler to apply in the first pass.. Possible values: ['NeighborAverage'] invalid_pixel_handler_type: 'NeighborAverage' # Image extractor applying signal preprocessing for FlashCam FlashCamExtractor: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # Effective Cherenkov time profile std. dev. (in nanoseconds) to assume for calculating the gain correction. #effective_time_profile_std: traitlets.Undefined # Fraction of the peak value down to which samples are accumulated in the leading edge centroid calculation. #leading_edge_rel_descend_limit: traitlets.Undefined # Calculate leading edge time instead of peak time. #leading_edge_timing: traitlets.Undefined # Weight of the local pixel (0: peak from neighbors only, 1: local pixel counts as much as any neighbor). #local_weight: traitlets.Undefined # (Soft) clipping level of a pixel's contribution to a neighbour sum (set to 0 or inf to disable clipping). #neighbour_sum_clipping: traitlets.Undefined # Define the upsampling factor for waveforms. #upsampling: traitlets.Undefined # Define the shift of the integration window from the peak_index (peak_index - shift). #window_shift: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Extractor that first subtracts the baseline before summing in a window about the peak defined by the wavefroms in neighboring pixels. BaselineSubtractedNeighborPeakWindowSum: # Apply the integration window correction. #apply_integration_correction: traitlets.Undefined # End sample for baseline estimation baseline_end: 10 # Start sample for baseline estimation baseline_start: 0 # Weight of the local pixel (0: peak from neighbors only, 1: local pixel counts as much as any neighbor). #local_weight: traitlets.Undefined # Define the shift of the integration window from the peak_index (peak_index - shift). #window_shift: traitlets.Undefined # Define the width of the integration window. #window_width: traitlets.Undefined # Manually choose a gain channel. ManualGainSelector: # Which gain channel to retain channel: HIGH # Select gain channel according to a maximum threshold value. ThresholdGainSelector: # Threshold value in waveform sample units. If a waveform contains a sample above this threshold, use the low gain channel for that pixel. threshold: 4000 # Manages a set of user-configurable (at runtime or in a config file) selection criteria that operate on the same type of input. Each time it # is called, it returns a boolean array of whether or not each criterion passed. It also keeps track of the total number of times each # criterium is passed, as well as a cumulative product of criterium (i.e. the criteria applied in-order) QualityQuery: # list of tuples of (' 3'),]``. You may # use ``numpy`` as ``np`` and ``astropy.units`` as ``u``, but no other modules. #quality_criteria: traitlets.Undefined # for configuring image-wise data checks ImageQualityQuery: # list of tuples of (' 3'),]``. You may # use ``numpy`` as ``np`` and ``astropy.units`` as ``u``, but no other modules. #quality_criteria: traitlets.Undefined # For configuring quality checks performed on image parameters before rings are fitted. ImageParameterQuery: # Quality cuts as list of tuples of ('description', 'expression string'), e.g. ``[('min_pixels', 'dl1_params.morphology.n_pixels > # 100'),]``, to select muon images for analysis. You may use ``numpy`` as ``np`` and ``astropy.units`` as ``u``, but no other modules. DL1 # image parameters can be accessed by prefixing the wanted parameter with ``dl1_params``. #quality_criteria: traitlets.Undefined # For configuring quality checks performed on the extracted rings before computing efficiency parameters. RingQuery: # Quality cuts as list of tuples of ('description', 'expression string'), e.g. ``[('radius_not_nan', 'np.isfinite(ring.radius.value)'),]``, # to select fitted muons for further intensity fitting. You may use ``numpy`` as ``np`` and ``astropy.units`` as ``u``, but no other # modules. Ring parameters and geometry can be accessed by prefixing the wanted parameter with ``parameters`` or ``ring``, the ring mask can # be accessed as ``mask``. #quality_criteria: traitlets.Undefined # Quality criteria for dl1 parameters checked for telescope events to enter into stereo reconstruction StereoQualityQuery: # list of tuples of (' 3'),]``. You may # use ``numpy`` as ``np`` and ``astropy.units`` as ``u``, but no other modules. #quality_criteria: traitlets.Undefined # Quality criteria for machine learning models with different defaults MLQualityQuery: # list of tuples of (' 3'),]``. You may # use ``numpy`` as ``np`` and ``astropy.units`` as ``u``, but no other modules. #quality_criteria: traitlets.Undefined # Component to tune simulated background to overserved NSB values. A differentiation between bright and dim pixels is taking place because # this happens at DL1a level and in general the integration window would change for peak-searching extraction algorithms with different # background levels introducing a bias to the charge in dim pixels. ImageModifier: # extra bias to add in dim pixels. #noise_bias_dim_pixels: traitlets.Undefined # If True subtract the expected noise from the image. #noise_correct_bias: traitlets.Undefined # expected extra noise in bright pixels. #noise_level_bright_pixels: traitlets.Undefined # expected extra noise in dim pixels. #noise_level_dim_pixels: traitlets.Undefined # separation between dim and bright pixels. #noise_transition_charge: traitlets.Undefined # Fraction of light to move to each neighbor. #psf_smear_factor: traitlets.Undefined # Seed for the random number generator rng_seed: 1337 # Check that an event has one of the allowed types EventTypeFilter: # The allowed types. Set to None to allow all types.Possible values: FLATFIELD or 0, SINGLE_PE or 1, SKY_PEDESTAL or 2, DARK_PEDESTAL or 3, # ELECTRONIC_PEDESTAL or 4, OTHER_CALIBRATION or 15, MUON or 16, HARDWARE_STEREO or 17, DAQ or 24, SUBARRAY or 32, UNKNOWN or 255. allowed_types: None # Predict absolute value and sign for disp origin reconstruction for each telescope. DispReconstructor: # Features to use for both models #features: traitlets.Undefined # If given, load serialized model from this path load_path: None # If True, the model is trained to predict the natural logarithm of the absolute value. log_target: False # Which scikit-learn regression model to use. norm_cls: None # kwargs for the sklearn regressor #norm_config: traitlets.Undefined prefix: 'disp' # Which scikit-learn classification model to use. sign_cls: None # kwargs for the sklearn classifier #sign_config: traitlets.Undefined # Which stereo combination method to use. Possible values: ['StereoMeanCombiner'] stereo_combiner_cls: 'StereoMeanCombiner' # This class is a simple re-implementation of Hillas parameter based event reconstruction. e.g. https://arxiv.org/abs/astro-ph/0607333 HillasIntersection: # name of atmosphere profile to use atmosphere_profile_name: paranal # Weighting Method name weighting: Konrad # Use a scikit-learn regression model per telescope type to predict primary energy EnergyRegressor: # Features to use for this model #features: traitlets.Undefined # If given, load serialized model from this path load_path: None # If True, the model is trained to predict the natural logarithm. log_target: False # Which scikit-learn regression model to use. model_cls: None # kwargs for the sklearn model #model_config: traitlets.Undefined # Prefix for the output of this model. If None, ``model_cls`` is used. prefix: 'None' # Which stereo combination method to use. Possible values: ['StereoMeanCombiner'] stereo_combiner_cls: 'StereoMeanCombiner' # Predict dl2 particle classification ParticleClassifier: # Features to use for this model #features: traitlets.Undefined # The label to fill in case no prediction could be made invalid_class: -1 # If given, load serialized model from this path load_path: None # Which scikit-learn classification model to use. model_cls: None # kwargs for the sklearn model #model_config: traitlets.Undefined # Particle id (in simtel system) of the positive class. Default is 0 for gammas. positive_class: 0 # Prefix for the output of this model. If None, ``model_cls`` is used. prefix: 'None' # Which stereo combination method to use. Possible values: ['StereoMeanCombiner'] stereo_combiner_cls: 'StereoMeanCombiner'