ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1RPChardware
TrigT1RPChardware
MatrixReadOut.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TrigT1RPChardware_MatrixReadOut_H
6
#define TrigT1RPChardware_MatrixReadOut_H
7
8
#include <iostream>
9
10
#include "
MuonCablingTools/BaseObject.h
"
11
#include "
TrigT1RPChardware/Lvl1Def.h
"
12
#include "
TrigT1RPChardware/Matrix.h
"
13
#include "
TrigT1RPChardware/MatrixReadOutStructure.h
"
14
#include "
TrigT1RPChardware/crc8.h
"
15
16
class
ReadOutManager;
17
18
class
MatrixReadOut
:
public
BaseObject
{
19
public
:
20
enum
DataVersion
{
Simulation
,
Atlas
};
21
22
MatrixReadOut
(
Matrix
*p,
ubit16
FEevent,
uint
NOBXS,
DataVersion
=
MatrixReadOut::Atlas
);
23
MatrixReadOut
(
ubit16
FEevent = 0,
uint
NOBXS=8,
DataVersion
=
MatrixReadOut::Atlas
);
24
MatrixReadOut
(
ubit16
*v,
ubit16
numWords,
uint
NOBXS,
DataVersion
=
MatrixReadOut::Atlas
);
25
MatrixReadOut
(
const
MatrixReadOut
&MROOrig);
// copy constructor
26
MatrixReadOut
&
operator=
(
const
MatrixReadOut
&MROOrig) =
delete
;
27
~MatrixReadOut
();
28
MatrixReadOutStructure
getCMAHit
(
int
index
);
29
MatrixReadOutStructure
getHeader
();
30
MatrixReadOutStructure
getSubHeader
();
31
MatrixReadOutStructure
getFooter
();
32
void
deleteCMABody
();
33
void
reset
(
uint
NOBXS);
34
//***********************************************//
35
// following methods are used by Lvl1RpcTrig //
36
//***********************************************//
37
38
void
writeHeader
(
ubit16
CMcode);
39
void
writeSubHeader
();
40
void
writeCMABody
(
ubit16
_BC,
ubit16
_TIME,
ubit16
IJK,
ubit16
_STRIP);
41
void
writeFooter
();
42
void
writeRecord
(
ubit16
thisRecord,
bool
last);
43
void
overwriteHeader
(
ubit16
thisRecord) {
m_Header
= thisRecord; };
// new method
44
void
overwriteSubHeader
(
ubit16
thisRecord) {
m_SubHeader
= thisRecord; };
// new method
45
void
reComputeFooter
() {
46
writeFooter
();
47
m_checkFooterNum
--;
48
};
// new method
49
ubit16
numberOfBodyWords
() {
return
m_numberOfWordsInBody
; };
50
ubit16
numberOfFragmentWords
() {
return
m_numberOfWordsInFrag
; };
51
//**************************************************//
52
// general user methods to read back ReadOut stream //
53
//**************************************************//
54
ubit16
readHeader
();
55
ubit16
readSubHeader
();
56
ubit16
readCMABodyCurrent
();
57
void
readCMABody
(
ubit16
*Body);
58
ubit16
readFooter
();
59
ubit16
readCMAWord
();
60
ubit16
checkCRC8
(
ubit16
foot);
61
void
topCMABody
();
62
//*********************************************************//
63
// general user methods to display/print ReadOut stream //
64
//*********************************************************//
65
void
display
(std::ostream &stream);
66
void
displayHeader
(std::ostream &stream);
67
void
displaySubHeader
(std::ostream &stream);
68
void
displayBody
(std::ostream &stream);
69
void
displayFooter
(std::ostream &stream);
70
void
bytestream
(std::ostream &stream);
71
//*********************************************************//
72
// general user methods to check ReadOut stream structure //
73
//*********************************************************//
74
ubit16
checkBodyOrder
(
bool
debugPrint =
false
);
75
ubit16
checkFragment
();
76
//*********************************************************//
77
// overload of "inseritore" operator //
78
//*********************************************************//
79
friend
std::ostream &
operator<<
(std::ostream &stream,
MatrixReadOut
*p) {
80
p->display(stream);
81
return
stream;
82
}
83
friend
std::ostream &
operator<<
(std::ostream &stream,
MatrixReadOut
&p) {
84
p.display(stream);
85
return
stream;
86
}
87
//*********************************************************//
88
void
doMatrix
(
Matrix
*CMpointer);
89
void
makeTestPattern
(
ubit16
mode,
ubit16
ktimes,
int
eventNum);
90
91
private
:
92
// fp
93
94
friend
class
ReadOutManager
;
95
ReadOutManager
*
m_myBoss
{};
96
void
setManager
(
ReadOutManager
*boss);
97
void
makeFragment
();
98
99
MatrixReadOut::DataVersion
m_data_version
;
100
101
MatrixReadOutStructure
m_MROS
{};
102
ubit16
m_BunchFrom
{};
103
ubit16
m_BunchTo
{};
104
ubit16
m_FEL1ID
{};
105
ubit16
m_ROOffset
{};
106
ubit16
m_NDLLCYC
{};
107
ubit16
m_NBunch
{};
108
ubit16
m_nclock
{};
109
ubit16
m_nchan
[2]{};
110
ubit16
m_timeSeparation
{};
111
Matrix
*
m_CM
{};
// pointer to the CM
112
ubit16
*
m_BS
{};
// pointer to Fragment
113
//**************************************//
114
// //
115
// Matrix ReadOut structure //
116
// //
117
//**************************************//
118
struct
CMROData
{
119
ubit16
hit
{};
120
CMROData
*
next
{};
121
};
122
ubit16
m_Header
{};
// Header record
123
ubit16
m_Footer
{};
// Footer record
124
ubit16
m_SubHeader
{};
// Subheader record
125
CMROData
*
m_Body
{};
// Body structure record
126
//**********************************************************//
127
ubit16
m_addressOfWordScanned
{};
128
CMROData
*
m_BodyLast
{};
// pointer to the last hit recorded
129
CMROData
*
m_BodyCurr
{};
// pointer to the current hit scanned
130
//**********************************************************//
131
ubit16
m_first8bitsON
{};
132
ubit16
m_numberOfWordsInFrag
{};
133
ubit16
m_numberOfWordsInBody
{};
134
ubit16
m_checkHeaderPos
{};
135
ubit16
m_checkHeaderNum
{};
136
ubit16
m_checkSubHeaderPos
{};
137
ubit16
m_checkSubHeaderNum
{};
138
ubit16
m_checkFooterPos
{};
139
ubit16
m_checkFooterNum
{};
140
ubit16
m_checkCR
{};
141
ubit16
m_checkUnkown
{};
142
//************************//
143
void
initialize
(
uint
NOBXS);
144
void
makeHeader
();
145
void
makeSubHeader
();
146
void
makeCMABody
();
147
void
makeFooter
();
148
ubit16
makeCMABodyHit
();
149
ubit16
makeCMABodyTrg
();
150
void
makeNewHit
(
ubit16
newHit);
151
void
makeNewHit
(
ubit16
newHit, CMROData *previous, CMROData *next);
152
void
sortAndMakeNewHit
(
ubit16
newHit);
153
ubit16
computeCR
();
154
};
155
#endif
BaseObject.h
uint
unsigned int uint
Definition
LArOFPhaseFill.cxx:19
Lvl1Def.h
MatrixReadOutStructure.h
ubit16
unsigned short int ubit16
Definition
RpcByteStreamEncoder.h:20
Matrix.h
BaseObject::BaseObject
BaseObject(ObjectType, const std::string &)
Definition
BaseObject.cxx:7
MatrixReadOutStructure
Definition
MatrixReadOutStructure.h:13
MatrixReadOut
Definition
MatrixReadOut.h:18
MatrixReadOut::m_checkCR
ubit16 m_checkCR
Definition
MatrixReadOut.h:140
MatrixReadOut::writeRecord
void writeRecord(ubit16 thisRecord, bool last)
Definition
MatrixReadOut.cxx:183
MatrixReadOut::m_NBunch
ubit16 m_NBunch
Definition
MatrixReadOut.h:107
MatrixReadOut::numberOfBodyWords
ubit16 numberOfBodyWords()
Definition
MatrixReadOut.h:49
MatrixReadOut::m_checkFooterNum
ubit16 m_checkFooterNum
Definition
MatrixReadOut.h:139
MatrixReadOut::checkCRC8
ubit16 checkCRC8(ubit16 foot)
Definition
MatrixReadOut.cxx:826
MatrixReadOut::MatrixReadOut
MatrixReadOut(Matrix *p, ubit16 FEevent, uint NOBXS, DataVersion=MatrixReadOut::Atlas)
Definition
MatrixReadOut.cxx:15
MatrixReadOut::m_BunchFrom
ubit16 m_BunchFrom
Definition
MatrixReadOut.h:102
MatrixReadOut::m_data_version
MatrixReadOut::DataVersion m_data_version
Definition
MatrixReadOut.h:99
MatrixReadOut::setManager
void setManager(ReadOutManager *boss)
Definition
MatrixReadOut.cxx:938
MatrixReadOut::operator<<
friend std::ostream & operator<<(std::ostream &stream, MatrixReadOut &p)
Definition
MatrixReadOut.h:83
MatrixReadOut::m_ROOffset
ubit16 m_ROOffset
Definition
MatrixReadOut.h:105
MatrixReadOut::makeHeader
void makeHeader()
Definition
MatrixReadOut.cxx:274
MatrixReadOut::doMatrix
void doMatrix(Matrix *CMpointer)
Definition
MatrixReadOut.cxx:958
MatrixReadOut::readCMAWord
ubit16 readCMAWord()
Definition
MatrixReadOut.cxx:685
MatrixReadOut::makeFooter
void makeFooter()
Definition
MatrixReadOut.cxx:309
MatrixReadOut::readCMABody
void readCMABody(ubit16 *Body)
Definition
MatrixReadOut.cxx:673
MatrixReadOut::m_timeSeparation
ubit16 m_timeSeparation
Definition
MatrixReadOut.h:110
MatrixReadOut::m_Body
CMROData * m_Body
Definition
MatrixReadOut.h:125
MatrixReadOut::readHeader
ubit16 readHeader()
Definition
MatrixReadOut.cxx:657
MatrixReadOut::m_numberOfWordsInFrag
ubit16 m_numberOfWordsInFrag
Definition
MatrixReadOut.h:132
MatrixReadOut::makeCMABody
void makeCMABody()
Definition
MatrixReadOut.cxx:299
MatrixReadOut::checkBodyOrder
ubit16 checkBodyOrder(bool debugPrint=false)
Definition
MatrixReadOut.cxx:832
MatrixReadOut::topCMABody
void topCMABody()
Definition
MatrixReadOut.cxx:713
MatrixReadOut::getFooter
MatrixReadOutStructure getFooter()
Definition
MatrixReadOut.cxx:953
MatrixReadOut::readSubHeader
ubit16 readSubHeader()
Definition
MatrixReadOut.cxx:659
MatrixReadOut::displayHeader
void displayHeader(std::ostream &stream)
Definition
MatrixReadOut.cxx:725
MatrixReadOut::makeCMABodyTrg
ubit16 makeCMABodyTrg()
Definition
MatrixReadOut.cxx:447
MatrixReadOut::m_NDLLCYC
ubit16 m_NDLLCYC
Definition
MatrixReadOut.h:106
MatrixReadOut::makeSubHeader
void makeSubHeader()
Definition
MatrixReadOut.cxx:291
MatrixReadOut::displayBody
void displayBody(std::ostream &stream)
Definition
MatrixReadOut.cxx:751
MatrixReadOut::~MatrixReadOut
~MatrixReadOut()
Definition
MatrixReadOut.cxx:175
MatrixReadOut::m_myBoss
ReadOutManager * m_myBoss
Definition
MatrixReadOut.h:95
MatrixReadOut::m_checkHeaderPos
ubit16 m_checkHeaderPos
Definition
MatrixReadOut.h:134
MatrixReadOut::m_addressOfWordScanned
ubit16 m_addressOfWordScanned
Definition
MatrixReadOut.h:127
MatrixReadOut::ReadOutManager
friend class ReadOutManager
Definition
MatrixReadOut.h:94
MatrixReadOut::overwriteHeader
void overwriteHeader(ubit16 thisRecord)
Definition
MatrixReadOut.h:43
MatrixReadOut::deleteCMABody
void deleteCMABody()
Definition
MatrixReadOut.cxx:246
MatrixReadOut::m_checkUnkown
ubit16 m_checkUnkown
Definition
MatrixReadOut.h:141
MatrixReadOut::bytestream
void bytestream(std::ostream &stream)
Definition
MatrixReadOut.cxx:790
MatrixReadOut::writeSubHeader
void writeSubHeader()
Definition
MatrixReadOut.cxx:539
MatrixReadOut::m_BS
ubit16 * m_BS
Definition
MatrixReadOut.h:112
MatrixReadOut::m_BodyCurr
CMROData * m_BodyCurr
Definition
MatrixReadOut.h:129
MatrixReadOut::sortAndMakeNewHit
void sortAndMakeNewHit(ubit16 newHit)
Definition
MatrixReadOut.cxx:591
MatrixReadOut::displayFooter
void displayFooter(std::ostream &stream)
Definition
MatrixReadOut.cxx:777
MatrixReadOut::m_Footer
ubit16 m_Footer
Definition
MatrixReadOut.h:123
MatrixReadOut::writeHeader
void writeHeader(ubit16 CMcode)
Definition
MatrixReadOut.cxx:529
MatrixReadOut::m_MROS
MatrixReadOutStructure m_MROS
Definition
MatrixReadOut.h:101
MatrixReadOut::m_FEL1ID
ubit16 m_FEL1ID
Definition
MatrixReadOut.h:104
MatrixReadOut::m_nclock
ubit16 m_nclock
Definition
MatrixReadOut.h:108
MatrixReadOut::m_BodyLast
CMROData * m_BodyLast
Definition
MatrixReadOut.h:128
MatrixReadOut::makeCMABodyHit
ubit16 makeCMABodyHit()
Definition
MatrixReadOut.cxx:336
MatrixReadOut::getCMAHit
MatrixReadOutStructure getCMAHit(int index)
Definition
MatrixReadOut.cxx:699
MatrixReadOut::m_numberOfWordsInBody
ubit16 m_numberOfWordsInBody
Definition
MatrixReadOut.h:133
MatrixReadOut::m_checkFooterPos
ubit16 m_checkFooterPos
Definition
MatrixReadOut.h:138
MatrixReadOut::display
void display(std::ostream &stream)
Definition
MatrixReadOut.cxx:718
MatrixReadOut::makeTestPattern
void makeTestPattern(ubit16 mode, ubit16 ktimes, int eventNum)
Definition
MatrixReadOut.cxx:1032
MatrixReadOut::m_checkSubHeaderPos
ubit16 m_checkSubHeaderPos
Definition
MatrixReadOut.h:136
MatrixReadOut::DataVersion
DataVersion
Definition
MatrixReadOut.h:20
MatrixReadOut::Atlas
@ Atlas
Definition
MatrixReadOut.h:20
MatrixReadOut::m_first8bitsON
ubit16 m_first8bitsON
Definition
MatrixReadOut.h:131
MatrixReadOut::readCMABodyCurrent
ubit16 readCMABodyCurrent()
Definition
MatrixReadOut.cxx:663
MatrixReadOut::getHeader
MatrixReadOutStructure getHeader()
Definition
MatrixReadOut.cxx:943
MatrixReadOut::writeFooter
void writeFooter()
Definition
MatrixReadOut.cxx:556
MatrixReadOut::m_nchan
ubit16 m_nchan[2]
Definition
MatrixReadOut.h:109
MatrixReadOut::m_checkHeaderNum
ubit16 m_checkHeaderNum
Definition
MatrixReadOut.h:135
MatrixReadOut::m_Header
ubit16 m_Header
Definition
MatrixReadOut.h:122
MatrixReadOut::operator<<
friend std::ostream & operator<<(std::ostream &stream, MatrixReadOut *p)
Definition
MatrixReadOut.h:79
MatrixReadOut::computeCR
ubit16 computeCR()
Definition
MatrixReadOut.cxx:317
MatrixReadOut::m_CM
Matrix * m_CM
Definition
MatrixReadOut.h:111
MatrixReadOut::operator=
MatrixReadOut & operator=(const MatrixReadOut &MROOrig)=delete
MatrixReadOut::reComputeFooter
void reComputeFooter()
Definition
MatrixReadOut.h:45
MatrixReadOut::numberOfFragmentWords
ubit16 numberOfFragmentWords()
Definition
MatrixReadOut.h:50
MatrixReadOut::makeFragment
void makeFragment()
Definition
MatrixReadOut.cxx:262
MatrixReadOut::readFooter
ubit16 readFooter()
Definition
MatrixReadOut.cxx:661
MatrixReadOut::writeCMABody
void writeCMABody(ubit16 _BC, ubit16 _TIME, ubit16 IJK, ubit16 _STRIP)
Definition
MatrixReadOut.cxx:546
MatrixReadOut::m_checkSubHeaderNum
ubit16 m_checkSubHeaderNum
Definition
MatrixReadOut.h:137
MatrixReadOut::reset
void reset(uint NOBXS)
Definition
MatrixReadOut.cxx:240
MatrixReadOut::m_SubHeader
ubit16 m_SubHeader
Definition
MatrixReadOut.h:124
MatrixReadOut::makeNewHit
void makeNewHit(ubit16 newHit)
Definition
MatrixReadOut.cxx:565
MatrixReadOut::displaySubHeader
void displaySubHeader(std::ostream &stream)
Definition
MatrixReadOut.cxx:739
MatrixReadOut::m_BunchTo
ubit16 m_BunchTo
Definition
MatrixReadOut.h:103
MatrixReadOut::overwriteSubHeader
void overwriteSubHeader(ubit16 thisRecord)
Definition
MatrixReadOut.h:44
MatrixReadOut::checkFragment
ubit16 checkFragment()
Definition
MatrixReadOut.cxx:802
MatrixReadOut::getSubHeader
MatrixReadOutStructure getSubHeader()
Definition
MatrixReadOut.cxx:948
Matrix
Definition
Trigger/TrigT1/TrigT1RPChardware/TrigT1RPChardware/Matrix.h:14
crc8.h
Atlas
Definition
ExtendedEventContext.h:21
Simulation
Definition
BeamEffectsAlg.cxx:21
index
Definition
index.py:1
initialize
void initialize()
Definition
run_EoverP.cxx:894
MatrixReadOut::CMROData
Definition
MatrixReadOut.h:118
MatrixReadOut::CMROData::next
CMROData * next
Definition
MatrixReadOut.h:120
MatrixReadOut::CMROData::hit
ubit16 hit
Definition
MatrixReadOut.h:119
Generated on
for ATLAS Offline Software by
1.17.0