ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileRawUtils
src
TileRawRoISelector.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 "
TileRawUtils/TileRawRoISelector.h
"
6
#include "
TileRawUtils/TileRoI_Map.h
"
7
8
9
// Implementation of const_iterator
10
11
// constructor
12
TileRawRoISelector::const_iterator::const_iterator
13
(
const
VEC_ITPAIR
* v)
14
:
m_vec_itpair
(v),
15
m_pair_it
(v->
begin
())
16
{
17
if
(
m_pair_it
!= v->end()){
18
m_obj_it = (*m_pair_it).first ;
19
m_obj_it_end = (*m_pair_it).second ;
20
}
21
}
22
23
// constructor for end iterator
24
TileRawRoISelector::const_iterator::const_iterator
25
(
const
VEC_ITPAIR
* v,
const
ITPAIR_IT
& it)
26
:
m_vec_itpair
(v),
27
m_pair_it
(it)
28
{
29
}
30
31
TileRawRoISelector::const_iterator::const_iterator
32
()
33
{
34
m_vec_itpair
= NULL ;
35
return
;
36
}
37
38
39
// ++ operator
40
TileRawRoISelector::const_iterator
&
41
TileRawRoISelector::const_iterator:: operator ++
()
42
{
43
++
m_obj_it
;
44
if
(
m_obj_it
==
m_obj_it_end
) {
45
// end of this RoI, get next RoI
46
++
m_pair_it
;
47
if
(
m_pair_it
!=
m_vec_itpair
->end() )
48
{
49
m_obj_it
= (*m_pair_it).first;
50
m_obj_it_end
= (*m_pair_it).second;
51
}
52
}
53
54
return
*
this
;
55
}
56
57
58
// ++ operator
59
TileRawRoISelector::const_iterator
60
TileRawRoISelector::const_iterator:: operator ++
(
int
)
61
{
62
const_iterator
tmp = *
this
;
63
++tmp;
64
return
tmp;
65
}
66
67
68
// != operator
69
bool
70
TileRawRoISelector::const_iterator:: operator !=
71
(
const
TileRawRoISelector::const_iterator
& it )
const
72
{
73
// compare m_pair_it first because for end, m_pair_it is end.
74
if
(it.m_pair_it == it.m_vec_itpair->end() )
75
{
return
m_pair_it
!= it.m_pair_it ;
76
}
else
77
return
78
m_pair_it
!= it.m_pair_it ||
79
m_obj_it
!= it.m_obj_it ||
80
m_obj_it_end
!= it.m_obj_it_end ||
81
m_vec_itpair
!= it.m_vec_itpair ;
82
83
}
84
85
// == operator
86
bool
87
TileRawRoISelector::const_iterator:: operator ==
88
(
const
TileRawRoISelector::const_iterator
& it )
const
89
{
90
// compare m_map_it first because for end, m_map_it is end.
91
92
// if m_pair_it is end, only compare the pair iterator
93
if
(
m_pair_it
==
m_vec_itpair
->end() )
94
return
m_pair_it
== it.m_pair_it ;
95
96
return
97
m_pair_it
== it.m_pair_it &&
98
m_obj_it
== it.m_obj_it &&
99
m_obj_it_end
== it.m_obj_it_end &&
100
m_vec_itpair
== it.m_vec_itpair ;
101
}
102
103
104
// == operator
105
const
TileRawRoISelector::OBJECT
*
106
TileRawRoISelector::const_iterator:: operator *
()
107
{
108
return
*
m_obj_it
;
109
}
110
/*************** Implementation of TileRawRoISelector
111
*
112
*/
113
114
// Constructor
115
TileRawRoISelector ::TileRawRoISelector (
TileRoI_Map
* m,
116
TileRawChannelContainer
* c ):
117
m_roiMap
(m),
118
m_container
(c)
119
{
120
121
}
122
123
124
// set methods
125
void
TileRawRoISelector :: setMap(
TileRoI_Map
* m) {
126
m_roiMap
= m;
127
}
128
129
130
void
TileRawRoISelector::setContainer
(
TileRawChannelContainer
* c) {
131
m_container
= c;
132
}
133
134
/*
135
void TileRawRoISelector :: setRoIs( const VEC_TT_ID& ids)
136
{
137
138
// clean it up.
139
if(m_vecItPair.size() > 0 ) {
140
m_vecItPair.erase(m_vecItPair.begin(), m_vecItPair.end());
141
}
142
143
TT_ID_IT it = ids.begin();
144
TT_ID_IT it_end = ids.end() ;
145
146
for(; it!=it_end; ++it){
147
//
148
const TT_ID& rId = (*it);
149
std::vector<COLL_ID> cIDs = m_roiMap->CollectionID(rId);
150
std::vector<COLL_ID>::const_iterator cId_it = cIDs.begin();
151
std::vector<COLL_ID>::const_iterator cId_it_end = cIDs.end();
152
for(; cId_it!=cId_it_end;++cId_it){
153
const COLL_ID& cId = (*cId_it);
154
CONTAINER::const_iterator coll_it = m_container->find(cId);
155
if(coll_it!=m_container->end()){
156
// Collection exist
157
const COLLECTION* coll = (*coll_it);
158
OBJ_IT b;
159
OBJ_IT e;
160
coll->getTT(rId,b,e);
161
if(b!=e){
162
m_vecItPair.push_back(ITPAIR(b,e) ) ;
163
}
164
}
165
}
166
}
167
168
169
}
170
*/
171
172
TileRawRoISelector::const_iterator
173
TileRawRoISelector ::begin()
const
174
{
175
return
const_iterator
(&
m_vecItPair
);
176
}
177
178
TileRawRoISelector::const_iterator
179
TileRawRoISelector ::end()
const
180
{
181
return
const_iterator
(&
m_vecItPair
,
m_vecItPair
.end() );
182
}
TileRawRoISelector.h
TileRoI_Map.h
TileRawChannelContainer
Definition
TileRawChannelContainer.h:13
TileRawRoISelector::const_iterator
Definition
TileRawRoISelector.h:55
TileRawRoISelector::const_iterator::m_pair_it
ITPAIR_IT m_pair_it
Definition
TileRawRoISelector.h:76
TileRawRoISelector::const_iterator::const_iterator
const_iterator()
Definition
TileRawRoISelector.cxx:32
TileRawRoISelector::const_iterator::m_obj_it_end
OBJ_IT m_obj_it_end
Definition
TileRawRoISelector.h:78
TileRawRoISelector::const_iterator::m_vec_itpair
const VEC_ITPAIR * m_vec_itpair
Definition
TileRawRoISelector.h:75
TileRawRoISelector::const_iterator::operator*
const OBJECT * operator*()
Definition
TileRawRoISelector.cxx:106
TileRawRoISelector::const_iterator::m_obj_it
OBJ_IT m_obj_it
Definition
TileRawRoISelector.h:77
TileRawRoISelector::const_iterator::operator++
const_iterator & operator++()
Definition
TileRawRoISelector.cxx:41
TileRawRoISelector::OBJECT
TileRawChannel OBJECT
Definition
TileRawRoISelector.h:33
TileRawRoISelector::VEC_ITPAIR
std::vector< ITPAIR > VEC_ITPAIR
Definition
TileRawRoISelector.h:46
TileRawRoISelector::setContainer
void setContainer(TileRawChannelContainer *c)
Definition
TileRawRoISelector.cxx:130
TileRawRoISelector::m_container
TileRawChannelContainer * m_container
Definition
TileRawRoISelector.h:100
TileRawRoISelector::begin
const_iterator begin() const
Definition
TileRawRoISelector.cxx:173
TileRawRoISelector::m_vecItPair
VEC_ITPAIR m_vecItPair
Definition
TileRawRoISelector.h:102
TileRawRoISelector::ITPAIR_IT
VEC_ITPAIR::const_iterator ITPAIR_IT
Definition
TileRawRoISelector.h:47
TileRawRoISelector::m_roiMap
TileRoI_Map * m_roiMap
Definition
TileRawRoISelector.h:99
TileRoI_Map
TileCal RoI map to offline Identifier.
Definition
TileRoI_Map.h:32
Generated on
for ATLAS Offline Software by
1.17.0