ATLAS Offline Software
Loading...
Searching...
No Matches
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
11RDOindex::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{
17}
18
19RDOindex::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{
32}
33
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}
46RDOindex::operator bool() const { return m_status; }
47bool RDOindex::operator!() const { return !m_status; }
48
49void RDOindex::set_hash(unsigned int h) { m_hash = h; }
50
51
52void 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;
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) {
79 name = m_stationName;
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
92std::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}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
JetDumper::Name Name
Definition JetDumper.cxx:19
std::ostream & operator<<(std::ostream &stream, const RDOindex &rdo)
Definition RDOindex.cxx:92
Header file for AthHistogramAlgorithm.
unsigned long int m_lvl1_code
Definition RDOindex.h:94
unsigned short int SLid(void) const
Definition RDOindex.h:129
int m_stationName
Definition RDOindex.h:97
unsigned short int m_RODid
Definition RDOindex.h:88
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
unsigned short int m_side
Definition RDOindex.h:89
int m_stationEta
Definition RDOindex.h:98
RDOindex(unsigned int, unsigned int, const RpcIdHelper &helper)
Definition RDOindex.cxx:11
unsigned int hash(void) const
Definition RDOindex.h:142
unsigned short int side(void) const
Definition RDOindex.h:127
void pad_identifier(Identifier &id) const
Definition RDOindex.cxx:69
unsigned short int m_RXid
Definition RDOindex.h:91
bool m_status
Definition RDOindex.h:106
bool operator!() const
Definition RDOindex.cxx:47
unsigned short int m_PADid
Definition RDOindex.h:92
void set_indexes(void)
Definition RDOindex.cxx:34
int m_doubletPhi
Definition RDOindex.h:102
unsigned short int PADid(void) const
Definition RDOindex.h:131
int m_doubletR
Definition RDOindex.h:100
int m_stationPhi
Definition RDOindex.h:99
unsigned short int m_SLid
Definition RDOindex.h:90
int m_doubletZ
Definition RDOindex.h:101
unsigned int m_hash
Definition RDOindex.h:104
void set_hash(unsigned int h)
Definition RDOindex.cxx:49
unsigned short int m_ROBid
Definition RDOindex.h:87
const RpcIdHelper * m_rpcIdHelper
Definition RDOindex.h:153