Commit e8eb170c authored by Simon Spannagel's avatar Simon Spannagel
Browse files

Update another 7 modules from CLICdp-Note -2019-006

parent 18c4dbc7
Pipeline #1262136 passed with stages
in 14 minutes and 27 seconds
......@@ -2,13 +2,13 @@
**Maintainer**: Daniel Hynds (<daniel.hynds@cern.ch>), Simon Spannagel (<simon.spannagel@cern.ch>)
**Module Type**: *DETECTOR*
**Detector Type**: *all*
**Status**: Under development
**Status**: Work in progress
### Description
This module calculates the $`\eta`$-distributions for two-pixel clusters of any detector in analysis by comparing the in-pixel track position and the calculated cluster centre position. Histograms for all available detectors are filled for both X and Y coordinate.
This module performs a fit to obtain corrections for non-linear charge sharing, also know as the $`\eta`$-distribution. The distributions are calculated for two-pixel clusters of any detector in analysis by comparing the in-pixel track position and the calculated cluster center position. Histograms for all available detectors are filled for both X and Y coordinate.
At the end of the run, fits to the recorded profiles are performed using the provided formulas. A printout of the resulting fit parameters is provided in the format read by the EtaCorrection module for convenience.
In order to measure the correct $`\eta`$-distribution, no additional $`\eta`$-correction should be applied during this calculation, i.e. by using the EtaCorrection module.
In order to measure the correct $`\eta`$-distribution, no additional $`\eta`$-correction should be applied before this calculation, i.e. by using the EtaCorrection module.
### Parameters
* `chi2ndof_cut`: Track quality cut on its Chi2 over numbers of degrees of freedom. Default value is `100`.
......@@ -24,4 +24,5 @@ For each detector the following plots are produced:
```toml
[EtaCalculation]
chi2ndof_cut = 100
eta_formula_x = [0] + [1]*x + [2]*x^2 + [3]*x^3 + [4]*x^4 + [5]*x^5
```
......@@ -2,10 +2,10 @@
**Maintainer**: Daniel Hynds (<daniel.hynds@cern.ch>), Simon Spannagel (<simon.spannagel@cern.ch>)
**Module Type**: *DETECTOR*
**Detector Type**: *all*
**Status**: Under development
**Status**: Work in progress
### Description
This module applies previously determined $`\eta`$-corrections to cluster positions of any detector. Corrections can be applied to any cluster read from the clipboard. The correction function as well as the parameters for each of the detectors can be given separately for X and Y via the configuration file.
This module applies previously determined $`\eta`$-corrections to cluster positions of any detector in order to correct for non-linear charge sharing. Corrections can be applied to any cluster read from the clipboard. The correction function as well as the parameters for each of the detectors can be given separately for X and Y via the configuration file.
This module does not calculate the $`\eta`$ distribution.
......
......@@ -5,12 +5,12 @@
**Status**: Functional
### Description
This module reads in data for the ATLASpix device from an input file created by the Caribou readout system. It supports binary output format.
This module reads in data for the ATLASpix device from an input file created by the Caribou readout system. It supports the binary output format, i.e. `output = 'binary'` in the configuration file for Caribou.
The module opens and reads one data file named `data.bin` in the specified input directory. For each hit it, stores the detectorID, row, column, and ToT.
Since a calibration is not yet implemented, the pixel charge is set to the pixel ToT.
It requires either another event loader of another detector type before, which defines the event start and end times by placing an Event definition on the clipboard or an instance of the `Metronome` module which provides this information.
This module requires either another event loader of another detector type before which defines the event on the clipboard or an instance of the Metronome module which provides this information.
The module opens and reads one data file named `data.bin` in the specified input directory and for each hit with a timestamp between beginning and end of the currently processed Corryvreckan event it stores the detectorID, row, column, timestamp, and ToT on the clipboard.
Since a calibration is not yet implemented, the pixel charge is set to the pixel ToT.
### Parameters
* `input_directory`: Path to the directory containing the `data.bin` file. This path should lead to the directory above the ALTASpix directory, as this string is added to the input directory in the module.
......@@ -21,30 +21,18 @@ This module requires either another event loader of another detector type before
* `buffer_depth`: Depth of buffer in which pixel hits are timesorted before being added to an event. If set to `1`, effectively no timesorting is done. Default is `1000`.
### Plots produced
* 2D hit map
* 2D hit map for high ToT events (ToT>high_tot_cut)
* 2D ToT-weighted hit map
* 1D pixel ToT histogram
* 1D pixel ToT histogram before timestamp overflow correction
* 1D pixels charge histogram (currently not calibrated -> equivalent to ToT)
* 1D pixel ToA histogram
* 1D pixel multiplicity histogram
* 1D pixels over time histogram (3 second range)
* 1D pixels over time histogram (3000 second range)
* 1D pixel TS1 histogram
* 1D pixel TS2 histogram
* 1D pixel TS1 bits histogram
* 1D pixel TS2 bits histogram
* 1D pixel TS1 histogram for high ToT events (ToT>high_tot_cut)
* 1D pixel TS2 histogram for high ToT events (ToT>high_tot_cut)
* 1D pixel TS1 bits histogram for high ToT events (ToT>high_tot_cut)
* 1D pixel TS2 bits histogram for high ToT events (ToT>high_tot_cut)
* 1D trigger per event histogram
* 1D pixel time minus event begin residual histogram
* 1D pixel time minus event begin residual histogram (larger interval, coarser binning)
* 2D pixel time minus event begin residual over time histogram
* map of all available 1D pixel time minus trigger time residual histograms
* map of all available 2D pixel time minus trigger time residual over time histograms
For the DUT, the following plots are produced:
* 2D histograms:
* Regular and ToT-weighted hit maps
* Map of the difference of the event start and the pixel timestamp over time
* Map of the difference of the trigger time and the pixel timestamp over time
* 1D histograms:
* Various histograms of the pixel information: ToT, charge, ToA, TS1, TS2, TS1-bits, TS2-bits
* Histograms of the pixel multiplicity, triggers per event, and pixels over time
* Various timing histograms
### Usage
```toml
......
......@@ -7,12 +7,15 @@
### Description
This module reads in data for a CLICpix device from an input file.
The module opens and reads one data file in the specified input directory with the ending `.dat`. For each hit it stores the detectorID, row, column, and ToT. The shutter rise and fall time information are used to set the current time and event length.
The module opens and reads one data file in the specified input directory with the ending `.dat`. For each hit it stores the detectorID, row, column, and ToT. The shutter rise and fall time information are used to define the current event on the clipboard.
### Parameters
* `input_directory`: Path to the directory containing the `.dat` file.
### Plots produced
For each detector, the following plots are produced:
* 2D Hit map
* 1D Pixel ToT histogram
* 1D Pixel multiplicity histogram
......@@ -20,6 +23,6 @@ The module opens and reads one data file in the specified input directory with t
### Usage
```toml
[CLICpixEventLoader]
[EventLoaderCLICpix]
input_directory = /user/data/directory/CLICpix/
```
......@@ -5,30 +5,32 @@
**Status**: Functional
### Description
This module reads in data for a CLICpix2 device from an input file. It defines the reconstruction time structure as being the CLICpix2 frame by setting the `eventStart` to the begin of the frame, the `eventEnd` to the end of the shutter and the `eventLength` to the length of the readout frame. These times are stored on the persistent clipboard storage and can be picked up by other modules to allow synchronization.
Thus, this module should not be used in conjunction with the Metronome but should be placed at the very beginning of the module chain.
This module reads in data for a CLICpix2 device from an input file. This module always attempts to define the current event on the clipboard using the begin and end of the shutter read from data.
Thus, this module can only be used as the first event loader module in the reconstruction chain.
The module opens and reads one data file in the specified input directory.
The input directory is searched for a data file with the file extension `.raw` and a pixel matrix configuration file required for decoding with the file extension `.cfg` and a name starting with `matrix`.
The data is decoded using the CLICpix2 data decoder shipped with the Peary DAQ framework. For each pixel hit, the detectorID, the pixel's column and row address as well as ToT and ToA values are stored, depending on their availability from data.
If no ToA information is available, the pixel timestamp is set to the center of the frame.
The shutter rise and fall time information are used to set the current time and event length as described above.
The data is decoded using the CLICpix2 data decoder shipped with the Peary DAQ framework. For each pixel hit, the detectorID, the pixel's column and row address as well as ToT and ToA values are stored, depending on their availability from data. If no ToA information is available, the pixel timestamp is set to the center of the frame.
+The shutter rise and fall time information are used to set the current time and event length as described above.
### Parameters
* `input_directory`: Path to the directory containing the `.csv` file. This path should lead to the directory above the CLICpix directory, as this string is added onto the input directory in the module.
* `discard_zero_tot`: Discard all pixel hits with a ToT value of zero. Defaults to `false`.
### Plots produced
* 2D Hit map
* 2D maps of masked pixels, encoded with online masked (value 1) and offline masked (value 2), or in both (value 3)
* 1D Pixel ToT histogram (if value is available)
* 1D Pixel ToA histogram (if value is available)
* 1D Pixel particle count histogram (if value is available)
* 2D map of profiles for ToT values
* 1D Pixel multiplicity histogram
For each detector, the following plots are produced:
* 2D histograms:
* Hit map
* Maps of masked pixels
* Maps of pixel ToT vs. ToA
* 1D histograms:
* Histograms of the pixel ToT, ToA, and particle count (if values are available)
* Histogram of the pixel multiplicity
### Usage
```toml
[CLICpix2EventLoader]
[EventLoaderCLICpix2]
input_directory = /user/data/directory
```
......@@ -6,7 +6,7 @@
### Description
This module allows data recorded by EUDAQ and stored in the EUDAQ-native raw format to be read into Corryvreckan. The EUDAQ decoder plugins are used to transform the data into the `StandardPlane` event type before storing the individual `Pixel` objects on the Corryvreckan clipboard.
The detector IDs are taken from the plane name and IDs, two possible naming options for Corryvreckan are available: When setting `long_detector_id = true`, the name of the sensor plane and the ID are used in the form `<name>_<ID>`, while only the ID is used otherwise as `plane<ID>`. Only detectors known to Corryvreckan are decoded and stored, data from other detectors are ignored.
The detector IDs are taken from the plane name and IDs, two possible naming options for Corryvreckan are available: When setting `long_detector_id = true`, the name of the sensor plane and the ID are used in the form `<name>_<ID>`, while only the ID is used otherwise as `plane<ID>`. Only detectors listed in the Corryvreckan geometry are decoded and stored, data from other detectors available in the same EUDAQ event are ignored.
### Requirements
This module requires an installation of [EUDAQ 1.x](https://github.com/eudaq/eudaq). The installation path should be set as environment variable via
......
# EventLoaderEUDAQ2
**Maintainer**: Jens Kroeger (<jens.kroeger@cern.ch>), Simon Spannagel (<simon.spannagel@cern.ch>)
**Module Type**: *DETECTOR*
**Status**: under development
**Status**: Functional
### Description
This module allows data recorded by EUDAQ2 and stored in a EUDAQ2 binary file as raw detector data to be read into Corryvreckan.
......@@ -49,7 +49,7 @@ cmake -DEUDAQ_BUILD_EXECUTABLE=OFF -DEUDAQ_BUILD_GUI=OFF ..
```
It should be noted that individual EUDAQ2 modules should be enabled for the build, depending on the data to be processed with Corryvreckan.
To e.g. allow decoding of Caribou data, the respective EUDAQ2 module has to be built using
For instance, to allow decoding of Caribou data, the respective EUDAQ2 module has to be built using
```bash
cmake -DUSER_CARIBOU_BUILD=ON ..
......@@ -57,9 +57,9 @@ cmake -DUSER_CARIBOU_BUILD=ON ..
### Contract between EUDAQ Decoder and EventLoader
The decoder promises to
The decoder guarantees to
* return `true` only when there is a fully decoded event available and `false` in all other cases.
* not return any event before a possible T0 signal in the data.
* not return any event before a possible T0 signal in the data. This is a signal that indicates the clock reset at the beginning of the run. It can be a particular data word or the observation of the pixel timestamp jumping back to zero, depending on data format of each the detector.
* return the smallest possible granularity of data in time either as even or as sub-events within one event.
* always return valid event timestamps. If the device does not have timestamps, it should return zero for the beginning of the event and have a valid trigger number set.
* provide the detector type via the `GetDetectorType()` function in the decoded StandardEvent.
......@@ -69,38 +69,34 @@ The decoder promises to
Some data formats depend on external configuration parameters for interpretation.
The EventLoaderEUDAQ2 takes all key-value pairs available in the configuration and forwards them to the appropriate StandardEvent converter on the EUDAQ side.
It should be kept in mind that the resulting configuration strings are parsed by EUDAQ2, not by Corryvreckan, and that therefore the functionality is reduced.
For example, it does not interpret `true` or `false` alphabetic value of a Boolean variable but will return false in both cases. Thus. `key = 0` or `key = 1` have to be used in these cases.
For example, it does not interpret `true` or `false` alphabetic value of a Boolean variable but will return false in both cases. Thus `key = 0` or `key = 1` have to be used in these cases.
Also, more complex constructs such as arrays or matrices read by the Corryvreckan configuration are simply interpreted as strings.
### Parameters
* `file_name`: File name of the EUDAQ2 raw data file. This parameter is mandatory.
* `inclusive`: Boolean parameter to select whether new data should be compared to the existing Corryvreckan event in inclusive or exclusive mode. The inclusive interpretation will allow new data to be added to the event as soon as there is some overlap between the data time frame and the existing event, i.e. as soon as the end of the time frame is later than the event start or as soon as the time frame start is before the event end. In the exclusive mode, the frame will only be added to the existing event,if its start and end are both within the defined event.
* `skip_time`: Time that can be skipped at the start of a run. Default is `0ms`.
* `inclusive`: Boolean parameter to select whether new data should be compared to the existing Corryvreckan event in inclusive or exclusive mode. The inclusive interpretation will allow new data to be added to the event as soon as there is some overlap between the data time frame and the existing event, i.e. as soon as the end of the time frame is later than the event start or as soon as the time frame start is before the event end. In the exclusive mode, the frame will only be added to the existing event if its start and end are both within the defined event.
* `skip_time`: Time that can be skipped at the start of a run. All hits with earlier timestamps are discarded. Default is `0ms`.
* `get_time_residuals`: Boolean to change if time residual plots should be created. Default value is `false`.
* `get_tag_vectors`: Boolean to enable creation of EUDAQ2 event tag histograms. Default value is `false`.
* `ignore_bore`: Boolean to completely ignore the Begin-of-Run event from EUDAQ2. Default value is `true`.
* `ignore_bore`: Boolean to completely ignore the Begin-of-Run event (BORE) from EUDAQ2. Default value is `true`.
* `adjust_event_times`: Matrix that allows the user to shift the event start/end of all different types of EUDAQ events before comparison to any other Corryvreckan data. The first entry of each row specifies the data type, the second is the offset which is added to the event start and the third entry is the offset added to the event end. A usage example is shown below, double brackets are required if only one entry is provided.
* `buffer_depth`: Depth of buffer in which EUDAQ2 `StandardEvents` are timesorted. This algorithm only works for `StandardEvents` with well-defined timestamps. Setting it to `0` disables timesorting. Default is `0`.
* `shift_triggers`: Shift the trigger ID up or down when assigning it to the Corryvreckan event. This allows to correct trigger ID offsets between different devices such as the TLU and MIMOSA26.
### Plots produced
* 2D hitmap
* 1D pixel hit times (3 second range)
* 1D pixel hit times (3000 second range)
* 1D and 2D pixel raw value histograms (corresponding to chip-specific charge equivalent measurement, e.g. ToT)
* 1D pixel multiplicity per Corryvreckan event histogram
* 1D eudaq event start histogram (3 second range)
* 1D eudaq event start histogram (3000 second range)
* 1D clipboard event start histogram (3 second range)
* 1D clipboard event start histogram (3000 second range)
* 1D clipboard event end histogram
* 1D clipboard event duration histogram
* 1D pixel time minus event begin residual histogram
* 1D pixel time minus event begin residual histogram (larger interval, coarser binning)
* 2D pixel time minus event begin residual over time histogram
* map of all available 1D pixel time minus trigger time residual histograms
* 2D pixel time minus trigger time residual over time histogram for 0th trigger
* 1D triggers per event histogram
For all detectors, the following plots are produced:
* 2D histograms:
* Hit map
* Map of the pixel time minus event begin residual over time
* Map of the difference of the event start and the pixel timestamp over time
* Map of the difference of the trigger time and the pixel timestamp over time
* Profiles of the event tag data
* 1D histograms:
* Histograms of the pixel hit times, raw values, multiplicities, and pixels per event
* Histograms of the eudaq/clipboard event start/end, and durations
* Histogram of the pixel time minus event begin residual
### Usage
```toml
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment