CbmRoot
Loading...
Searching...
No Matches
CbmMvdRawDigi.h
Go to the documentation of this file.
1/* Copyright (C) 2025 IKF Frankfurt University, Frankfurt am Main
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Ajit Kumar [committer] */
4
12
13
14#ifndef CBMMVDRAWDIGI_H
15#define CBMMVDRAWDIGI_H 1
16
17#include "CbmDefs.h" // for ECbmModuleId
18#include "CbmMvdAddress.h"
19
20#ifndef NO_ROOT
21#include <Rtypes.h> // for ClassDefNV
22#endif
23
24#include <boost/serialization/access.hpp>
25#include <boost/serialization/base_object.hpp>
26
27#include <cstdint>
28#include <string> // for std::string
29
31 public:
34
36 CbmMvdRawDigi(uint32_t address, uint32_t time, uint32_t frame, uint64_t frametime = 0);
37
39 CbmMvdRawDigi(uint32_t station, uint32_t sideUD, uint32_t sideLR, uint32_t sideTB, uint32_t ladder, uint32_t sensor,
40 uint32_t sensorY, uint32_t sensorX, uint32_t time, uint32_t frame, uint64_t frametime = 0);
41
42 CbmMvdRawDigi(const CbmMvdRawDigi&) = default;
46
49
51 uint32_t GetAddress() const { return fuAddress; }
53 uint64_t GetTime() const { return fuTime; }
55 uint32_t GetFrame() const { return fuFrame; }
57 uint64_t GetFrameTime() const { return fulFrameTime; }
58
59 static const char* GetClassName() { return "CbmMvdRawDigi"; }
61 static const char* GetBranchName() { return "MvdRawDigi"; }
62
65 int32_t GetSideUD() const { return CbmMvdAddress::GetSideUDIndex(GetAddress()); }
66 int32_t GetSideLR() const { return CbmMvdAddress::GetSideLRIndex(GetAddress()); }
67 int32_t GetSideTB() const { return CbmMvdAddress::GetSideTBIndex(GetAddress()); }
68 int32_t GetLadder() const { return CbmMvdAddress::GetLadderIndex(GetAddress()); }
69 int32_t GetSensor() const { return CbmMvdAddress::GetSensorIndex(GetAddress()); }
72
74 double GetFrameNumber() const { return fuFrame; }
75
77 void SetAddress(uint32_t address) { fuAddress = address; }
78 void SetAddress(uint32_t station, uint32_t sideUD, uint32_t sideLR, uint32_t sideTB, uint32_t ladder, uint32_t sensor,
79 uint32_t sensorY, uint32_t sensorX);
80
81 void SetTime(uint32_t time) { fuTime = time; }
82 void SetFrame(uint32_t frame) { fuFrame = frame; }
83 void SetFrameTime(uint64_t frametime) { fulFrameTime = frametime; }
84
85 std::string ToString() const;
86
87 private:
88 uint32_t fuAddress = 0;
89 uint32_t fuTime = 0;
90 uint32_t fuFrame = 0;
91 uint64_t fulFrameTime = 0;
93
94 // Boost serialization
96 template<class Archive>
97 void serialize(Archive& ar, const unsigned /*version*/)
98 {
99 ar& fuAddress;
100 ar& fuTime;
101 ar& fuFrame;
102 ar& fulFrameTime;
103 }
104
105#ifndef NO_ROOT
107#endif
108};
109
110#endif // CBMMVDRAWDIGI_H
ECbmModuleId
Enumerator for module Identifiers.
Definition CbmDefs.h:45
@ kMvd
Micro-Vertex Detector.
Definition CbmDefs.h:47
static int32_t GetSideUDIndex(uint32_t address)
static int32_t GetStationIndex(uint32_t address)
static int32_t GetSideLRIndex(uint32_t address)
static int32_t GetSensorXIndex(uint32_t address)
static int32_t GetLadderIndex(uint32_t address)
static int32_t GetSideTBIndex(uint32_t address)
static int32_t GetSensorYIndex(uint32_t address)
static int32_t GetSensorIndex(uint32_t address)
uint64_t GetFrameTime() const
uint32_t fuAddress
Unique 32-bit address.
ClassDefNV(CbmMvdRawDigi, 1)
int32_t GetSensorX() const
double GetFrameNumber() const
static const char * GetBranchName()
void SetFrameTime(uint64_t frametime)
static ECbmModuleId GetSystem()
uint32_t fuFrame
Frame number.
void serialize(Archive &ar, const unsigned)
CbmMvdRawDigi(CbmMvdRawDigi &&)=default
int32_t GetSensor() const
uint32_t GetAddress() const
void SetFrame(uint32_t frame)
CbmMvdRawDigi(const CbmMvdRawDigi &)=default
int32_t GetLadder() const
uint32_t GetFrame() const
void SetAddress(uint32_t address)
CbmMvdRawDigi & operator=(const CbmMvdRawDigi &)=default
int32_t GetSideUD() const
int32_t GetStation() const
uint64_t fulFrameTime
uint32_t fuTime
Hit time [ns or ps].
int32_t GetSideLR() const
int32_t GetSideTB() const
CbmMvdRawDigi & operator=(CbmMvdRawDigi &&)=default
friend class boost::serialization::access
uint64_t GetTime() const
void SetTime(uint32_t time)
std::string ToString() const
static const char * GetClassName()
int32_t GetSensorY() const