CbmRoot
Loading...
Searching...
No Matches
Hitfind2DSetup.h
Go to the documentation of this file.
1/* Copyright (C) 2024 Facility for Antiproton and Ion Research in Europe, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Dominik Smith [committer] */
4#pragma once
5
6#include "Definitions.h"
7#include "yaml/Property.h"
8
9#include <array>
10#include <map>
11#include <string>
12#include <vector>
13
14namespace cbm::algo::trd
15{
16
22
23 struct Pad {
24 std::array<double, 3> position;
25 std::array<double, 3> positionError;
28
29 CBM_YAML_PROPERTIES(yaml::Property(&Pad::position, "position", "Local position", YAML::Flow),
30 yaml::Property(&Pad::positionError, "positionError", "Local position error", YAML::Flow),
31 yaml::Property(&Pad::chRMasked, "chRMasked", "Is channel R component masked"),
32 yaml::Property(&Pad::chTMasked, "chTMasked", "Is channel T component masked"));
33 };
34
35 struct Row {
36 std::vector<Pad> padPar;
37
38 CBM_YAML_PROPERTIES(yaml::Property(&Row::padPar, "padPar", "pad parameters"));
39 };
40
41
42 struct Mod {
43 double padSizeX;
44 double padSizeY;
46 std::vector<Row> rowPar;
47 std::array<double, 3> translation;
48 std::array<double, 9> rotation;
49
50 CBM_YAML_PROPERTIES(yaml::Property(&Mod::padSizeX, "padSizeX", "X size of pads"),
51 yaml::Property(&Mod::padSizeY, "padSizeY", "Y size of pads"),
52 yaml::Property(&Mod::address, "address", "module address"),
53 yaml::Property(&Mod::translation, "translation", "Module position", YAML::Flow),
54 yaml::Property(&Mod::rotation, "rotation", "Module rotation", YAML::Flow),
55 yaml::Property(&Mod::rowPar, "rowPar", "row parameters"));
56 };
57
58 std::vector<Mod> modules;
59
60 CBM_YAML_PROPERTIES(yaml::Property(&Hitfind2DSetup::modules, "modules", "Parameters of modules"));
61 };
62
63
64} // namespace cbm::algo::trd
std::uint16_t u16
Definition Definitions.h:19
std::array< double, 3 > translation
CBM_YAML_PROPERTIES(yaml::Property(&Mod::padSizeX, "padSizeX", "X size of pads"), yaml::Property(&Mod::padSizeY, "padSizeY", "Y size of pads"), yaml::Property(&Mod::address, "address", "module address"), yaml::Property(&Mod::translation, "translation", "Module position", YAML::Flow), yaml::Property(&Mod::rotation, "rotation", "Module rotation", YAML::Flow), yaml::Property(&Mod::rowPar, "rowPar", "row parameters"))
std::array< double, 9 > rotation
std::array< double, 3 > position
CBM_YAML_PROPERTIES(yaml::Property(&Pad::position, "position", "Local position", YAML::Flow), yaml::Property(&Pad::positionError, "positionError", "Local position error", YAML::Flow), yaml::Property(&Pad::chRMasked, "chRMasked", "Is channel R component masked"), yaml::Property(&Pad::chTMasked, "chTMasked", "Is channel T component masked"))
std::array< double, 3 > positionError
CBM_YAML_PROPERTIES(yaml::Property(&Row::padPar, "padPar", "pad parameters"))
Hitfind setup / Hardware cabling for TRD2D Used to create the hardware mapping for the TRD2D hitfinde...
CBM_YAML_PROPERTIES(yaml::Property(&Hitfind2DSetup::modules, "modules", "Parameters of modules"))