Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
EventFilter
Phase2TrackerRawToDigi
interface
Phase2TrackerFEDZSChannelUnpacker.h
Go to the documentation of this file.
1
#ifndef EventFilter_Phase2TrackerRawToDigi_Phase2TrackerPhase2TrackerFEDZSChannelUnpacker_H // {
2
#define EventFilter_Phase2TrackerRawToDigi_Phase2TrackerPhase2TrackerFEDZSChannelUnpacker_H
3
4
#include "
EventFilter/Phase2TrackerRawToDigi/interface/Phase2TrackerFEDDAQHeader.h
"
5
#include "
EventFilter/Phase2TrackerRawToDigi/interface/Phase2TrackerFEDDAQTrailer.h
"
6
#include "
EventFilter/Phase2TrackerRawToDigi/interface/Phase2TrackerFEDChannel.h
"
7
#include <cstdint>
8
9
namespace
Phase2Tracker {
10
11
class
Phase2TrackerFEDZSChannelUnpacker
{
12
public
:
13
Phase2TrackerFEDZSChannelUnpacker
(
const
Phase2TrackerFEDChannel
& channel);
14
uint8_t
clusterIndex
()
const
{
return
data_
[
currentOffset_
^ 7]; }
15
uint8_t
clusterLength
()
const
{
return
data_
[(
currentOffset_
+ 1) ^ 7]; }
16
bool
hasData
()
const
{
return
valuesLeft_
; }
17
Phase2TrackerFEDZSChannelUnpacker
&
operator++
();
18
Phase2TrackerFEDZSChannelUnpacker
&
operator++
(
int
);
19
20
private
:
21
const
uint8_t*
data_
;
22
uint8_t
currentOffset_
;
23
uint16_t
valuesLeft_
;
24
};
25
26
// unpacker for ZS CBC data
27
inline
Phase2TrackerFEDZSChannelUnpacker::Phase2TrackerFEDZSChannelUnpacker
(
const
Phase2TrackerFEDChannel
& channel)
28
: data_(channel.
data
()), currentOffset_(channel.
offset
()), valuesLeft_(channel.length() / 2) {}
29
30
inline
Phase2TrackerFEDZSChannelUnpacker
&
Phase2TrackerFEDZSChannelUnpacker::operator++
() {
31
currentOffset_
=
currentOffset_
+ 2;
32
valuesLeft_
--;
33
return
(*
this
);
34
}
35
36
inline
Phase2TrackerFEDZSChannelUnpacker
&
Phase2TrackerFEDZSChannelUnpacker::operator++
(
int
) {
37
++(*this);
38
return
*
this
;
39
}
40
41
}
// namespace Phase2Tracker
42
43
#endif // } end def EventFilter_Phase2TrackerRawToDigi_Phase2TrackerPhase2TrackerFEDZSChannelUnpacker_H
Phase2TrackerFEDDAQHeader.h
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::operator++
Phase2TrackerFEDZSChannelUnpacker & operator++()
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:30
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::data_
const uint8_t * data_
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:21
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::currentOffset_
uint8_t currentOffset_
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:22
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::clusterIndex
uint8_t clusterIndex() const
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:14
Phase2Tracker::Phase2TrackerFEDChannel
Definition:
Phase2TrackerFEDChannel.h:12
Phase2TrackerFEDChannel.h
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::clusterLength
uint8_t clusterLength() const
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:15
Phase2TrackerFEDDAQTrailer.h
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::Phase2TrackerFEDZSChannelUnpacker
Phase2TrackerFEDZSChannelUnpacker(const Phase2TrackerFEDChannel &channel)
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:27
hltrates_dqm_sourceclient-live_cfg.offset
tuple offset
Definition:
hltrates_dqm_sourceclient-live_cfg.py:83
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::valuesLeft_
uint16_t valuesLeft_
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:23
data
char data[epos_bytes_allocation]
Definition:
EPOS_Wrapper.h:79
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker::hasData
bool hasData() const
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:16
Phase2Tracker::Phase2TrackerFEDZSChannelUnpacker
Definition:
Phase2TrackerFEDZSChannelUnpacker.h:11
Generated for CMSSW Reference Manual by
1.8.5