ATLAS Offline Software
Loading...
Searching...
No Matches
CscRawData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONBYTESTREAM_CSCRAWDATA_H
6#define MUONBYTESTREAM_CSCRAWDATA_H
7
8#include <inttypes.h>
9#include <vector>
10#include <iostream>
11
12class MsgStream;
13
21class CscRawData final {
22
23 private:
24
26
28 std::vector<uint16_t> m_amps;
29
31 uint32_t m_address;
32
34 uint16_t m_id;
35
37 uint16_t m_time;
38
40 uint16_t m_rpuID;
41
43 uint16_t m_width;
44
47
49 uint32_t m_hashId;
50
51 public:
52
54 CscRawData () : m_address(0), m_id(0), m_time(0), m_rpuID(0),
55 m_width(0), m_isTimeComputed(false), m_hashId(0) {}
56
58 CscRawData (const std::vector<uint16_t>& p_amp, uint32_t address, uint16_t id) :
59 m_amps (p_amp),
61 m_id(id),
62 m_time (0x0),
63 m_rpuID (0x0),
64 m_width (0x1),
65 m_isTimeComputed (false),
66 m_hashId (0x0)
67 {
68 }
69
71 CscRawData (const std::vector<uint16_t>& p_amp, uint32_t address,
72 uint16_t id, uint16_t rpuID) :
73 m_amps (p_amp),
75 m_id(id),
76 m_time (0x0),
78 m_width (0x1),
79 m_isTimeComputed (false),
80 m_hashId (0x0)
81 {
82 }
83
85 CscRawData (const std::vector<uint16_t>& p_amp, uint32_t address, uint16_t id,
86 uint16_t rpuID, uint16_t width) :
87 m_amps (p_amp),
89 m_id(id),
90 m_time (0x0),
93 m_isTimeComputed (false),
94 m_hashId (0x0)
95 {
96 }
97
99 CscRawData (const std::vector<uint16_t>& p_amp, uint32_t address, uint16_t id,
100 uint16_t time, uint16_t rpuID, uint16_t width, uint32_t hashId) :
101 m_amps (p_amp),
103 m_id(id),
104 m_time(time),
105 m_rpuID(rpuID),
106 m_width(width),
107 m_isTimeComputed (true),
109 {
110 }
111 CscRawData(const CscRawData&) = default;
112 CscRawData(CscRawData&&) = default;
113 CscRawData& operator=(const CscRawData&) = default;
116
118 void setRpuID (uint16_t rpuID) { m_rpuID = rpuID; }
119 void setTime (uint16_t time) { m_time = time; m_isTimeComputed = true; }
120 void setWidth (uint16_t width) { m_width = width; }
121 void setHashID (uint32_t hash) { m_hashId = hash; }
123
125 uint16_t rpuID() const { return m_rpuID; }
126 uint16_t identify() const { return m_id; }
127 uint16_t time() const { return m_time; }
128 uint16_t width() const { return m_width; }
129 bool isTimeComputed() const { return m_isTimeComputed; }
130 const std::vector<uint16_t>& samples() const { return m_amps; }
131 uint32_t address() const { return m_address; }
132 uint32_t hashId() const { return m_hashId; }
133
135 bool samples (const unsigned int i, const unsigned int numSample, std::vector<uint16_t>& adc) const ;
136};
137
139MsgStream& operator << ( MsgStream& sl, const CscRawData& coll);
140
142std::ostream& operator << ( std::ostream& sl, const CscRawData& coll);
143
144
145#endif
146
147
148
149
150
151
152
MsgStream & operator<<(MsgStream &sl, const CscRawData &coll)
Overload of << operator for MsgStream for debug output.
Class to hold the electronic output for a single CSC readout channel: n sampling ADC data + the addre...
Definition CscRawData.h:21
uint32_t m_hashId
offline hash identifier of the first strip in the online cluster
Definition CscRawData.h:49
CscRawData(const std::vector< uint16_t > &p_amp, uint32_t address, uint16_t id, uint16_t rpuID, uint16_t width)
cluster of strip constructor with cluster width and SPU identifier
Definition CscRawData.h:85
CscRawData()
default constructor
Definition CscRawData.h:54
uint16_t time() const
Definition CscRawData.h:127
uint16_t m_rpuID
SPU -Sparsifier Processing Unit - identifier in which this strip is.
Definition CscRawData.h:40
std::vector< uint16_t > m_amps
data members
Definition CscRawData.h:28
CscRawData & operator=(CscRawData &&)=default
uint32_t address() const
Definition CscRawData.h:131
uint32_t m_address
online identifier of the first strip in the ROD cluster
Definition CscRawData.h:31
uint32_t hashId() const
Definition CscRawData.h:132
CscRawData(CscRawData &&)=default
bool m_isTimeComputed
failed to compute the time in the ROD or not - if failure m_time = 0
Definition CscRawData.h:46
CscRawData & operator=(const CscRawData &)=default
void setHashID(uint32_t hash)
Definition CscRawData.h:121
CscRawData(const std::vector< uint16_t > &p_amp, uint32_t address, uint16_t id, uint16_t rpuID)
single strip constructor with SPU information
Definition CscRawData.h:71
CscRawData(const std::vector< uint16_t > &p_amp, uint32_t address, uint16_t id, uint16_t time, uint16_t rpuID, uint16_t width, uint32_t hashId)
full constructor for cluster with timing information
Definition CscRawData.h:99
CscRawData(const CscRawData &)=default
uint16_t m_id
online identifier of the collection in which this strip is
Definition CscRawData.h:34
uint16_t rpuID() const
data access methods
Definition CscRawData.h:125
uint16_t m_time
online peaking time of the first strip: this is 0 if failed to compute time in the ROD
Definition CscRawData.h:37
uint16_t m_width
number of consecutive strips forming the on-line cluster
Definition CscRawData.h:43
void setRpuID(uint16_t rpuID)
construction methods
Definition CscRawData.h:118
void set_isTimeComputed()
Definition CscRawData.h:122
uint16_t identify() const
Definition CscRawData.h:126
uint16_t width() const
Definition CscRawData.h:128
void setWidth(uint16_t width)
Definition CscRawData.h:120
CscRawData(const std::vector< uint16_t > &p_amp, uint32_t address, uint16_t id)
constructor for a single strip
Definition CscRawData.h:58
const std::vector< uint16_t > & samples() const
Definition CscRawData.h:130
void setTime(uint16_t time)
Definition CscRawData.h:119
bool isTimeComputed() const
Definition CscRawData.h:129