CbmRoot
Loading...
Searching...
No Matches
trd/HitfindSetup.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
21 struct HitfindSetup {
22
23 struct Pad {
24 std::array<double, 3> position;
25 std::array<double, 3> positionError;
26
27 CBM_YAML_PROPERTIES(yaml::Property(&Pad::position, "position", "Local position", YAML::Flow),
28 yaml::Property(&Pad::positionError, "positionError", "Local position error", YAML::Flow));
29 };
30
31 struct Row {
32 std::vector<Pad> padPar;
33
34 CBM_YAML_PROPERTIES(yaml::Property(&Row::padPar, "padPar", "pad parameters"));
35 };
36
37
38 struct Mod {
39 double padSizeX;
40 double padSizeY;
45 std::vector<Row> rowPar;
46 std::array<double, 3> translation;
47 std::array<double, 9> rotation;
48
49 CBM_YAML_PROPERTIES(yaml::Property(&Mod::padSizeX, "padSizeX", "X size of pads"),
50 yaml::Property(&Mod::padSizeY, "padSizeY", "Y size of pads"),
51 yaml::Property(&Mod::padSizeErrX, "padSizeErrX", "error of X size of pads"),
52 yaml::Property(&Mod::padSizeErrY, "padSizeErrY", "error of Y size of pads"),
53 yaml::Property(&Mod::address, "address", "module address"),
54 yaml::Property(&Mod::orientation, "orientation", "module orientation"),
55 yaml::Property(&Mod::translation, "translation", "Module position", YAML::Flow),
56 yaml::Property(&Mod::rotation, "rotation", "Module rotation", YAML::Flow),
57 yaml::Property(&Mod::rowPar, "rowPar", "row parameters"));
58 };
59
60 std::vector<Mod> modules;
61
62 CBM_YAML_PROPERTIES(yaml::Property(&HitfindSetup::modules, "modules", "Parameters of modules"));
63 };
64
65} // namespace cbm::algo::trd
std::uint16_t u16
Definition Definitions.h:19
std::array< double, 9 > rotation
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::padSizeErrX, "padSizeErrX", "error of X size of pads"), yaml::Property(&Mod::padSizeErrY, "padSizeErrY", "error of Y size of pads"), yaml::Property(&Mod::address, "address", "module address"), yaml::Property(&Mod::orientation, "orientation", "module orientation"), 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"))
CBM_YAML_PROPERTIES(yaml::Property(&Pad::position, "position", "Local position", YAML::Flow), yaml::Property(&Pad::positionError, "positionError", "Local position error", YAML::Flow))
std::array< double, 3 > position
std::array< double, 3 > positionError
CBM_YAML_PROPERTIES(yaml::Property(&Row::padPar, "padPar", "pad parameters"))
Hitfind setup / Hardware cabling for TRD Used to create the hardware mapping for the TRD hitfinder.
CBM_YAML_PROPERTIES(yaml::Property(&HitfindSetup::modules, "modules", "Parameters of modules"))