10#ifndef ALGO_TRD_RecoSetupUnit_h
11#define ALGO_TRD_RecoSetupUnit_h 1
17#include <boost/serialization/access.hpp>
18#include <boost/serialization/array.hpp>
19#include <boost/serialization/export.hpp>
20#include <boost/serialization/utility.hpp>
50 template<
typename Archive>
70 RecoSetupUnit(std::pair<std::vector<GeoVolume>, std::vector<GeoVolume>>&& stationVolumes,
88 template<
class HitType>
106 template<
class Archive>
110 ar& boost::serialization::base_object<TrackingSetupIfs<RecoSetupUnit>>(*this);
131 template<
class HitType>
138 if (hit.GetClassType() == 0) {
139 if (!hit.IsRowCross()) {
140 if (1 == moduleInfo.orientation || 3 == moduleInfo.orientation) {
141 res.
y =
sqrt(3.) * hit.GetDy();
144 res.
x =
sqrt(3.) * hit.GetDx();
150 if (0 == moduleInfo.orientation || 2 == moduleInfo.orientation) {
ECbmModuleId
Enumerator for module Identifiers.
@ kTrd
Transition Radiation Detector.
Helper class to convert unique channel ID back and forth.
friend fvec sqrt(const fvec &a)
Base class for the detector interface for reconstruction algorithms.
static uint32_t GetModuleId(uint32_t address)
Return module ID from address.
static uint32_t GetLayerId(uint32_t address)
Return layer ID from address.
TrackingSetupIfs()=default
HitRange ImplGetHitRange(const HitType &hit) const
Returns default hit range factor.
static constexpr ECbmModuleId GetModuleId()
Module ID.
std::pair< std::vector< ModuleInfo >, uint32_t > ModuleInfoMap_t
A map of TRD module info vs.
ModuleInfo GetModuleInfo(uint32_t address) const
Returns a TRD module type by its address.
void serialize(Archive &ar, const unsigned int)
Serialization rule.
HitRange ImplGetHitRange(const HitType &hit) const
Returns default hit range.
static constexpr std::string_view GetDetectorName()
Name of the detector.
bool ImplIsTimeInfoProvided(int) const
Returns a flag, if time information is provided by the detector.
RecoSetupUnit()=default
Default constructor (note: needed for serialization)
ModuleInfoMap_t fvModuleInfoMap
map of TRD module types vs [layerId x moduleId]
bool IsInitialized() const
Validates initialization of the concrete class.
int ImplGetTrackingStationId(uint32_t address) const
Returns tracking station index by the TRD address.
friend class boost::serialization::access
A structure to keep the ranges of the hit x, y and time measurements.
double t
range for a time measurement [ns]
double y
range for an y-measurement [cm]
double x
range for an x-measurement [cm]
Different characteristics of TRD module.
ModuleInfo(int32_t orientation_, int32_t type_)
Constructor from parameters.
void serialize(Archive &ar, const unsigned int)
int32_t type
-1: undefined, 0: Trd1D, 1: Trd2D
ModuleInfo()=default
Default constructor.
friend class boost::serialization::access
Serialization rule.
int32_t orientation
0, 2: uniform y-coordinate, 1, 3: uniform x-coordinate (for TRD1D)