CbmRoot
Loading...
Searching...
No Matches
CbmL1DetectorID.h
Go to the documentation of this file.
1/* Copyright (C) 2022-2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9
10#pragma once
11
12//#include "CaDefs.h"
13#include "CbmDefs.h"
14#include "CbmEnumArray.h"
15
16#include <string>
17
21
22class CbmMvdPoint;
23class CbmStsPoint;
24class CbmMuchPoint;
25class CbmTrdPoint;
26class CbmTofPoint;
27
28class CbmMvdHit;
29class CbmStsHit;
30class CbmMuchPixelHit;
31class CbmTrdHit;
32class CbmTofHit;
33
34namespace cbm::ca
35{
36 namespace ca = cbm::algo::ca;
37
40 template<typename T>
42
52
61 template<class... Types>
63 template<ca::EDetectorID DetID>
64 using at = std::tuple_element_t<static_cast<std::size_t>(DetID), std::tuple<Types...>>;
65 static constexpr std::size_t size = sizeof...(Types);
66 };
67
71 constexpr DetIdArr_t<const char*> kDetName = {{"MVD", "STS", "MUCH", "TRD", "TOF"}};
72
74 constexpr DetIdArr_t<const char*> kDetHitBrName = {{"MvdHit", "StsHit", "MuchPixelHit", "TrdHit", "TofHit"}};
75
77 constexpr DetIdArr_t<const char*> kDetPointBrName = {{"MvdPoint", "StsPoint", "MuchPoint", "TrdPoint", "TofPoint"}};
78
80 /* clang-format off */
89 /* clang-format on */
90
94
96
99
102
106 0x00001fff, // MVD (sensor)
107 0xffffffff, // STS (full address)
108 0x007fffff, // MUCH (Sector)
109 0x0001ffff, // TRD (Sector ID)
110 0x001fffff // TOF (RPC ID)
111 };
112
113} // namespace cbm::ca
114
117{
120};
@ kMvd
Micro-Vertex Detector.
Definition CbmDefs.h:47
@ kTrd
Transition Radiation Detector.
Definition CbmDefs.h:51
@ kTof
Time-of-flight Detector.
Definition CbmDefs.h:52
@ kSts
Silicon Tracking System.
Definition CbmDefs.h:48
@ kMuch
Muon detection system.
Definition CbmDefs.h:50
ECbmCaTrackingMode
Enumeration for different tracking running modes.
@ kMCBM
Global tracking in mCBM (STS, MuCh, TRD, TOF), results stored to GlobalTrack branch.
@ kSTS
Local tracking in CBM (STS + MVD), results stored to the StsTrack branch.
data class for a reconstructed 3-d hit in the STS
Definition CbmStsHit.h:35
Geometric intersection of a MC track with a TOFb detector.
Definition CbmTofPoint.h:44
data class for a reconstructed Energy-4D measurement in the TRD
Definition CbmTrdHit.h:40
TODO: SZh 8.11.2022: add selection of parameterisation.
Definition CaBranch.h:14
constexpr DetIdArr_t< ECbmDataType > kCbmHitType
Data type of hits (for CbmEvent)
constexpr DetIdArr_t< ECbmModuleId > kCbmModuleId
Conversion map from ca::EDetectorID to ECbmModuleId.
constexpr DetIdArr_t< const char * > kDetPointBrName
Name of point branches for each detector.
DetIdTypeArr_t< CbmMvdPoint, CbmStsPoint, CbmMuchPoint, CbmTrdPoint, CbmTofPoint > PointTypes_t
Name.
constexpr DetIdArr_t< const char * > kDetName
Names of detector subsystems.
constexpr DetIdArr_t< const char * > kDetHitBrName
Name of hit branches for each detector.
cbm::core::EnumArray< ca::EDetectorID, T > DetIdArr_t
Alias to array, indexed by L1DetectorID enum.
constexpr DetIdArr_t< uint32_t > kCbmDatastreamBitmask
Bit-masks to define a data-stream (within this HW level the hits must be sorted in time) FIXME: Put i...
DetIdTypeArr_t< CbmMvdHit, CbmStsHit, CbmMuchPixelHit, CbmTrdHit, CbmTofHit > HitTypes_t
Types of hit objects for each detector.
constexpr DetIdArr_t< ca::EDetectorID > kDetIds
List of detector.
Array of types, indexed by L1DetectorID enum.
std::tuple_element_t< static_cast< std::size_t >(DetID), std::tuple< Types... > > at