CbmRoot
Loading...
Searching...
No Matches
StsXyterFinalHit.h
Go to the documentation of this file.
1/* Copyright (C) 2018-2020 Facility for Antiproton and Ion Research in Europe, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Pierre-Alain Loizeau [committer] */
4
5/************************************************************
6 *
7 ************************************************************/
8
9#ifndef STSXYTERFINALHIT_H
10#define STSXYTERFINALHIT_H
11
12// C/C++ headers
13#include <cstdint>
14#include <iostream>
15
16namespace stsxyter
17{
18
19 class FinalHit {
20 private:
21 protected:
22 uint64_t fulLongTs; // (Software-)Extended TS, in clock cycles
23 uint16_t fusRawAdc; // Raw ADC value
24 uint16_t fusAsicIdx; // ASIC Index
25 uint16_t fusChanIdx; // channel Index
26 uint16_t fusDpbIdx; // Optional DPB Index
27 uint16_t fusCrobIdx; // Optional CROB Index
28
29 public:
30 FinalHit(const FinalHit& src)
31 : fulLongTs(src.fulLongTs)
32 , fusRawAdc(src.fusRawAdc)
35 , fusDpbIdx(src.fusDpbIdx)
37 {
38 }
39
40 FinalHit(uint64_t ulLongTsIn, uint16_t usRawAdcIn, uint16_t usAsicIdxIn, uint16_t usChanIdxIn,
41 uint16_t usDpbIdx = 0, uint16_t usCrobIdx = 0)
42 : fulLongTs(ulLongTsIn)
43 , fusRawAdc(usRawAdcIn)
44 , fusAsicIdx(usAsicIdxIn)
45 , fusChanIdx(usChanIdxIn)
46 , fusDpbIdx(usDpbIdx)
47 , fusCrobIdx(usCrobIdx)
48 {
49 }
50
51 FinalHit() : FinalHit(0, 0, 0, 0) {}
52
54
55 void assign(const FinalHit& src)
56 {
57 fulLongTs = src.fulLongTs;
58 fusRawAdc = src.fusRawAdc;
61 fusDpbIdx = src.fusDpbIdx;
63 }
64
66 {
67 assign(src);
68 return *this;
69 }
70 bool operator<(const FinalHit& other) const { return fulLongTs < other.fulLongTs; }
71
72 inline void reset()
73 {
74 fulLongTs = 0;
75 fusRawAdc = 0;
76 fusAsicIdx = 0;
77 fusChanIdx = 0;
78 fusDpbIdx = 0;
79 fusCrobIdx = 0;
80 }
81
82 inline uint64_t GetTs() const { return fulLongTs; }
83 inline uint16_t GetAdc() const { return fusRawAdc; }
84 inline uint16_t GetAsic() const { return fusAsicIdx; }
85 inline uint16_t GetChan() const { return fusChanIdx; }
86 inline uint16_t GetDpb() const { return fusDpbIdx; }
87 inline uint16_t GetCrob() const { return fusCrobIdx; }
88 };
89} // namespace stsxyter
90#endif // STSXYTERFINALHIT_H
void assign(const FinalHit &src)
FinalHit & operator=(const FinalHit &src)
bool operator<(const FinalHit &other) const
uint16_t GetDpb() const
FinalHit(uint64_t ulLongTsIn, uint16_t usRawAdcIn, uint16_t usAsicIdxIn, uint16_t usChanIdxIn, uint16_t usDpbIdx=0, uint16_t usCrobIdx=0)
uint16_t GetAsic() const
uint16_t GetChan() const
FinalHit(const FinalHit &src)
uint16_t GetCrob() const
uint64_t GetTs() const
uint16_t GetAdc() const