ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileIdentifier
src
TileRodIdHash.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TileIdentifier/TileRodIdHash.h
"
6
#include "GaudiKernel/Bootstrap.h"
7
#include "GaudiKernel/ISvcLocator.h"
8
#include "GaudiKernel/IToolSvc.h"
9
#include <iostream>
10
11
// This class converts a TileReadoutModuleID into an integer,
12
//
13
14
// default contructor
15
TileRodIdHash::TileRodIdHash
( )
16
:
m_size
(0),
17
m_offset
(0)
18
{
19
20
}
21
22
23
void
TileRodIdHash::initialize
(
int
offset
,
int
runnum ) {
24
25
//
26
27
std::vector<ID> rmod;
28
rmod.reserve(256);
29
if
(runnum>318000) {
30
// new frag->ROB mapping since March 2017
31
// put 4 drawers in two subsequent RODs
32
// odd drawers in odd ROD, even drawers in even ROD
33
for
(
unsigned
int
i=0x510000;i<=0x51001f;i+=2){
34
rmod.push_back(i);
35
rmod.push_back(i+1);
36
rmod.push_back(i);
37
rmod.push_back(i+1);
38
}
39
for
(
unsigned
int
i=0x520000;i<=0x52001f;i+=2){
40
rmod.push_back(i);
41
rmod.push_back(i+1);
42
rmod.push_back(i);
43
rmod.push_back(i+1);
44
}
45
for
(
unsigned
int
i=0x530000;i<=0x53001f;i+=2){
46
rmod.push_back(i);
47
rmod.push_back(i+1);
48
rmod.push_back(i);
49
rmod.push_back(i+1);
50
}
51
for
(
unsigned
int
i=0x540000;i<=0x54001f;i+=2){
52
rmod.push_back(i);
53
rmod.push_back(i+1);
54
rmod.push_back(i);
55
rmod.push_back(i+1);
56
}
57
}
else
{
58
for
(
unsigned
int
i=0x510000;i<=0x51000f;i++){
59
rmod.push_back(i);
60
rmod.push_back(i);
61
rmod.push_back(i);
62
rmod.push_back(i);
63
}
64
for
(
unsigned
int
i=0x520000;i<=0x52000f;i++){
65
rmod.push_back(i);
66
rmod.push_back(i);
67
rmod.push_back(i);
68
rmod.push_back(i);
69
}
70
for
(
unsigned
int
i=0x530000;i<=0x53000f;i++){
71
rmod.push_back(i);
72
rmod.push_back(i);
73
rmod.push_back(i);
74
rmod.push_back(i);
75
}
76
for
(
unsigned
int
i=0x540000;i<=0x54000f;i++){
77
rmod.push_back(i);
78
rmod.push_back(i);
79
rmod.push_back(i);
80
rmod.push_back(i);
81
}
82
}
83
84
initialize
(
offset
,rmod);
85
}
86
87
void
TileRodIdHash::initialize
(
int
offset
,
const
std::vector<ID>& rmod ) {
88
89
//
90
91
m_offset
=
offset
;
92
93
std::vector<ID>::const_iterator
94
it = rmod.begin();
95
std::vector<ID>::const_iterator
96
it_end = rmod.end() ;
97
98
int
n = 0;
99
for
(; it!=it_end;++it) {
100
ID
id
= *it;
101
unsigned
int
i = id;
102
m_lookup
[i] = n ;
103
m_int2id
.push_back(
id
);
104
++n;
105
}
106
107
m_size
= n;
108
}
109
110
111
112
TileRodIdHash::ID
TileRodIdHash::identifier
(
int
index
)
const
{
113
114
return
m_int2id
[
index
] ;
115
116
}
117
118
int
TileRodIdHash::operator()
(
const
ID
&
id
)
const
{
119
120
unsigned
int
i = id ;
121
std::map<unsigned int, int>
::const_iterator
it=
m_lookup
.find(i);
122
if
(it!=
m_lookup
.end())
return
(*it).second;
123
std::cout <<
" ERROR in TileRodIdHash : invalid Rod number"
124
<<std::endl;
125
return
-1;
126
127
}
128
129
int
TileRodIdHash::max
()
const
{
130
131
return
m_size
;
132
133
}
134
135
int
TileRodIdHash::offset
()
const
{
136
137
return
m_offset
;
138
139
}
140
TileRodIdHash.h
const_iterator
TileRodIdHash::m_int2id
std::vector< ID > m_int2id
reverse look up
Definition
TileRodIdHash.h:54
TileRodIdHash::offset
int offset() const
return offset
Definition
TileRodIdHash.cxx:135
TileRodIdHash::TileRodIdHash
TileRodIdHash()
Definition
TileRodIdHash.cxx:15
TileRodIdHash::m_size
int m_size
total number of IDs
Definition
TileRodIdHash.h:47
TileRodIdHash::ID
int ID
Definition
TileRodIdHash.h:23
TileRodIdHash::m_offset
int m_offset
Definition
TileRodIdHash.h:56
TileRodIdHash::initialize
void initialize(int offset, int runnum)
initialize
Definition
TileRodIdHash.cxx:23
TileRodIdHash::m_lookup
std::map< unsigned int, int > m_lookup
test beam flag
Definition
TileRodIdHash.h:51
TileRodIdHash::max
int max() const
return maximum number of IDs
Definition
TileRodIdHash.cxx:129
TileRodIdHash::operator()
int operator()(const ID &id) const
Convert ID to int.
Definition
TileRodIdHash.cxx:118
TileRodIdHash::identifier
ID identifier(int i) const
reverse conversion
Definition
TileRodIdHash.cxx:112
index
Definition
index.py:1
initialize
void initialize()
Definition
run_EoverP.cxx:894
Generated on
for ATLAS Offline Software by
1.17.0