Project
Loading...
Searching...
No Matches
PadWord.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
#ifndef ALICEO2_FOCAL_PADWORD_H
13
#define ALICEO2_FOCAL_PADWORD_H
14
15
#include <iosfwd>
16
#include <gsl/span>
17
#include <cstdint>
18
19
namespace
o2::focal
20
{
21
22
struct
PadASICWord
{
23
union
{
24
struct
{
25
uint32_t
mTrailer
: 3;
26
uint32_t
mWADD
: 9;
27
uint32_t
mBCID
: 12;
28
uint32_t
mFourbit
: 4;
29
uint32_t
mHeader
: 4;
30
};
// ASIC Header word
31
struct
{
32
uint32_t
mADC
: 10;
33
uint32_t
mTOA
: 10;
34
uint32_t
mTOT
: 12;
35
};
// ASIC channel word
36
uint32_t
mData
= 0;
37
};
38
};
39
40
struct
TriggerWord
{
41
union
{
42
struct
{
43
uint64_t
mTrigger7
: 7;
44
uint64_t
mTrigger6
: 7;
45
uint64_t
mTrigger5
: 7;
46
uint64_t
mTrigger4
: 7;
47
uint64_t
mTrigger3
: 7;
48
uint64_t
mTrigger2
: 7;
49
uint64_t
mTrigger1
: 7;
50
uint64_t
mTrigger0
: 7;
51
uint64_t
mHeader1
: 4;
52
uint64_t
mHeader0
: 4;
53
};
54
uint64_t
mData
= 0;
55
};
56
};
57
58
struct
ASICHeader
:
public
PadASICWord
{
59
ASICHeader
()
60
{
61
mData
= 0;
62
}
63
ASICHeader
(uint32_t word)
64
{
65
mData
= word;
66
}
67
ASICHeader
(uint32_t header, uint32_t wadd, uint32_t, uint32_t bcID, uint32_t fourbit, uint32_t trailer)
68
{
69
mTrailer
= trailer;
70
mWADD
= wadd;
71
mBCID
= bcID;
72
mFourbit
= fourbit;
73
mHeader
= header;
74
}
75
uint32_t
getTrailer
()
const
{
return
mTrailer
; }
76
uint32_t
getWadd
()
const
{
return
mWADD
; }
77
uint32_t
getBCID
()
const
{
return
mBCID
; }
78
uint32_t
getFourbit
()
const
{
return
mFourbit
; }
79
uint32_t
getHeader
()
const
{
return
mHeader
; }
80
};
81
82
struct
ASICChannel
:
public
PadASICWord
{
83
ASICChannel
()
84
{
85
mData
= 0;
86
}
87
ASICChannel
(uint32_t word)
88
{
89
mData
= 0;
90
}
91
ASICChannel
(uint32_t
adc
, uint32_t toa, uint32_t tot)
92
{
93
mADC
=
adc
;
94
mTOA
= toa;
95
mTOT
= tot;
96
}
97
uint32_t
getADC
()
const
{
return
mADC
; }
98
uint32_t
getTOA
()
const
{
return
mTOA
; }
99
uint32_t
getTOT
()
const
{
return
mTOT
; }
100
};
101
102
struct
PadGBTWord
{
103
union
{
104
uint64_t
mTriggerWords
[2];
105
uint32_t
mASICWords
[4];
106
};
107
108
const
TriggerWord
&
getTriggerData
()
const
{
return
reinterpret_cast<
const
TriggerWord
&
>
(
mTriggerWords
[0]); }
109
const
TriggerWord
&
getTriggerPadding
()
const
{
return
reinterpret_cast<
const
TriggerWord
&
>
(
mTriggerWords
[1]); }
110
111
template
<
typename
T>
112
gsl::span<const T>
getASICData
()
const
113
{
114
return
gsl::span<const T>(
reinterpret_cast<
const
T*
>
(
mASICWords
), 2);
115
}
116
};
117
118
std::ostream&
operator<<
(std::ostream&
stream
,
const
ASICChannel& channel);
119
std::ostream&
operator<<
(std::ostream&
stream
,
const
ASICHeader& header);
120
std::ostream&
operator<<
(std::ostream&
stream
,
const
TriggerWord& trigger);
121
122
}
// namespace o2::focal
123
124
#endif
// ALICEO2_FOCAL_PADWORD_H
stream
GLuint GLuint stream
Definition
glcorearb.h:1806
o2::focal
Definition
SimTraits.h:171
o2::focal::operator<<
std::ostream & operator<<(std::ostream &in, const IndexExceptionEvent &error)
Definition
ErrorHandling.cxx:46
o2::focal::ASICChannel
Definition
PadWord.h:82
o2::focal::ASICChannel::ASICChannel
ASICChannel(uint32_t word)
Definition
PadWord.h:87
o2::focal::ASICChannel::getADC
uint32_t getADC() const
Definition
PadWord.h:97
o2::focal::ASICChannel::getTOT
uint32_t getTOT() const
Definition
PadWord.h:99
o2::focal::ASICChannel::getTOA
uint32_t getTOA() const
Definition
PadWord.h:98
o2::focal::ASICChannel::ASICChannel
ASICChannel(uint32_t adc, uint32_t toa, uint32_t tot)
Definition
PadWord.h:91
o2::focal::ASICChannel::ASICChannel
ASICChannel()
Definition
PadWord.h:83
o2::focal::ASICHeader
Definition
PadWord.h:58
o2::focal::ASICHeader::ASICHeader
ASICHeader()
Definition
PadWord.h:59
o2::focal::ASICHeader::getFourbit
uint32_t getFourbit() const
Definition
PadWord.h:78
o2::focal::ASICHeader::getTrailer
uint32_t getTrailer() const
Definition
PadWord.h:75
o2::focal::ASICHeader::ASICHeader
ASICHeader(uint32_t word)
Definition
PadWord.h:63
o2::focal::ASICHeader::getWadd
uint32_t getWadd() const
Definition
PadWord.h:76
o2::focal::ASICHeader::getBCID
uint32_t getBCID() const
Definition
PadWord.h:77
o2::focal::ASICHeader::getHeader
uint32_t getHeader() const
Definition
PadWord.h:79
o2::focal::ASICHeader::ASICHeader
ASICHeader(uint32_t header, uint32_t wadd, uint32_t, uint32_t bcID, uint32_t fourbit, uint32_t trailer)
Definition
PadWord.h:67
o2::focal::PadASICWord
Definition
PadWord.h:22
o2::focal::PadASICWord::mData
uint32_t mData
Definition
PadWord.h:36
o2::focal::PadASICWord::mBCID
uint32_t mBCID
Definition
PadWord.h:27
o2::focal::PadASICWord::mWADD
uint32_t mWADD
Definition
PadWord.h:26
o2::focal::PadASICWord::mTOA
uint32_t mTOA
Definition
PadWord.h:33
o2::focal::PadASICWord::mADC
uint32_t mADC
Definition
PadWord.h:32
o2::focal::PadASICWord::mFourbit
uint32_t mFourbit
Definition
PadWord.h:28
o2::focal::PadASICWord::mTrailer
uint32_t mTrailer
Definition
PadWord.h:25
o2::focal::PadASICWord::mTOT
uint32_t mTOT
Definition
PadWord.h:34
o2::focal::PadASICWord::mHeader
uint32_t mHeader
Definition
PadWord.h:29
o2::focal::PadGBTWord
Definition
PadWord.h:102
o2::focal::PadGBTWord::getASICData
gsl::span< const T > getASICData() const
Definition
PadWord.h:112
o2::focal::PadGBTWord::getTriggerData
const TriggerWord & getTriggerData() const
Definition
PadWord.h:108
o2::focal::PadGBTWord::mTriggerWords
uint64_t mTriggerWords[2]
Definition
PadWord.h:104
o2::focal::PadGBTWord::getTriggerPadding
const TriggerWord & getTriggerPadding() const
Definition
PadWord.h:109
o2::focal::PadGBTWord::mASICWords
uint32_t mASICWords[4]
Definition
PadWord.h:105
o2::focal::TriggerWord
Definition
PadWord.h:40
o2::focal::TriggerWord::mTrigger4
uint64_t mTrigger4
Definition
PadWord.h:46
o2::focal::TriggerWord::mTrigger7
uint64_t mTrigger7
Definition
PadWord.h:43
o2::focal::TriggerWord::mHeader1
uint64_t mHeader1
Definition
PadWord.h:51
o2::focal::TriggerWord::mTrigger5
uint64_t mTrigger5
Definition
PadWord.h:45
o2::focal::TriggerWord::mTrigger6
uint64_t mTrigger6
Definition
PadWord.h:44
o2::focal::TriggerWord::mData
uint64_t mData
Definition
PadWord.h:54
o2::focal::TriggerWord::mTrigger0
uint64_t mTrigger0
Definition
PadWord.h:50
o2::focal::TriggerWord::mHeader0
uint64_t mHeader0
Definition
PadWord.h:52
o2::focal::TriggerWord::mTrigger1
uint64_t mTrigger1
Definition
PadWord.h:49
o2::focal::TriggerWord::mTrigger3
uint64_t mTrigger3
Definition
PadWord.h:47
o2::focal::TriggerWord::mTrigger2
uint64_t mTrigger2
Definition
PadWord.h:48
adc
ArrayADC adc
Definition
test_ctf_io_trd.cxx:48
Detectors
FOCAL
reconstruction
include
FOCALReconstruction
PadWord.h
Generated on Tue Feb 25 2025 23:16:16 for Project by
1.9.8