ATLAS Offline Software
Loading...
Searching...
No Matches
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
7
8
9// Implementation of const_iterator
10
11// constructor
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
30
37
38
39// ++ 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
61{
62 const_iterator tmp = *this;
63 ++tmp;
64 return tmp;
65}
66
67
68// != operator
69bool
70TileRawRoISelector::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
86bool
87TileRawRoISelector::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
110/*************** Implementation of TileRawRoISelector
111*
112*/
113
114// Constructor
115TileRawRoISelector ::TileRawRoISelector ( TileRoI_Map* m,
117m_roiMap(m),
118m_container(c)
119{
120
121}
122
123
124// set methods
125void TileRawRoISelector :: setMap(TileRoI_Map* m) {
126 m_roiMap = m;
127}
128
129
133
134/*
135void 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
173 TileRawRoISelector ::begin() const
174{
175 return const_iterator(&m_vecItPair);
176}
177
179 TileRawRoISelector ::end() const
180{
181 return const_iterator(&m_vecItPair, m_vecItPair.end() );
182}
std::vector< ITPAIR > VEC_ITPAIR
void setContainer(TileRawChannelContainer *c)
TileRawChannelContainer * m_container
const_iterator begin() const
VEC_ITPAIR::const_iterator ITPAIR_IT
TileCal RoI map to offline Identifier.
Definition TileRoI_Map.h:32