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
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
48public:
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 int32_t GetAddress() const { return fuAddress; };
113
114
118 static const char* GetBranchName() { return "TofDigi"; }
119
120
124 static const char* GetClassName() { return "CbmTofDigi"; }
125
127
131 double GetTime() const { return fdTime; };
132
136 double GetCharge() const { return fdTot; };
140 double GetTot() const { return GetCharge(); };
144 double GetSm() const { return CbmTofAddress::GetSmId(GetAddress()); };
148 double GetType() const { return CbmTofAddress::GetSmType(GetAddress()); };
152 double GetRpc() const { return CbmTofAddress::GetRpcId(GetAddress()); };
156 double GetChannel() const { return CbmTofAddress::GetChannelId(GetAddress()); };
160 double GetSide() const { return CbmTofAddress::GetChannelSide(GetAddress()); };
161
163 void SetAddress(int32_t address) { fuAddress = address; };
164 void SetAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side = 0, uint32_t SmType = 0);
165 void SetTime(double time) { fdTime = time; };
166 void SetTot(double tot) { fdTot = tot; };
167
168 std::string ToString() const;
169
170
171private:
172 double fdTime;
173 double fdTot;
174 uint32_t fuAddress;
175
177
178 template<class Archive>
179 void serialize(Archive& ar, const unsigned int /*version*/)
180 {
181 ar& fuAddress;
182 ar& fdTime;
183 ar& fdTot;
184 }
185
186#ifndef NO_ROOT
188#endif
189};
190#endif // CBMTOFDIGI_H
ECbmModuleId
Definition CbmDefs.h:39
@ kTof
Time-of-flight Detector.
Data class for a signal in the t-zero detector.
Definition CbmBmonDigi.h:30
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)
Data class for expanded digital TOF information.
Definition CbmTofDigi.h:47
double GetSide() const
Channel Side.
Definition CbmTofDigi.h:160
std::string ToString() const
CbmTofDigi & operator=(CbmTofDigi &&)=default
static ECbmModuleId GetSystem()
Definition CbmTofDigi.h:126
void SetTot(double tot)
Definition CbmTofDigi.h:166
CbmTofDigi()
Default constructor.
static const char * GetClassName()
Class name (static)
Definition CbmTofDigi.h:124
double GetChannel() const
Channel .
Definition CbmTofDigi.h:156
CbmTofDigi(const CbmTofDigi &)=default
Copy constructor.
int32_t GetAddress() const
Inherited from CbmDigi.
Definition CbmTofDigi.h:112
double GetSm() const
Sm.
Definition CbmTofDigi.h:144
double GetTime() const
Inherited from CbmDigi.
Definition CbmTofDigi.h:131
double GetType() const
Sm Type .
Definition CbmTofDigi.h:148
double GetRpc() const
Detector aka Module aka RPC .
Definition CbmTofDigi.h:152
double fdTot
Tot [ps].
Definition CbmTofDigi.h:173
void serialize(Archive &ar, const unsigned int)
Definition CbmTofDigi.h:179
~CbmTofDigi()
Destructor.
double GetCharge() const
Inherited from CbmDigi.
Definition CbmTofDigi.h:136
uint32_t fuAddress
Unique channel address.
Definition CbmTofDigi.h:174
friend class boost::serialization::access
Definition CbmTofDigi.h:176
ClassDefNV(CbmTofDigi, 3)
CbmTofDigi(CbmTofDigi &&)=default
double fdTime
Absolute time [ps].
Definition CbmTofDigi.h:172
double GetTot() const
Alias for GetCharge.
Definition CbmTofDigi.h:140
void SetAddress(int32_t address)
Definition CbmTofDigi.h:163
static const char * GetBranchName()
Get the desired name of the branch for this obj in the cbm output tree (static)
Definition CbmTofDigi.h:118
CbmTofDigi & operator=(const CbmTofDigi &)=default
void SetTime(double time)
Definition CbmTofDigi.h:165