Commit 8a9fa957 authored by Morag Jean Williams's avatar Morag Jean Williams
Browse files

Merge branch 'unify_configkeys' into 'master'

Unify Configuration Keys

Closes #46

See merge request !81
parents 98dd6f1f 582cfa5a
Pipeline #652109 passed with stages
in 17 minutes and 55 seconds
...@@ -62,18 +62,21 @@ The internal base units of the framework are not chosen for user convenience but ...@@ -62,18 +62,21 @@ The internal base units of the framework are not chosen for user convenience but
& & ms (millisecond) \\ & & ms (millisecond) \\
& & s (second) \\ & & s (second) \\
\midrule \midrule
\multirow{3}{*}{\textit{Energy}} & \multirow{4}{*}{MeV (megaelectronvolt)} & eV (electronvolt) \\ \multirow{3}{*}{\textit{Energy}} & \multirow{3}{*}{MeV (megaelectronvolt)} & eV (electronvolt) \\
& & keV (kiloelectronvolt) \\ & & keV (kiloelectronvolt) \\
& & GeV (gigaelectronvolt) \\ & & GeV (gigaelectronvolt) \\
\midrule \midrule
\textit{Temperature} & K (kelvin) & --- \\ \textit{Temperature} & K (kelvin) & --- \\
\midrule \midrule
\multirow{2}{*}{\textit{Charge}} & e (elementary charge) & C (coulomb) \\ \multirow{3}{*}{\textit{Charge}} & \multirow{3}{*}{e (elementary charge)} & ke (kiloelectrons) \\
& & ke (kiloelectrons) \\ & & fC (femtocoulomb) \\
& & C (coulomb) \\
\midrule \midrule
\multirow{2}{*}{\textit{Voltage}} & \multirow{2}{*}{MV (megavolt)} & V (volt) \\ \multirow{2}{*}{\textit{Voltage}} & \multirow{2}{*}{MV (megavolt)} & V (volt) \\
& & kV (kilovolt) \\ & & kV (kilovolt) \\
\midrule \midrule
\textit{Magnetic field strength} & T (tesla) & mT (millitesla) \\
\midrule
\multirow{2}{*}{\textit{Angle}} & \multirow{2}{*}{rad (radian)} & deg (degree) \\ \multirow{2}{*}{\textit{Angle}} & \multirow{2}{*}{rad (radian)} & deg (degree) \\
& & mrad (milliradian) \\ & & mrad (milliradian) \\
\bottomrule \bottomrule
...@@ -194,10 +197,10 @@ All supported rotations are extrinsic active rotations, i.e. the vector itself i ...@@ -194,10 +197,10 @@ All supported rotations are extrinsic active rotations, i.e. the vector itself i
\item The intrinsic resolution of the detector can be specified using the \parameter{resolution} parameter, a two-dimensional vector holding the position resolution for the column and row directions. \item The intrinsic resolution of the detector can be specified using the \parameter{resolution} parameter, a two-dimensional vector holding the position resolution for the column and row directions.
\item The \parameter{time_offset} can be used to shift the individual detector time frames of reference to e.g.\ account for time of flight effects between different detector planes by adding a fixed offset. \item The \parameter{time_offset} can be used to shift the individual detector time frames of reference to e.g.\ account for time of flight effects between different detector planes by adding a fixed offset.
\item Pixels to be masked in the offline analysis can be placed in a separate file specified by the \parameter{mask_file} parameter explained in detail in Section~\ref{sec:masking}. \item Pixels to be masked in the offline analysis can be placed in a separate file specified by the \parameter{mask_file} parameter explained in detail in Section~\ref{sec:masking}.
\item A region of interest in the given detector can be defined using the \parameter{roi} parameter. More details on this functionality cna be found in Section~\ref{sec:roi}. \item A region of interest in the given detector can be defined using the \parameter{roi} parameter. More details on this functionality can be found in Section~\ref{sec:roi}.
\end{itemize} \end{itemize}
An example configuration file describing a setup with one CLICpix2 detector (named \parameter{016_CP_PS} and two Timepix3~\cite{timepix} detectors (\parameter{W0013_D04}and \parameter{W0013_J05}) is the following: An example configuration file describing a setup with one CLICpix2 detector named \parameter{016_CP_PS} and two Timepix3~\cite{timepix} detectors (\parameter{W0013_D04} and \parameter{W0013_J05}) is the following:
\begin{minted}[frame=single,framesep=3pt,breaklines=true,tabsize=2,linenos]{ini} \begin{minted}[frame=single,framesep=3pt,breaklines=true,tabsize=2,linenos]{ini}
[W0013_D04] [W0013_D04]
...@@ -215,6 +218,7 @@ orientation = -0.02deg, 0.0deg, -0.015deg ...@@ -215,6 +218,7 @@ orientation = -0.02deg, 0.0deg, -0.015deg
orientation_mode = "xyz" orientation_mode = "xyz"
pixel_pitch = 25um, 25um pixel_pitch = 25um, 25um
position = -0.9mm, 0.21mm, 106.0mm position = -0.9mm, 0.21mm, 106.0mm
role = "dut"
type = "CLICpix2" type = "CLICpix2"
[W0013_J05] [W0013_J05]
...@@ -223,6 +227,7 @@ orientation = -9deg, 9deg, 0deg ...@@ -223,6 +227,7 @@ orientation = -9deg, 9deg, 0deg
orientation_mode = "xyz" orientation_mode = "xyz"
pixel_pitch = 55um, 55um pixel_pitch = 55um, 55um
position = 0um, 0um, 204mm position = 0um, 0um, 204mm
role = "reference"
type = "Timepix3" type = "Timepix3"
\end{minted} \end{minted}
......
...@@ -35,8 +35,9 @@ These are specified by adding a dot (\texttt{.}) between the detector and the ac ...@@ -35,8 +35,9 @@ These are specified by adding a dot (\texttt{.}) between the detector and the ac
No interaction with the framework is possible during the reconstruction. Signals can however be send using keyboard shortcuts to terminate the run, either gracefully or with force. The executable understand the following signals: No interaction with the framework is possible during the reconstruction. Signals can however be send using keyboard shortcuts to terminate the run, either gracefully or with force. The executable understand the following signals:
\begin{itemize} \begin{itemize}
\item \texttt{CTRL+C} (SIGINT): Request a graceful shutdown of the reconstruction. This means the currently processed event is finished, while all other events requested in the configuration file are ignored. After finishing the event, the finalization stage is executed for every module to ensure all modules finish properly. \item SIGINT (\texttt{CTRL+C}): Request a graceful shutdown of the reconstruction. This means the currently processed event is finished, while all other events requested in the configuration file are ignored. After finishing the event, the finalization stage is executed for every module to ensure all modules finish properly.
\item \texttt{CTRL+\textbackslash} (SIGQUIT): Forcefully terminates the framework. It is not recommended to use this signal as it will normally lead to the loss of all generated data. This signal should only be used when graceful termination is for any reason not possible. \item SIGTERM: Same as SIGINT, request a graceful shutdown of the reconstruction. This signal is emitted e.g.\ by the \command{kill} command or by cluster computing schedulers to ask for a termination of the job.
\item SIGQUIT (\texttt{CTRL+\textbackslash}): Forcefully terminates the framework. It is not recommended to use this signal as it will normally lead to the loss of all generated data. This signal should only be used when graceful termination is for any reason not possible.
\end{itemize} \end{itemize}
\section{The Clipboard} \section{The Clipboard}
...@@ -65,6 +66,7 @@ The currently available global parameters are: ...@@ -65,6 +66,7 @@ The currently available global parameters are:
\begin{itemize} \begin{itemize}
\item \parameter{detectors_file}: Location of the file describing the detector configuration described in Section~\ref{sec:detector_config}. \item \parameter{detectors_file}: Location of the file describing the detector configuration described in Section~\ref{sec:detector_config}.
The only \textit{required} global parameter: the framework will fail to start if it is not specified. The only \textit{required} global parameter: the framework will fail to start if it is not specified.
This parameter can take multiple paths, all provided files will be combined into one geometry description of the setup.
\item \parameter{detectors_file_updated}: Location of the file that the (potentially) updated detector configuration should be written into. If this file does not already exist, it will be created. If the same file is given as for \parameter{detectors_file}, the file is overwritten with the updated values. \item \parameter{detectors_file_updated}: Location of the file that the (potentially) updated detector configuration should be written into. If this file does not already exist, it will be created. If the same file is given as for \parameter{detectors_file}, the file is overwritten with the updated values.
\item \parameter{histogram_file}: Location of the file where the ROOT output histograms of all modules will be written to. The file extension \texttt{.root} will be appended if not present. Directories within the ROOT file will be created automatically for all modules. \item \parameter{histogram_file}: Location of the file where the ROOT output histograms of all modules will be written to. The file extension \texttt{.root} will be appended if not present. Directories within the ROOT file will be created automatically for all modules.
\item \parameter{number_of_events}: Determines the total number of events the framework should process, negative numbers allow processing of all data available. \item \parameter{number_of_events}: Determines the total number of events the framework should process, negative numbers allow processing of all data available.
...@@ -73,7 +75,7 @@ Defaults to $-1$. ...@@ -73,7 +75,7 @@ Defaults to $-1$.
\item \parameter{number_of_tracks}: Determines the total number of tracks the framework should reconstruct, negative numbers indicate no limit on the number of reconstructed tracks. \item \parameter{number_of_tracks}: Determines the total number of tracks the framework should reconstruct, negative numbers indicate no limit on the number of reconstructed tracks.
After reaching the specified number of events, reconstruction is stopped. After reaching the specified number of events, reconstruction is stopped.
Defaults to $-1$. Defaults to $-1$.
\item \parameter{run_time}: Determines the wall-clock time of data acquisition the framework should reconstruct up until. Negative numbers inidcate no limit on the time slice to reconstruct. \item \parameter{run_time}: Determines the wall-clock time of data acquisition the framework should reconstruct up until. Negative numbers indicate no limit on the time slice to reconstruct.
Defaults to $-1$. Defaults to $-1$.
\item \parameter{log_level}: Specifies the lowest log level which should be reported. \item \parameter{log_level}: Specifies the lowest log level which should be reported.
Possible values are \texttt{FATAL}, \texttt{STATUS}, \texttt{ERROR}, \texttt{WARNING}, \texttt{INFO} and \texttt{DEBUG}, where all options are case-insensitive. Possible values are \texttt{FATAL}, \texttt{STATUS}, \texttt{ERROR}, \texttt{WARNING}, \texttt{INFO} and \texttt{DEBUG}, where all options are case-insensitive.
......
...@@ -118,7 +118,7 @@ $ cmake -DCMAKE_INSTALL_PREFIX=../install/ \ ...@@ -118,7 +118,7 @@ $ cmake -DCMAKE_INSTALL_PREFIX=../install/ \
\end{verbatim} \end{verbatim}
\subsection{Compilation and installation} \subsection{Compilation and installation}
Compiling the framework is now a single command in the build folder created earlier (replacing \textit{\textless number\_of\_cores> \textgreater} with the number of cores to use for compilation): Compiling the framework is now a single command in the build folder created earlier (replacing \textit{\textless number\_of\_cores\textgreater} with the number of cores to use for compilation):
\begin{verbatim} \begin{verbatim}
$ make -j<number_of_cores> $ make -j<number_of_cores>
\end{verbatim} \end{verbatim}
......
...@@ -71,11 +71,10 @@ The section of a configuration file template with variable geometry file and DUT ...@@ -71,11 +71,10 @@ The section of a configuration file template with variable geometry file and DUT
```toml ```toml
[Corryvreckan] [Corryvreckan]
detectors_file = "@telescopeGeometry@" detectors_file = "@telescopeGeometry@"
histogramFile = "histograms_run@RunNumber@.root" histogram_file = "histograms_run@RunNumber@.root"
number_of_events = 5000000 number_of_events = 5000000
DUT = "@DUTName@"
log_level = WARNING log_level = WARNING
``` ```
...@@ -84,11 +83,10 @@ When `jobsub` is executed, these placeholders are replaced with user-defined val ...@@ -84,11 +83,10 @@ When `jobsub` is executed, these placeholders are replaced with user-defined val
```toml ```toml
[Corryvreckan] [Corryvreckan]
detectors_file = "my_telescope_Nov2017_1.conf" detectors_file = "my_telescope_Nov2017_1.conf"
histogramFile = "histograms_run999.root" histogram_file = "histograms_run999.root"
number_of_events = 5000000 number_of_events = 5000000
DUT = "W0019_G07"
log_level = WARNING log_level = WARNING
``` ```
......
...@@ -701,7 +701,7 @@ void ModuleManager::finaliseAll() { ...@@ -701,7 +701,7 @@ void ModuleManager::finaliseAll() {
// Write the output histogram file // Write the output histogram file
m_histogramFile->Close(); m_histogramFile->Close();
LOG(STATUS) << "Wrote histogram output file to " << global_config.getPath("histogramFile"); LOG(STATUS) << "Wrote histogram output file to " << global_config.getPath("histogram_file");
// Write out update detectors file: // Write out update detectors file:
if(global_config.has("detectors_file_updated")) { if(global_config.has("detectors_file_updated")) {
......
...@@ -25,11 +25,11 @@ AlignmentDUTResidual::AlignmentDUTResidual(Configuration config, std::shared_ptr ...@@ -25,11 +25,11 @@ AlignmentDUTResidual::AlignmentDUTResidual(Configuration config, std::shared_ptr
nIterations = m_config.get<size_t>("iterations", 3); nIterations = m_config.get<size_t>("iterations", 3);
m_pruneTracks = m_config.get<bool>("prune_tracks", false); m_pruneTracks = m_config.get<bool>("prune_tracks", false);
m_alignPosition = m_config.get<bool>("alignPosition", true); m_alignPosition = m_config.get<bool>("align_position", true);
if(m_alignPosition) { if(m_alignPosition) {
LOG(INFO) << "Aligning positions"; LOG(INFO) << "Aligning positions";
} }
m_alignOrientation = m_config.get<bool>("alignOrientation", true); m_alignOrientation = m_config.get<bool>("align_orientation", true);
if(m_alignOrientation) { if(m_alignOrientation) {
LOG(INFO) << "Aligning orientations"; LOG(INFO) << "Aligning orientations";
} }
......
...@@ -12,11 +12,11 @@ This module uses tracks for alignment. The module moves the detector is is insta ...@@ -12,11 +12,11 @@ This module uses tracks for alignment. The module moves the detector is is insta
### Parameters ### Parameters
* `number_of_tracks`: Number of tracks used in the alignment method chosen. Default value is `20000`. * `number_of_tracks`: Number of tracks used in the alignment method chosen. Default value is `20000`.
* `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`.
* `alignPosition`: 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`.
* `alignOrientation`: 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. This parameter was designed for `alignmentMethod=1`. 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 outputted on 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 detector under consideration, the following plots are produced:
......
...@@ -21,7 +21,7 @@ AlignmentMillepede::AlignmentMillepede(Configuration config, std::vector<std::sh ...@@ -21,7 +21,7 @@ AlignmentMillepede::AlignmentMillepede(Configuration config, std::vector<std::sh
m_rescut = m_config.get<double>("residual_cut", 0.05); m_rescut = m_config.get<double>("residual_cut", 0.05);
m_rescut_init = m_config.get<double>("residual_cut_init", 0.6); m_rescut_init = m_config.get<double>("residual_cut_init", 0.6);
m_nstdev = m_config.get<int>("NStdDev", 0); m_nstdev = m_config.get<int>("number_of_stddev", 0);
m_convergence = m_config.get<double>("convergence", 0.00001); m_convergence = m_config.get<double>("convergence", 0.00001);
......
...@@ -16,7 +16,7 @@ The modules stops if the convergence, i.e. the absolute sum of all corrections o ...@@ -16,7 +16,7 @@ The modules stops if the convergence, i.e. the absolute sum of all corrections o
* `dofs`: Degrees of freedom to be aligned. This parameter should be given as vector of six boolean values for the parameters "Translation X", "Translation Y", "Translation Z", "Rotation X", "Rotation Y" and "Rotation Z". The default setting is an alignment of all parameters except for "Translation Z", i.e. `dofs = true, true, false, true, true, true`. * `dofs`: Degrees of freedom to be aligned. This parameter should be given as vector of six boolean values for the parameters "Translation X", "Translation Y", "Translation Z", "Rotation X", "Rotation Y" and "Rotation Z". The default setting is an alignment of all parameters except for "Translation Z", i.e. `dofs = true, true, false, true, true, true`.
* `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`.
* `nstddev`: 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. Defaults to `0.05, 0.05, 0.5, 0.005, 0.005, 0.005`.
* `convergence`: Convergence value at which the module stops iterating. Default value is `10e-5`. * `convergence`: Convergence value at which the module stops iterating. Default value is `10e-5`.
......
...@@ -17,11 +17,11 @@ AlignmentTrackChi2::AlignmentTrackChi2(Configuration config, std::vector<std::sh ...@@ -17,11 +17,11 @@ AlignmentTrackChi2::AlignmentTrackChi2(Configuration config, std::vector<std::sh
nIterations = m_config.get<size_t>("iterations", 3); nIterations = m_config.get<size_t>("iterations", 3);
m_pruneTracks = m_config.get<bool>("prune_tracks", false); m_pruneTracks = m_config.get<bool>("prune_tracks", false);
m_alignPosition = m_config.get<bool>("alignPosition", true); m_alignPosition = m_config.get<bool>("align_position", true);
if(m_alignPosition) { if(m_alignPosition) {
LOG(INFO) << "Aligning positions"; LOG(INFO) << "Aligning positions";
} }
m_alignOrientation = m_config.get<bool>("alignOrientation", true); m_alignOrientation = m_config.get<bool>("align_orientation", true);
if(m_alignOrientation) { if(m_alignOrientation) {
LOG(INFO) << "Aligning orientations"; LOG(INFO) << "Aligning orientations";
} }
......
...@@ -12,11 +12,11 @@ For each telescope detector except the reference plane, this method moves the de ...@@ -12,11 +12,11 @@ For each telescope detector except the reference plane, this method moves the de
### Parameters ### Parameters
* `number_of_tracks`: Number of tracks used in the alignment method chosen. Default value is `20000`. * `number_of_tracks`: Number of tracks used in the alignment method chosen. Default value is `20000`.
* `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`.
* `alignPosition`: 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`.
* `alignOrientation`: 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. This parameter was designed for `alignmentMethod=1`. 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 outputted on 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 each detector the following plots are produced: For each detector the following plots are produced:
......
...@@ -9,8 +9,8 @@ using namespace std; ...@@ -9,8 +9,8 @@ using namespace std;
AnalysisCLICpix::AnalysisCLICpix(Configuration config, std::shared_ptr<Detector> detector) AnalysisCLICpix::AnalysisCLICpix(Configuration config, std::shared_ptr<Detector> detector)
: Module(std::move(config), detector), m_detector(detector) { : Module(std::move(config), detector), m_detector(detector) {
m_associationCut = m_config.get<double>("associationCut", static_cast<double>(Units::convert(100, "um"))); m_associationCut = m_config.get<double>("association_cut", static_cast<double>(Units::convert(100, "um")));
m_proximityCut = m_config.get<double>("proximityCut", static_cast<double>(Units::convert(125, "um"))); m_proximityCut = m_config.get<double>("proximity_cut", static_cast<double>(Units::convert(125, "um")));
timepix3Telescope = m_config.get<bool>("timepix3Telescope", false); timepix3Telescope = m_config.get<bool>("timepix3Telescope", false);
} }
......
# AnalysisCLICpix # AnalysisCLICpix
**Maintainer**: Daniel Hynds (<daniel.hynds@cern.ch>) **Maintainer**: Daniel Hynds (<daniel.hynds@cern.ch>)
**Module Type**: *DUT* **Module Type**: *DUT*
**Detector Type**: *CLICpix* **Detector Type**: *CLICpix*
**Status**: Functional **Status**: Outdated
### Description ### Description
This module associates CLICpix2 DUT clusters to tracks using a spatial cut (device type not checked). A significant number of analysis plots are produced. This module associates CLICpix2 DUT clusters to tracks using a spatial cut (device type not checked). A significant number of analysis plots are produced.
### Parameters ### Parameters
* `associationCut`: Maximum distance between a track and cluster for them to be associated. Units of mm. Default value is `0.05` (50um). * `association_cut`: Maximum distance between a track and cluster for them to be associated. Units of mm. Default value is `50um`.
* `proximityCut`: Maximum distance apart two tracks are for them to be 'close' to each other. If at the CLICpix plane there are two tracks close to each other, the DUT cluster is not associated with either track. Units of mm. Default value is `0.0005` (0.5um). * `proximity_cut`: Maximum distance apart two tracks are for them to be 'close' to each other. If at the CLICpix plane there are two tracks close to each other, the DUT cluster is not associated with either track. Units of mm. Default value is `0.5um`.
* `timepix3Telescope`: Boolean to set whether the Timepix3 telescope is being used. Default value is `false`. * `timepix3_telescope`: Boolean to set whether the Timepix3 telescope is being used. Default value is `false`.
* `DUT`: Name of the DUT plane. The CLICpix device is assumed to be the DUT.
### Plots produced ### Plots produced
For the DUT the following plots are produced: The following plots are produced:
* 2D hitmap * 2D hitmap
* Column hits histogram * Column hits histogram
...@@ -82,7 +81,7 @@ For the DUT the following plots are produced: ...@@ -82,7 +81,7 @@ For the DUT the following plots are produced:
* Local residuals for rows for 2-pixel clusters * Local residuals for rows for 2-pixel clusters
* 2D track intercepts * 2D track intercepts
* 2D associatedd track intercepts * 2D associated track intercepts
* 2D cluster positions in global coordinates * 2D cluster positions in global coordinates
* 2D associated cluster positions in global coordinates * 2D associated cluster positions in global coordinates
* 2D track-pixel intercepts * 2D track-pixel intercepts
...@@ -104,8 +103,7 @@ For the DUT the following plots are produced: ...@@ -104,8 +103,7 @@ For the DUT the following plots are produced:
### Usage ### Usage
```toml ```toml
[CLICpixAnalysis] [CLICpixAnalysis]
associationCut = 0.005 association_cut = 0.005mm
proximityCut = 0.005 proximity_cut = 0.005mm
timepix3Telescope = true timepix3Telescope = true
DUT = "W0003_H05"
``` ```
...@@ -9,9 +9,9 @@ using namespace corryvreckan; ...@@ -9,9 +9,9 @@ using namespace corryvreckan;
AnalysisDUT::AnalysisDUT(Configuration config, std::shared_ptr<Detector> detector) AnalysisDUT::AnalysisDUT(Configuration config, std::shared_ptr<Detector> detector)
: Module(std::move(config), detector), m_detector(detector) { : Module(std::move(config), detector), m_detector(detector) {
m_timeCutFrameEdge = m_config.get<double>("timeCutFrameEdge", static_cast<double>(Units::convert(20, "ns"))); m_timeCutFrameEdge = m_config.get<double>("time_cut_frameedge", static_cast<double>(Units::convert(20, "ns")));
spatialCut = m_config.get<double>("spatialCut", static_cast<double>(Units::convert(50, "um"))); spatialCut = m_config.get<double>("spatial_cut", static_cast<double>(Units::convert(50, "um")));
chi2ndofCut = m_config.get<double>("chi2ndofCut", 3.); chi2ndofCut = m_config.get<double>("chi2ndof_cut", 3.);
} }
void AnalysisDUT::initialise() { void AnalysisDUT::initialise() {
......
...@@ -8,10 +8,9 @@ ...@@ -8,10 +8,9 @@
Analysis module for CLICpix2 prototypes. This module is still work in progress, changes to functionality and behaviour are to be expected. Analysis module for CLICpix2 prototypes. This module is still work in progress, changes to functionality and behaviour are to be expected.
### Parameters ### Parameters
* `timeCutFrameEdge`: 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`.
* `spatialCut`: Spatial cut for associating a track with a DUT cluster, defaults to `50um`. * `spatial_cut`: Spatial cut for associating a track with a DUT cluster, defaults to `50um`.
* `chi2ndofCut`: Acceptance criterion for telescope tracks, defaults to a value of `3`. * `chi2ndof_cut`: Acceptance criterion for telescope tracks, defaults to a value of `3`.
* `DUT`: Name of the DUT plane. The CLICpix2 device is assumed to be the DUT.
### Plots produced ### Plots produced
* 2D Map of associated cluster positions * 2D Map of associated cluster positions
...@@ -37,4 +36,3 @@ Analysis module for CLICpix2 prototypes. This module is still work in progress, ...@@ -37,4 +36,3 @@ Analysis module for CLICpix2 prototypes. This module is still work in progress,
[CLICpix2Analysis] [CLICpix2Analysis]
timeCutFrameEdge = 50ns timeCutFrameEdge = 50ns
``` ```
...@@ -19,8 +19,8 @@ AnalysisEfficiency::AnalysisEfficiency(Configuration config, std::shared_ptr<Det ...@@ -19,8 +19,8 @@ AnalysisEfficiency::AnalysisEfficiency(Configuration config, std::shared_ptr<Det
: Module(std::move(config), detector) { : Module(std::move(config), detector) {
m_detector = detector; m_detector = detector;
m_timeCutFrameEdge = m_config.get<double>("timeCutFrameEdge", static_cast<double>(Units::convert(20, "ns"))); m_timeCutFrameEdge = m_config.get<double>("time_cut_frameedge", static_cast<double>(Units::convert(20, "ns")));
m_chi2ndofCut = m_config.get<double>("chi2ndofCut", 3.); m_chi2ndofCut = m_config.get<double>("chi2ndof_cut", 3.);
} }
void AnalysisEfficiency::initialise() { void AnalysisEfficiency::initialise() {
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
This module measures the efficiency of the device under test by comparing its cluster positions with the interpolated track position at the DUT. This module measures the efficiency of the device under test by comparing its cluster positions with the interpolated track position at the DUT.
### Parameters ### Parameters
* `timeCutFrameEdge`: Parameter to discard telescope tracks at the frame edges (start and end of the current event window). Defaults to `20ns`. * `time_cut_frameedge`: Parameter to discard telescope tracks at the frame edges (start and end of the current event window). Defaults to `20ns`.
* `chi2ndofCut`: Acceptance criterion for telescope tracks, defaults to a value of `3`. * `chi2ndof_cut`: Acceptance criterion for telescope tracks, defaults to a value of `3`.
### Plots produced ### Plots produced
* 2D Map of in-pixel efficiency * 2D Map of in-pixel efficiency
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
**Maintainer**: Estel Perez Codina **Maintainer**: Estel Perez Codina
**Module Type**: *DUT* **Module Type**: *DUT*
**Module Type**: *Timepix3* **Module Type**: *Timepix3*
**Status**: Immature **Status**: Outdated
### Description ### Description
Analysis of power pulsing behavior of Timepix3 chips. Analysis of power pulsing behavior of Timepix3 chips.
......
...@@ -10,7 +10,7 @@ using namespace std; ...@@ -10,7 +10,7 @@ using namespace std;
AnalysisTelescope::AnalysisTelescope(Configuration config, std::vector<std::shared_ptr<Detector>> detectors) AnalysisTelescope::AnalysisTelescope(Configuration config, std::vector<std::shared_ptr<Detector>> detectors)
: Module(std::move(config), std::move(detectors)) { : Module(std::move(config), std::move(detectors)) {
chi2ndofCut = m_config.get<double>("chi2ndofCut", 3.); chi2ndofCut = m_config.get<double>("chi2ndof_cut", 3.);
} }
void AnalysisTelescope::initialise() { void AnalysisTelescope::initialise() {
......
...@@ -9,7 +9,7 @@ This module produces reference histograms for the telescope performance used for ...@@ -9,7 +9,7 @@ This module produces reference histograms for the telescope performance used for
Furthermore, the telescope resolution at the position of the DUT detector is plotted of Monte Carlo information is available. The Monte Carlo particle position is compared with the track interception with the DUT. Furthermore, the telescope resolution at the position of the DUT detector is plotted of Monte Carlo information is available. The Monte Carlo particle position is compared with the track interception with the DUT.
### Parameters ### Parameters
* `chi2ndofCut`: Chi2 over number of degrees of freedom for the track to be taken into account. Tracks with a larger value are discarded. Default value is `3`. * `chi2ndof_cut`: Chi2 over number of degrees of freedom for the track to be taken into account. Tracks with a larger value are discarded. Default value is `3`.
### Plots produced ### Plots produced
* Telescope resolution at position of DUT * Telescope resolution at position of DUT
...@@ -24,5 +24,5 @@ For each detector participating in tracking, the following plots are produced: ...@@ -24,5 +24,5 @@ For each detector participating in tracking, the following plots are produced:
### Usage ### Usage
```toml ```toml
[NAME] [NAME]
chi2ndofCut = 3 chi2ndof_cut = 3
``` ```
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