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

First modules ported from CLICdp-Note-2019-006

parent 88d98ccd
Pipeline #1261826 passed with stages
in 15 minutes and 48 seconds
...@@ -7,31 +7,26 @@ ...@@ -7,31 +7,26 @@
### Description ### Description
This module performs translational and rotational DUT alignment. The alignment is performed with respect to the reference plane set in the configuration file. This module performs translational and rotational DUT alignment. The alignment is performed with respect to the reference plane set in the configuration file.
This module uses tracks for alignment. The module moves the detector is is instantiated for and minimises the unbiased residuals calculated from the track intercepts with the plane. This module uses tracks for alignment. The module moves the detector it is instantiated for and minimizes the unbiased residuals calculated from the track intercepts with the plane.
### Parameters ### Parameters
* `iterations`: Number of times the chosen alignment method is to be iterated. Default value is `3`. * `iterations`: Number of times the chosen alignment method is to be iterated. Default value is `3`.
* `align_position`: Boolean to select whether to align the X and Y displacements of the detector or not. Note that the Z displacement is never aligned. The default value is `true`. * `align_position`: Boolean to select whether to align the X and Y displacements of the detector or not. Note that the Z displacement is never aligned. The default value is `true`.
* `align_orientation`: Boolean to select whether to align the three rotations of the detector under consideration or not. The default value is `true`. * `align_orientation`: Boolean to select whether to align the three rotations of the detector under consideration or not. The default value is `true`.
* `prune_tracks`: Boolean to set if tracks with a number of associated clusters > `max_associated_clusters` or with a track chi^2 > `max_track_chi2ndof` should be excluded from use in the alignment. The number of discarded tracks is outputted on terminal. Default is `false`. * `prune_tracks`: Boolean to set if tracks with a number of associated clusters > `max_associated_clusters` or with a track chi^2 > `max_track_chi2ndof` should be excluded from use in the alignment. The number of discarded tracks is written to the terminal. Default is `false`.
* `max_associated_clusters`: Maximum number of associated clusters per track allowed when `prune_tracks = true` for the track to be used in the alignment. Default value is `1`. * `max_associated_clusters`: Maximum number of associated clusters per track allowed when `prune_tracks = true` for the track to be used in the alignment. Default value is `1`.
* `max_track_chi2ndof`: Maximum track chi^2 value allowed when `prune_tracks = true` for the track to be used in the alignment. Default value is `10.0`. * `max_track_chi2ndof`: Maximum track chi^2 value allowed when `prune_tracks = true` for the track to be used in the alignment. Default value is `10.0`.
### Plots produced ### Plots produced
For the detector under consideration, the following plots are produced: For the DUT, the following plots are produced:
* Residual in X (calculated in local coordinates)
* Residual in Y
* Profile plot of residual in X vs. X position
* Profile plot of residual in X vs. Y position
* Profile plot of residual in Y vs. X position
* Profile plot of residual in Y vs. Y position
* Residuals in X and Y (calculated in local coordinates)
* Profile plot of residual in X vs. X, X vs. Y, Y vs. X and Y vs. Y position
### Usage ### Usage
```toml ```toml
[Corryvreckan] [Corryvreckan]
# The global track limit can be used to restrict the alignment: # The global track limit can be used to reduce the run time:
number_of_tracks = 200000 number_of_tracks = 200000
[AlignmentDUTResidual] [AlignmentDUTResidual]
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
**Status**: Work in progress **Status**: Work in progress
### Description ### Description
This implementation of the Millepede module has been taken from the [Kepler framework](https://gitlab.cern.ch/lhcb/Kepler) used for test beam data analysis within the LHCb collaboration. It has been written by Christoph Hombach and has seen contributions from Tim Evans and Heinrich Schindler. This version is only slightly adapted to the Corryvreckan framework. This implementation of the Millepede module has been taken from the [Kepler framework](https://gitlab.cern.ch/lhcb/Kepler) used for test beam data analysis within the LHCb collaboration. It has been written by Christoph Hombach and has seen contributions from Tim Evans and Heinrich Schindler. This version is adapted to the Corryvreckan framework.
The Millepede algorithm allows a simultaneous fit of both the tracks and the alignment constants. The Millepede algorithm allows a simultaneous fit of both the tracks and the alignment constants.
...@@ -18,8 +18,8 @@ is `false`. ...@@ -18,8 +18,8 @@ is `false`.
* `residual_cut`: Residual cut to reject a track as an outlier. Default value is `0.05mm`; * `residual_cut`: Residual cut to reject a track as an outlier. Default value is `0.05mm`;
* `residual_cut_init`: Initial residual cut for outlier rejection in the first iteration. This value is applied for the first iteration and replaced by `residual_cut` thereafter. Default value is `0.6mm`. * `residual_cut_init`: Initial residual cut for outlier rejection in the first iteration. This value is applied for the first iteration and replaced by `residual_cut` thereafter. Default value is `0.6mm`.
* `number_of_stddev`: Cut to reject track candidates based on their Chi2/ndof value. Default value is `0`, i.e. the feature is disabled. * `number_of_stddev`: Cut to reject track candidates based on their Chi2/ndof value. Default value is `0`, i.e. the feature is disabled.
* `sigmas`: Uncertainties for each of the alignment parameters. Defaults to `0.05, 0.05, 0.5, 0.005, 0.005, 0.005`. * `sigmas`: Uncertainties for each of the alignment parameters described above, in their respective units. Defaults to `50um, 50um, 50um, 0.005rad, 0.005rad, 0.005rad`.
* `convergence`: Convergence value at which the module stops iterating. Default value is `10e-5`. * `convergence`: Convergence value at which the module stops iterating. It is defined as the sum of all residuals divided by the number of free parameters. Default value is `10e-5`.
### Usage ### Usage
```toml ```toml
......
...@@ -18,18 +18,15 @@ For each telescope detector except the reference plane, this method moves the de ...@@ -18,18 +18,15 @@ For each telescope detector except the reference plane, this method moves the de
* `max_track_chi2ndof`: Maximum track chi^2 value allowed when `prune_tracks = true` for the track to be used in the alignment. Default value is `10.0`. * `max_track_chi2ndof`: Maximum track chi^2 value allowed when `prune_tracks = true` for the track to be used in the alignment. Default value is `10.0`.
### Plots produced ### Plots produced
For each detector the following plots are produced: For each detector, the following plots are produced:
* Translational shift along X-axis vs. iteration number * Graphs of the translational shifts along the X/Y-axis vs. the iteration number
* Translational shift along Y-axis vs. iteration number * Graphs of the rotational shifts along the X/Y/Z-axis vs. the iteration number
* Rotational shift around X-axis vs. iteration number
* Rotational shift around Y-axis vs. iteration number
* Rotational shift around Z-axis vs. iteration number
### Usage ### Usage
```toml ```toml
[Corryvreckan] [Corryvreckan]
# The global track limit can be used to restrict the alignment: # The global track limit can be used to reduce the run time:
number_of_tracks = 200000 number_of_tracks = 200000
[AlignmentTrackChi2] [AlignmentTrackChi2]
......
...@@ -2,42 +2,34 @@ ...@@ -2,42 +2,34 @@
**Maintainer**: Simon Spannagel (<simon.spannagel@cern.ch>) **Maintainer**: Simon Spannagel (<simon.spannagel@cern.ch>)
**Module Type**: *DUT* **Module Type**: *DUT*
**Detector Type**: *all* **Detector Type**: *all*
**Status**: Work in progress **Status**: Functional
### Description ### Description
Generic analysis module for all prototypes. This module is still work in progress, changes to functionality and behaviour are to be expected. Generic analysis module for all prototypes.
### Parameters ### Parameters
* `time_cut_frameedge`: Parameter to discard telescope tracks at the frame edges (start and end of the current CLICpix2 frame). Defaults to `20ns`. * `time_cut_frameedge`: Parameter to discard telescope tracks at the frame edges (start and end of the current CLICpix2 frame). Defaults to `20ns`.
* `chi2ndof_cut`: Acceptance criterion for telescope tracks, defaults to a value of `3`. * `chi2ndof_cut`: Acceptance criterion for the maximum telescope tracks chi2/ndf, defaults to a value of `3`.
* `use_closest_cluster`: If a track has more than one associated cluster the cluster with the smallest distance to the track is used. Defaults to `true` * `use_closest_cluster`: If `true` the cluster with the smallest distance to the track is used if a track has more than one associated cluster. If `false`, loop over all associated clusters. Defaults to `true`.
### Plots produced ### Plots produced
* 2D Map of associated cluster positions
* 2D Map of cluster sizes for associated clusters For the DUT, the following plots are produced:
* 2D Map of cluster charge values from associated clusters
* 2D Map of associated hits * 2D histograms:
* 2D Map of tracks not associated to a cluster * Maps of the position, size, and charge/raw value of associated clusters
* 2D Map of associated hits within the defined region-of-interest * Maps of all pixels of associated clusters and those within the region-of-interest
* Distribution of pixel raw value (ToT, ADC, ...) values from associated clusters * Maps of the in-pixel efficiencies in local/global coordinates
* 2D Map of pixel raw value (ToT, ADC, ...) values from associated clusters * Maps of matched/non-matched track positions
* Number of tracks discarded by a given cut * 1D histograms:
* Track residuals in X and Y * Histograms of the cluster size of associated clusters in X/Y
* Track residuals for 1-pixel-clusters in X and Y * Histogram of the charge/raw values of associated clusters
* Track residuals for 2-pixel-clusters in X and Y * Various histograms for track residuals for different cluster sizes
* Distribution of cluster charge values from associated clusters
* Distribution of sizes from associated clusters
* Normalised distribution of sizes from associated clusters
* Distribution of sizes from associated clusters in column
* Distribution of sizes from associated clusters in rows
* 2D Map of in-pixel efficiency
* 2D Map of the chip efficiency in local coordinates
* 2D Map of the chip efficiency on global coordinates
* 2D Map of track positions associated to a cluster
* 2D Map of track positions not associated to a cluster
### Usage ### Usage
```toml ```toml
[CLICpix2Analysis] [AnalysisDUT]
timeCutFrameEdge = 50ns time_cut_frameedge = 50ns
chi2ndof_cut = 5.
use_closest_cluster = false
``` ```
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