CbmRoot
Loading...
Searching...
No Matches
CbmTofDigi.h
Go to the documentation of this file.
1/* Copyright (C) 2013-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Pierre-Alain Loizeau, Florian Uhlig [committer], Volker Friese */
4
9
25
26#ifndef CBMTOFDIGI_H
27#define CBMTOFDIGI_H 1
28
29#include "CbmDefs.h" // for kTof
30#include "CbmTofAddress.h" // for CbmTofAddress
31
32#ifndef NO_ROOT
33#include <Rtypes.h> // for ClassDef
34#endif
35
36#include <boost/serialization/access.hpp>
37#include <boost/serialization/base_object.hpp>
38
39#include <cstdint>
40#include <string> // for string
41
42//class CbmMatch;
43#ifndef CBMBMONDIGI_H
44class CbmBmonDigi; // For declaration of the conversion constructor without starting a cyclic dependency
45#endif /* CBMBMONDIGI_H */
46
48 public:
52 CbmTofDigi();
53
60 CbmTofDigi(uint32_t address, double time, double tot);
61
72 CbmTofDigi(uint32_t Sm, uint32_t Rpc, uint32_t Channel, double time, double tot, uint32_t Side = 0,
73 uint32_t SmType = 0);
74
78 CbmTofDigi(const CbmBmonDigi& digi);
79
83 CbmTofDigi(const CbmBmonDigi* digi);
84
88 CbmTofDigi(const CbmTofDigi&) = default;
89
90
92 CbmTofDigi(CbmTofDigi&&) = default;
93
94
96 CbmTofDigi& operator=(const CbmTofDigi&) = default;
97
98
101
102
106 ~CbmTofDigi();
107
112 // FIXME: SZh 5.2.2025: change address type int32_t -> uint32_t
113 int32_t GetAddress() const { return fuAddress; };
114
115
119 static const char* GetBranchName() { return "TofDigi"; }
120
121
125 static const char* GetClassName() { return "CbmTofDigi"; }
126
128
132 double GetTime() const { return fdTime; };
133
137 double GetCharge() const { return fdTot; };
141 double GetTot() const { return GetCharge(); };
145 double GetSm() const { return CbmTofAddress::GetSmId(GetAddress()); };
149 double GetType() const { return CbmTofAddress::GetSmType(GetAddress()); };
153 double GetRpc() const { return CbmTofAddress::GetRpcId(GetAddress()); };
157 double GetChannel() const { return CbmTofAddress::GetChannelId(GetAddress()); };
161 double GetSide() const { return CbmTofAddress::GetChannelSide(GetAddress()); };
162
164
165 // FIXME: SZh 5.2.2025: change address type int32_t -> uint32_t
166 void SetAddress(int32_t address) { fuAddress = address; };
167 void SetAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side = 0, uint32_t SmType = 0);
168 void SetTime(double time) { fdTime = time; };
169 void SetTot(double tot) { fdTot = tot; };
170
171 std::string ToString() const;
172
173
174 private:
175 double fdTime;
176 double fdTot;
177 uint32_t fuAddress;
178
180
181 template<class Archive>
182 void serialize(Archive& ar, const unsigned int /*version*/)
183 {
184 ar& fuAddress;
185 ar& fdTime;
186 ar& fdTot;
187 }
188
189#ifndef NO_ROOT
191#endif
192};
193#endif // CBMTOFDIGI_H
ECbmModuleId
Enumerator for module Identifiers.
Definition CbmDefs.h:45
@ kTof
Time-of-flight Detector.
Definition CbmDefs.h:52
Data class for a signal in the t-zero detector.
Definition CbmBmonDigi.h:31
static int32_t GetSmId(uint32_t address)
static int32_t GetRpcId(uint32_t address)
static int32_t GetSmType(uint32_t address)
static int32_t GetChannelSide(uint32_t address)
static int32_t GetChannelId(uint32_t address)
double GetSide() const
Channel Side.
Definition CbmTofDigi.h:161
std::string ToString() const
CbmTofDigi & operator=(CbmTofDigi &&)=default
static ECbmModuleId GetSystem()
Definition CbmTofDigi.h:127
void SetTot(double tot)
Definition CbmTofDigi.h:169
CbmTofDigi()
Default constructor.
static const char * GetClassName()
Class name (static)
Definition CbmTofDigi.h:125
double GetChannel() const
Channel .
Definition CbmTofDigi.h:157
CbmTofDigi(const CbmTofDigi &)=default
Copy constructor.
int32_t GetAddress() const
Inherited from CbmDigi.
Definition CbmTofDigi.h:113
double GetSm() const
Sm.
Definition CbmTofDigi.h:145
double GetTime() const
Inherited from CbmDigi.
Definition CbmTofDigi.h:132
double GetType() const
Sm Type .
Definition CbmTofDigi.h:149
double GetRpc() const
Detector aka Module aka RPC .
Definition CbmTofDigi.h:153
double fdTot
Tot [ns?].
Definition CbmTofDigi.h:176
void serialize(Archive &ar, const unsigned int)
Definition CbmTofDigi.h:182
~CbmTofDigi()
Destructor.
double GetCharge() const
Inherited from CbmDigi.
Definition CbmTofDigi.h:137
uint32_t fuAddress
Unique channel address.
Definition CbmTofDigi.h:177
friend class boost::serialization::access
Definition CbmTofDigi.h:179
ClassDefNV(CbmTofDigi, 3)
CbmTofDigi(CbmTofDigi &&)=default
double fdTime
Absolute time [ns].
Definition CbmTofDigi.h:175
double GetTot() const
Alias for GetCharge.
Definition CbmTofDigi.h:141
void SetAddress(int32_t address)
Definition CbmTofDigi.h:166
static const char * GetBranchName()
Get the desired name of the branch for this obj in the cbm output tree (static)
Definition CbmTofDigi.h:119
CbmTofDigi & operator=(const CbmTofDigi &)=default
void SetTime(double time)
Definition CbmTofDigi.h:168