ATLAS Offline Software
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 
6 
7 #include <iomanip>
8 
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 
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) {
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 
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) {
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 }
RDOindex::operator!
bool operator!() const
Definition: RDOindex.cxx:47
RPCdecoder
Definition: RPCdecoder.h:13
xAOD::short
short
Definition: Vertex_v1.cxx:165
SiliconTech::strip
@ strip
RDOindex::m_lvl1_code
unsigned long int m_lvl1_code
Definition: RDOindex.h:94
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
RDOindex::set_indexes
void set_indexes(void)
Definition: RDOindex.cxx:34
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
RDOindex::PADid
unsigned short int PADid(void) const
Definition: RDOindex.h:131
RDOindex::side
unsigned short int side(void) const
Definition: RDOindex.h:127
RpcIdHelper::padID
Identifier padID(const Identifier &elementID, int doubletZ, int doubletPhi) const
Definition: RpcIdHelper.cxx:1043
RDOindex::m_side
unsigned short int m_side
Definition: RDOindex.h:89
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
RpcIdHelper
Definition: RpcIdHelper.h:51
xAOD::unsigned
unsigned
Definition: RingSetConf_v1.cxx:662
RDOindex::m_ROBid
unsigned short int m_ROBid
Definition: RDOindex.h:87
RDOindex::pad_identifier
void pad_identifier(Identifier &id) const
Definition: RDOindex.cxx:69
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
operator<<
std::ostream & operator<<(std::ostream &stream, const RDOindex &rdo)
Definition: RDOindex.cxx:92
RDOindex::m_RODid
unsigned short int m_RODid
Definition: RDOindex.h:88
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
extractSporadic.h
list h
Definition: extractSporadic.py:97
RPCdecoder.h
RDOindex::m_stationPhi
int m_stationPhi
Definition: RDOindex.h:99
RDOindex::RDOindex
RDOindex(unsigned int, unsigned int, const RpcIdHelper &helper)
Definition: RDOindex.cxx:11
RDOindex::m_stationName
int m_stationName
Definition: RDOindex.h:97
RDOindex::m_stationEta
int m_stationEta
Definition: RDOindex.h:98
RDOindex.h
RDOindex::set_hash
void set_hash(unsigned int h)
Definition: RDOindex.cxx:49
pmontree.code
code
Definition: pmontree.py:443
RDOindex::m_RXid
unsigned short int m_RXid
Definition: RDOindex.h:91
RDOindex::m_hash
unsigned int m_hash
Definition: RDOindex.h:104
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
python.PerfMonSerializer.decode
def decode(s)
Definition: PerfMonSerializer.py:388
RDOindex::m_doubletZ
int m_doubletZ
Definition: RDOindex.h:101
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
Name
JetDumper::Name Name
Definition: JetDumper.cxx:19
h
RDOindex::hash
unsigned int hash(void) const
Definition: RDOindex.h:142
RDOindex::m_doubletPhi
int m_doubletPhi
Definition: RDOindex.h:102
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
RDOindex::m_status
bool m_status
Definition: RDOindex.h:106
RDOindex::SLid
unsigned short int SLid(void) const
Definition: RDOindex.h:129
RDOindex::m_doubletR
int m_doubletR
Definition: RDOindex.h:100
RDOindex::m_rpcIdHelper
const RpcIdHelper * m_rpcIdHelper
Definition: RDOindex.h:153
RDOindex
Definition: RDOindex.h:85
RDOindex::m_SLid
unsigned short int m_SLid
Definition: RDOindex.h:90