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

Update usermanual/chapters/introduction.tex from CLICdp-Note-2019-006

parent 6dd9cab8
......@@ -2,20 +2,23 @@
\label{ch:introduction}
\corry is a flexible, fast and lightweight test beam data reconstruction framework based on a modular concept of the reconstruction chain.
It is designed to fulfill the requirements for offline event building in complex environments combining detectors with very different readout architectures.
It is designed to fulfill the requirements for offline event building in complex data-taking environments combining detectors with very different readout architectures.
\corry reduces external dependencies to a minimum by implementing its own flexible but simple data format to store intermediate reconstruction steps as well as final results.
The modularity of the reconstruction chain allows users to add their own functionality (such as event loaders to support different data formats or analysis modules to investigate specific features of their detectors) without having to deal with centrally provided functionality such as coordinate transformations, input and output or parsing of user input and configuration of the analysis.
The modularity of the reconstruction chain allows users to add their own functionality (such as event loaders to support different data formats or analysis modules to investigate specific features of detectors), without having to deal with centrally provided functionality, such as coordinate transformations, input and output, parsing of user input, and configuration of the analysis.
In addition, tools for batch submission of runs to a cluster scheduler such as \command{HTCondor} are provided to ease the (re-)analysis of complete test beam campaigns within a few minutes.
This project strongly profits from the developments undertaken for the \emph{Allpix Squared} project~\cite{apsq,apsq-website}, a \emph{Generic Pixel Detector Simulation Framework}.
Both frameworks employ very similar philosophies for configuration and modularity, and users of one framework will find it very easy to get started with the other companion.
Some parts of the code base are shared explicitly such as the configuration class or the module instantiation logic.
Also the \textit{FileReader} and \textit{FileWriter} modules have profited heavily from their corresponding framework components in Allpix Squared.
The relevant sections of the Allpix Squared manual~\cite{apsq-manual,clicdp-apsq-manual} have been adapted for this document.
This project strongly profits from the developments undertaken for the \apsq project~\cite{apsq,apsq-website}: \emph{A Generic Pixel Detector Simulation Framework}.
Both frameworks employ very similar philosophies for configuration and modularity, and users of one framework will find it easy to get started with the other companion.
Some parts of the code base are shared explicitly, such as the configuration class or the module instantiation logic.
In addition, the \module{FileReader} and \module{FileWriter} modules have profited heavily from their corresponding framework components in \apsq.
The relevant sections of the \apsq manual~\cite{apsq-manual,clicdp-apsq-manual} have been adapted for this document.
It is also possible to combine the usage of both software frameworks: data produced by \apsq can be read in and analysed with \textit{Corryvreckan}.
This allows, for instance, to perform data/Monte Carlo comparisons when simulating a beam telescope configuration and analysing it with the same parameters as the read test-beam data.
\section{Scope of this Manual}
This document is meant to be the primary User Guide for \corry.
This document is meant to be the primary user Guide for \corry.
It contains both an extensive description of the user interface and configuration possibilities, and a detailed introduction to the code base for potential developers.
This manual is designed to:
\begin{itemize}
......@@ -26,19 +29,25 @@ This manual is designed to:
\item Describe the required steps for implementing new reconstruction modules and algorithms.
\end{itemize}
Within the scope of this document, only an overview of the framework can be provided and more detailed information on the code itself can be found in the Doxygen reference manual~\cite{corry-doxygen} available online.
No programming experience is required from novice users, but knowledge of (modern) C++ will be useful in the later chapters and might contribute to the overall understanding of the mechanisms.
More detailed information on the code itself can be found in the Doxygen reference manual~\cite{corry-doxygen} available online.
No programming experience is required from novice users, but knowledge of (modern) \CPP will be useful in the later chapters and may contribute to the overall understanding of the mechanisms.
\subsection{Getting Started}
An installation guideline is provided in Chapter~\ref{ch:installation}.
To get started with the analysis, some working examples can be found in the \dir{testing/} directory of the repository.
In addition, tutorials are available on \url{https://cern.ch/corryvreckan}.
\section{Support and Reporting Issues}
As for most of the software used within the high-energy particle physics community, only limited support on best-effort basis for this software can be offered.
The authors are, however, happy to receive feedback on potential improvements or problems arising.
Reports on issues, questions concerning the software as well as the documentation and suggestions for improvements are very much appreciated.
As for most of the software used within the high-energy particle physics community, only limited support on a best-effort basis can be offered for this software.
The authors are, however, happy to receive feedback on potential improvements or problems.
Reports on issues, questions concerning the software and documentation, and suggestions for improvements are very much appreciated.
These should preferably be brought up on the issues tracker of the project which can be found in the repository~\cite{corry-issue-tracker}.
\section{Contributing Code}
\label{sub:contributing}
\corry is a community project that benefits from active participation in the development and code contributions from users.
Users and prospective developers are encouraged to discuss their needs via the issue tracker of the repository~\cite{corry-issue-tracker} to receive ideas and guidance on how to implement a specific feature.
Getting in touch with other developers early in the development cycle avoids spending time on features which already exist or are currently under development by other users.
Getting in touch with other developers early in the development cycle avoids spending time on features that already exist or are currently under development by other users.
The repository contains a few tools to facilitate contributions and to ensure code quality as detailed in Chapter~\ref{ch:testing}.
The repository contains a few tools to facilitate contributions and to ensure code quality, as detailed in Chapter~\ref{ch:testing}.
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