ATLAS Offline Software
Trigger
TrigT1
TrigT1RPClogic
src
PADreadout.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrigT1RPClogic/PADreadout.h
"
6
#include "
TrigT1RPChardware/MatrixReadOut.h
"
7
#include <stdexcept>
8
9
10
PADreadout::PADreadout
(
int
sector,
int
pad) :
11
RPCtrigDataObject
(sector*100+pad,
"PAD readout"
),
12
m_sector(sector),
13
m_PAD(pad)
14
{
15
}
16
17
18
PADreadout::PADreadout
(
const
PADreadout
& readout) :
19
RPCtrigDataObject
(readout.
number
(),readout.
name
()),
20
m_sector(readout.sector()),
21
m_PAD(readout.PAD())
22
{
23
for
(
int
i
=0;
i
<8;++
i
)
m_matrices_readout
[
i
] = readout.
matrices_readout
(
i
);
24
}
25
26
PADreadout
27
PADreadout::operator=
(
const
PADreadout
& readout)
28
{
29
static_cast<
RPCtrigDataObject
&
>
(*this) =
30
static_cast<
const
RPCtrigDataObject
&
>
(readout);
31
m_sector
= readout.
sector
();
32
m_PAD
= readout.
PAD
();
33
34
for
(
int
i
=0;
i
<8;++
i
)
m_matrices_readout
[
i
] = readout.
matrices_readout
(
i
);
35
return
*
this
;
36
}
37
38
39
bool
40
PADreadout::operator==
(
const
PADreadout
& padReadout)
const
41
{
42
return
(
m_sector
== padReadout.
sector
() and
m_PAD
== padReadout.
PAD
() );
43
}
44
45
bool
46
PADreadout::operator!=
(
const
PADreadout
& padReadout)
const
47
{
48
return
!(*
this
== padReadout);
49
}
50
51
bool
52
PADreadout::operator<
(
const
PADreadout
& padReadout)
const
53
{
54
if
(
m_sector
< padReadout.
sector
() )
return
true
;
55
if
(
m_PAD
< padReadout.
PAD
() )
return
true
;
56
return
false
;
57
}
58
59
void
60
PADreadout::load_readout
(std::array<MatrixReadOut*, 2>& readout)
61
{
62
int
mat
= 0;
63
for
(
int
i
=0;
i
< 8; ++
i
)
if
(
m_matrices_readout
[
i
] == 0){
mat
=
i
;
break
;}
64
if
(
mat
> 6 ){
65
throw
std::runtime_error(
"trying to load more than 8 matrices into PAD readout!"
);
66
}
67
m_matrices_readout
[
mat
] = readout[0];
68
m_matrices_readout
[
mat
+1] = readout[1];
69
}
70
71
MatrixReadOut
*
72
PADreadout::matrices_readout
(
int
i
)
const
73
{
74
if
(
i
>7) {
75
return
0;
76
}
77
return
m_matrices_readout
[
i
];
78
}
79
80
PadReadOut
*
81
PADreadout::give_pad_readout
(
void
)
82
{
83
if
(!
m_pad_readout
)
m_pad_readout
= std::make_unique<PadReadOut>(
m_PAD
,
m_matrices_readout
);
84
return
m_pad_readout
.get();
85
}
PADreadout::operator<
bool operator<(const PADreadout &) const
Definition:
PADreadout.cxx:52
mat
GeoMaterial * mat
Definition:
LArDetectorConstructionTBEC.cxx:55
PADreadout::m_matrices_readout
MatrixReadOut * m_matrices_readout[8]
Definition:
PADreadout.h:25
PADreadout::m_pad_readout
std::unique_ptr< PadReadOut > m_pad_readout
Definition:
PADreadout.h:26
PADreadout
Definition:
PADreadout.h:20
PadReadOut
Definition:
PadReadOut.h:15
PADreadout.h
MatrixReadOut
Definition:
MatrixReadOut.h:18
lumiFormat.i
int i
Definition:
lumiFormat.py:85
PADreadout::PAD
int PAD(void) const
Definition:
PADreadout.h:41
PADreadout::sector
int sector(void) const
Definition:
PADreadout.h:40
PADreadout::operator!=
bool operator!=(const PADreadout &) const
Definition:
PADreadout.cxx:46
PADreadout::matrices_readout
MatrixReadOut * matrices_readout(int) const
Definition:
PADreadout.cxx:72
python.selection.number
number
Definition:
selection.py:20
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:221
RPCtrigDataObject
Definition:
RPCtrigDataObject.h:15
PADreadout::m_PAD
int m_PAD
Definition:
PADreadout.h:23
PADreadout::m_sector
int m_sector
Definition:
PADreadout.h:22
PADreadout::operator=
PADreadout operator=(const PADreadout &)
Definition:
PADreadout.cxx:27
PADreadout::PADreadout
PADreadout(int, int)
Definition:
PADreadout.cxx:10
PADreadout::operator==
bool operator==(const PADreadout &) const
Definition:
PADreadout.cxx:40
MatrixReadOut.h
PADreadout::load_readout
void load_readout(std::array< MatrixReadOut *, 2 > &)
Definition:
PADreadout.cxx:60
PADreadout::give_pad_readout
PadReadOut * give_pad_readout(void)
Definition:
PADreadout.cxx:81
Generated on Thu Nov 7 2024 21:23:13 for ATLAS Offline Software by
1.8.18