Skip to content
Snippets Groups Projects
Commit 74bddf18 authored by Simon Spannagel's avatar Simon Spannagel
Browse files

Detector: parse "calibration_file" from geometry and provide via detector API

parent 39bcf883
No related branches found
No related tags found
No related merge requests found
......@@ -287,6 +287,7 @@ All supported rotations are extrinsic active rotations, i.e. the vector itself i
\item The intrinsic time resolution of the detector should be specified using the \parameter{time_resolution} parameter with units of time. This can be used to apply detector specific time cuts in modules. This parameter is only required when using relative time cuts in the analysis.
\item The \parameter{time_offset} can be used to shift the reference time frame of an individual detector to e.g.\ account for time of flight effects between different detector planes by adding a fixed offset.
\item The \parameter{material_budget} defines the material budget of the sensor layer in fractions of the radiation length, including support. If no value is defined a default of zero is assumed. A given value has to be larger than zero.
\item The \parameter{calibration_file} parameter can be used to supply an additional file with data relevant for the detector calibration. Since this data and its interpretation is detector-specific, the framework does not open or parse the file but simply provide its path to modules implementing calibration of this specific detector data.
\item Pixels to be masked in the offline analysis can be placed in a separate file specified by the \parameter{mask_file} parameter, which is 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 can be found in Section~\ref{sec:roi}.
\end{itemize}
......
......@@ -113,6 +113,8 @@ Detector::Detector(const Configuration& config) : m_role(DetectorRole::NONE) {
LOG(TRACE) << " Time resolution: " << Units::display(m_timeResolution, {"ms", "us"});
}
m_calibrationfile = config.getPath("calibration_file");
if(!isAuxiliary()) {
if(config.has("mask_file")) {
m_maskfile_name = config.get<std::string>("mask_file");
......
......@@ -177,6 +177,15 @@ namespace corryvreckan {
*/
PositionVector3D<Cartesian3D<double>> normal() const { return m_normal; };
/**
* @brief Get path of the file with calibration information
* @return Path of the calibration file
*
* @note The data contained in the calibration file is detector-specific and is
* not parsed. This is left to the individual modules decoding the detector data.
*/
std::string calibrationFile() const { return m_calibrationfile; }
/**
* @brief Get path of the file with pixel mask information
* @return Path of the pixel mask file
......@@ -308,6 +317,9 @@ namespace corryvreckan {
PositionVector3D<Cartesian3D<double>> m_normal;
PositionVector3D<Cartesian3D<double>> m_origin;
// Path of calibration file
std::string m_calibrationfile;
// List of masked channels
std::map<int, bool> m_masked;
std::string m_maskfile;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment