ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonConditions
MuonCondCabling
RPC_CondCabling
src
RDOindex.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
RPC_CondCabling/RDOindex.h
"
6
7
#include <iomanip>
8
9
#include "
MuonCablingTools/RPCdecoder.h
"
10
11
RDOindex::RDOindex
(
unsigned
int
PAD,
unsigned
int
code,
12
const
RpcIdHelper
& helper)
13
:
m_PADid
{static_cast<unsigned short int>(PAD)},
m_lvl1_code
{code},
14
m_rpcIdHelper
(&helper)
15
{
16
set_indexes
();
17
}
18
19
RDOindex::RDOindex
(
unsigned
int
PAD,
unsigned
int
code,
const
std::string&
Name
,
int
sEta,
int
sPhi,
int
dR,
int
dZ,
int
dP,
20
const
RpcIdHelper
& helper) :
21
m_PADid
(static_cast<unsigned short int>(PAD)),
22
m_lvl1_code
{code},
23
m_stationName
{helper.stationNameIndex(
Name
)},
24
m_stationEta
{sEta},
25
m_stationPhi
{sPhi},
26
m_doubletR
{dR},
27
m_doubletZ
{dZ},
28
m_doubletPhi
{dP},
29
m_rpcIdHelper
(&helper)
30
{
31
set_indexes
();
32
}
33
34
void
RDOindex::set_indexes
() {
35
RPCdecoder
decode(
m_lvl1_code
);
36
if
(decode) {
37
unsigned
int
sector = decode.logic_sector();
38
m_RXid
= (sector % 32) % 2;
39
m_SLid
= sector % 32;
40
m_side
= (sector < 32) ? 0x66 : 0x65;
41
m_RODid
= (sector % 32) / 2;
42
m_ROBid
= (sector % 32) / 2;
43
m_status
=
true
;
44
}
45
}
46
RDOindex::operator bool()
const
{
return
m_status
; }
47
bool
RDOindex::operator!
()
const
{
return
!
m_status
; }
48
49
void
RDOindex::set_hash
(
unsigned
int
h
) {
m_hash
=
h
; }
50
51
52
void
RDOindex::offline_indexes
(
int
& name,
int
&
eta
,
int
&
phi
,
int
& doublet_r,
int
& doublet_z,
int
& doublet_phi,
int
& gas_gap,
53
int
& measures_phi,
int
&
strip
)
const
{
54
if
(
m_status
) {
55
if
(
m_stationPhi
) {
56
name =
m_stationName
;
57
eta
=
m_stationEta
;
58
phi
=
m_stationPhi
;
59
doublet_r =
m_doubletR
;
60
doublet_z =
m_doubletZ
;
61
doublet_phi =
m_doubletPhi
;
62
gas_gap = 1;
63
measures_phi = 0;
64
strip
= 1;
65
}
66
}
67
}
68
69
void
RDOindex::pad_identifier
(
Identifier
&
id
)
const
{
70
if
(
m_status
) {
71
int
name = 0;
72
int
eta
= 0;
73
int
phi
= 0;
74
int
doublet_r = 0;
75
int
doublet_z = 0;
76
int
doublet_phi = 0;
77
78
if
(
m_stationPhi
) {
79
name =
m_stationName
;
80
eta
=
m_stationEta
;
81
phi
=
m_stationPhi
;
82
doublet_r =
m_doubletR
;
83
doublet_z =
m_doubletZ
;
84
doublet_phi =
m_doubletPhi
;
85
}
86
87
id
=
m_rpcIdHelper
->padID(name,
eta
,
phi
, doublet_r, doublet_z, doublet_phi);
88
}
89
}
90
91
92
std::ostream&
operator<<
(std::ostream& stream,
const
RDOindex
& rdo) {
93
std::stringstream tmp_stream;
94
95
int
name;
96
int
eta
;
97
int
phi
;
98
int
doublet_r;
99
int
doublet_z;
100
int
doublet_phi;
101
int
gas_gap;
102
int
measures_phi;
103
int
strip
;
104
105
rdo.
offline_indexes
(name,
eta
,
phi
, doublet_r, doublet_z, doublet_phi, gas_gap, measures_phi,
strip
);
106
107
tmp_stream <<
"RPC PAD /"
<< std::hex << std::showbase << rdo.
side
() <<
"/"
<< rdo.
SLid
() <<
"/"
<< rdo.
PADid
()
108
<<
" mapped on offline Id /"
<< std::dec << name <<
"/"
<<
eta
<<
"/"
<<
phi
<<
"/"
<< doublet_r <<
"/"
<< doublet_z <<
"/"
109
<< doublet_phi <<
"/"
<< gas_gap <<
"/"
<< measures_phi <<
"/"
<<
strip
<<
" .... hashId = "
<< rdo.
hash
() << std::endl;
110
111
stream << tmp_stream.str();
112
113
return
stream;
114
}
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
SiliconTech::strip
@ strip
Definition
FPGATrackSimTypes.h:25
Name
JetDumper::Name Name
Definition
JetDumper.cxx:19
operator<<
std::ostream & operator<<(std::ostream &stream, const RDOindex &rdo)
Definition
RDOindex.cxx:92
RDOindex.h
RPCdecoder.h
h
Header file for AthHistogramAlgorithm.
RDOindex::m_lvl1_code
unsigned long int m_lvl1_code
Definition
RDOindex.h:94
RDOindex::SLid
unsigned short int SLid(void) const
Definition
RDOindex.h:129
RDOindex::m_stationName
int m_stationName
Definition
RDOindex.h:97
RDOindex::m_RODid
unsigned short int m_RODid
Definition
RDOindex.h:88
RDOindex::offline_indexes
void offline_indexes(int &name, int &eta, int &phi, int &doublet_r, int &doublet_z, int &doublet_phi, int &gas_gap, int &measures_phi, int &strip) const
Definition
RDOindex.cxx:52
RDOindex::m_side
unsigned short int m_side
Definition
RDOindex.h:89
RDOindex::m_stationEta
int m_stationEta
Definition
RDOindex.h:98
RDOindex::RDOindex
RDOindex(unsigned int, unsigned int, const RpcIdHelper &helper)
Definition
RDOindex.cxx:11
RDOindex::hash
unsigned int hash(void) const
Definition
RDOindex.h:142
RDOindex::side
unsigned short int side(void) const
Definition
RDOindex.h:127
RDOindex::pad_identifier
void pad_identifier(Identifier &id) const
Definition
RDOindex.cxx:69
RDOindex::m_RXid
unsigned short int m_RXid
Definition
RDOindex.h:91
RDOindex::m_status
bool m_status
Definition
RDOindex.h:106
RDOindex::operator!
bool operator!() const
Definition
RDOindex.cxx:47
RDOindex::m_PADid
unsigned short int m_PADid
Definition
RDOindex.h:92
RDOindex::set_indexes
void set_indexes(void)
Definition
RDOindex.cxx:34
RDOindex::m_doubletPhi
int m_doubletPhi
Definition
RDOindex.h:102
RDOindex::PADid
unsigned short int PADid(void) const
Definition
RDOindex.h:131
RDOindex::m_doubletR
int m_doubletR
Definition
RDOindex.h:100
RDOindex::m_stationPhi
int m_stationPhi
Definition
RDOindex.h:99
RDOindex::m_SLid
unsigned short int m_SLid
Definition
RDOindex.h:90
RDOindex::m_doubletZ
int m_doubletZ
Definition
RDOindex.h:101
RDOindex::m_hash
unsigned int m_hash
Definition
RDOindex.h:104
RDOindex::set_hash
void set_hash(unsigned int h)
Definition
RDOindex.cxx:49
RDOindex::m_ROBid
unsigned short int m_ROBid
Definition
RDOindex.h:87
RDOindex::m_rpcIdHelper
const RpcIdHelper * m_rpcIdHelper
Definition
RDOindex.h:153
RPCdecoder
Definition
RPCdecoder.h:13
RpcIdHelper
Definition
RpcIdHelper.h:51
Identifier
Definition
IdentifierFieldParser.cxx:14
Generated on
for ATLAS Offline Software by
1.17.0