Project
Loading...
Searching...
No Matches
RawEventData.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11//
12// file RawEventData.h class for RAW data format
13// Alla.Maevskaya@cern.ch
14// with Artur.Furs@cern.ch
15//
16#ifndef ALICEO2_FIT_RAWEVENTDATA_H_
17#define ALICEO2_FIT_RAWEVENTDATA_H_
22namespace o2
24namespace fit
27 static constexpr size_t PayloadSize = 10;
28 static constexpr size_t PayloadPerGBTword = 10;
29 static constexpr size_t MinNelements = 1;
30 static constexpr size_t MaxNelements = 1;
31 static constexpr uint64_t sDescriptor = 0xf;
32 uint64_t bc : 12;
33 uint64_t orbit : 32;
34 uint64_t phase : 3;
35 uint64_t errorPhase : 1;
36 uint64_t reservedField1 : 16;
37 uint64_t reservedField2 : 8;
38 uint64_t nGBTWords : 4;
39 uint64_t startDescriptor : 4;
40 InteractionRecord getIntRec() const { return InteractionRecord{(uint16_t)bc, (uint32_t)orbit}; }
41 uint16_t getBC() const { return static_cast<uint16_t>(bc); }
42 uint32_t getOrbit() const { return static_cast<uint32_t>(orbit); }
43 void setIntRec(const InteractionRecord& intRec)
44 {
45 bc = intRec.bc;
46 orbit = intRec.orbit;
47 }
48 inline bool isBadDescriptor() const { return startDescriptor != sDescriptor; }
49 void print() const;
50} __attribute__((__packed__));
51
52struct EventData {
53 static constexpr size_t PayloadSize = 5;
54 static constexpr size_t PayloadPerGBTword = 10;
55 static constexpr size_t MinNelements = 0;
56 static constexpr size_t MaxNelements = 12;
57 int16_t time : 12;
58 int16_t charge : 13;
59 uint16_t pmBits : 8;
60 uint8_t reservedField : 3;
61 uint8_t channelID : 4;
63 {
64 /*
65 numberADC = std::rand() % 2;
66 isDoubleEvent = 0;
67 isTimeInfoNOTvalid = 0;
68 isCFDinADCgate = 1;
69 isTimeInfoLate = 0;
70 isAmpHigh = 0;
71 isEventInTVDC = 1;
72 isTimeInfoLost = 0;
73 */
74 }
75 void print() const;
76} __attribute__((__packed__));
77
78struct TCMdata {
79 static constexpr size_t PayloadSize = 10;
80 static constexpr size_t PayloadPerGBTword = 10;
81 static constexpr size_t MinNelements = 0;
82 static constexpr size_t MaxNelements = 1;
83
84 uint64_t orA : 1, // 0 bit (0 byte)
85 orC : 1, // 1 bit
86 sCen : 1, // 2 bit
87 cen : 1, // 3 bit
88 vertex : 1, // 4 bit
89 laser : 1, // 5 bit
90 outputsAreBlocked : 1, // 6 bit
91 dataIsValid : 1, // 7 bit
92 nChanA : 7, // 8 bit(1 byte)
93 reservedField2 : 1, // 15 bit
94 nChanC : 7, // 16 bit(2 byte)
95 reservedField3 : 1; // 23 bit
96 int64_t amplA : 17, // 24 bit (3 byte)
97 reservedField4 : 1, // 41 bit
98 amplC : 17, // 42 bit.
99 reservedField5 : 1, // 59 bit.
100 timeA : 9, // 60 bit
101 reservedField6 : 1, // 69 bit
102 timeC : 9, // 70 bit
103 reservedField7 : 1, // 79 bit
104 reservedField8 : 48; // 80 bit
105
106 void print() const;
107} __attribute__((__packed__));
108
110 static constexpr size_t PayloadSize = 4;
111 static constexpr size_t PayloadPerGBTword = 10;
112 static constexpr size_t MinNelements = 0;
113 static constexpr size_t MaxNelements = 20;
114 uint32_t triggerWord;
115 void print() const;
117
118} // namespace fit
119} // namespace o2
120#endif
struct o2::fit::TCMdataExtended __attribute__
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
uint32_t orbit
LHC orbit.
uint16_t bc
bunch crossing ID of interaction
static constexpr size_t MaxNelements
static constexpr size_t PayloadSize
static constexpr size_t MinNelements
static constexpr size_t PayloadPerGBTword
InteractionRecord getIntRec() const
uint32_t getOrbit() const
bool isBadDescriptor() const
static constexpr size_t PayloadSize
static constexpr uint64_t sDescriptor
void setIntRec(const InteractionRecord &intRec)
uint16_t getBC() const
static constexpr size_t PayloadPerGBTword
static constexpr size_t MaxNelements
static constexpr size_t MinNelements
static constexpr size_t MinNelements
static constexpr size_t MaxNelements
static constexpr size_t PayloadSize
static constexpr size_t PayloadPerGBTword
int64_t reservedField4
void print() const
static constexpr size_t MaxNelements
static constexpr size_t PayloadSize
int64_t reservedField5
static constexpr size_t MinNelements
uint64_t reservedField2
uint64_t outputsAreBlocked
uint64_t dataIsValid
uint64_t reservedField3
static constexpr size_t PayloadPerGBTword