CbmRoot
Loading...
Searching...
No Matches
CbmPsdDigi.h
Go to the documentation of this file.
1/* Copyright (C) 2012-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Nikolay Karpushkin, Volker Friese [committer], Pierre-Alain Loizeau */
4
19#ifndef CBMPSDDIGI_H
20#define CBMPSDDIGI_H 1
21
22#include "CbmDefs.h" // for ECbmModuleId::kPsd
23#include "CbmPsdAddress.h" // for CbmPsdAddress
24
25#ifndef NO_ROOT
26#include <Rtypes.h> // for ClassDefNV
27#endif
28
29#include <boost/serialization/access.hpp>
30#include <boost/serialization/base_object.hpp>
31
32#include <cstdint>
33#include <string> // for string
34
35
37
38public:
42
43
49 CbmPsdDigi(uint32_t address, double time, double edep) : fuAddress(address), fdTime(time), fdEdep(edep) {}
50
51
58 CbmPsdDigi(uint32_t moduleId, uint32_t sectionId, double time, double edep) : fuAddress(0), fdTime(time), fdEdep(edep)
59 {
60 fuAddress = CbmPsdAddress::GetAddress(moduleId, sectionId);
61 }
62
63
65 CbmPsdDigi(const CbmPsdDigi&);
66
67
70
71
73 CbmPsdDigi& operator=(const CbmPsdDigi&) = default;
74
75
78
79
82
83
87 static const char* GetClassName() { return "CbmPsdDigi"; }
88
89
93 uint32_t GetAddress() const { return fuAddress; };
94
95
99 static const char* GetBranchName() { return "PsdDigi"; }
100
101
105 double GetTime() const { return fdTime; };
106
107
113 double GetCharge() const { return fdEdep; };
114
115
119 double GetEdep() const { return fdEdep; };
120
121
126
127
132
133
138
139
141 void SetAddress(uint32_t address) { fuAddress = address; };
142 void SetAddress(uint32_t moduleId, uint32_t sectionId);
143 void SetTime(double time) { fdTime = time; }
144 void SetEdep(double edep) { fdEdep = edep; }
145
146
150 std::string ToString() const;
151
152
153private:
154 uint32_t fuAddress = 0;
155 double fdTime = -1.;
156 double fdEdep = 0.;
157
160 template<class Archive>
161 void serialize(Archive& ar, const unsigned int /*version*/)
162 {
163 ar& fuAddress;
164 ar& fdTime;
165 ar& fdEdep;
166 }
167
168#ifndef NO_ROOT
170#endif
171};
172
173#endif // CBMPSDDIGI_H
ECbmModuleId
Definition CbmDefs.h:39
@ kPsd
Projectile spectator detector.
static uint32_t GetAddress(int32_t moduleId, int32_t sectionId)
Return address from system ID, module, Section.
static uint32_t GetSectionId(uint32_t address)
Return sector ID from address.
static uint32_t GetModuleId(uint32_t address)
Return module ID from address.
Data class for PSD digital information.
Definition CbmPsdDigi.h:36
CbmPsdDigi & operator=(CbmPsdDigi &&)=default
double fdEdep
Time of measurement [ns].
Definition CbmPsdDigi.h:156
CbmPsdDigi & operator=(const CbmPsdDigi &)=default
double GetEdep() const
Energy deposit.
Definition CbmPsdDigi.h:119
double GetTime() const
Time.
Definition CbmPsdDigi.h:105
static const char * GetClassName()
Class name (static)
Definition CbmPsdDigi.h:87
double fdTime
Unique channel address.
Definition CbmPsdDigi.h:155
uint32_t GetAddress() const
Address.
Definition CbmPsdDigi.h:93
CbmPsdDigi(uint32_t moduleId, uint32_t sectionId, double time, double edep)
Constructor with detailed assignment.
Definition CbmPsdDigi.h:58
uint32_t fuAddress
Definition CbmPsdDigi.h:154
std::string ToString() const
String output.
double GetCharge() const
Charge.
Definition CbmPsdDigi.h:113
void SetEdep(double edep)
Definition CbmPsdDigi.h:144
CbmPsdDigi(uint32_t address, double time, double edep)
Constructor with assignment.
Definition CbmPsdDigi.h:49
void SetTime(double time)
Definition CbmPsdDigi.h:143
void SetAddress(uint32_t address)
Definition CbmPsdDigi.h:141
void serialize(Archive &ar, const unsigned int)
Definition CbmPsdDigi.h:161
static const char * GetBranchName()
Get the desired name of the branch for this obj in the cbm output tree (static)
Definition CbmPsdDigi.h:99
ClassDefNV(CbmPsdDigi, 5)
friend class boost::serialization::access
Energy deposition from FPGA [MeV].
Definition CbmPsdDigi.h:159
CbmPsdDigi()
Default constructor.
Definition CbmPsdDigi.h:41
static ECbmModuleId GetSystem()
System identifier.
Definition CbmPsdDigi.h:137
double GetSectionID() const
Section Identifier.
Definition CbmPsdDigi.h:131
double GetModuleID() const
Module Identifier.
Definition CbmPsdDigi.h:125