141 std::vector<std::vector<const CaloCell*> > cellVector;
148 const CaloCell* mergedCell =
nullptr;
150 std::vector<IdentifierHash> nextInPhi;
151 std::vector<IdentifierHash> prevInPhi;
156 for(;cellItr!=cellItrE;++cellItr){
157 std::vector<IdentifierHash>::iterator itr = nextInPhi.begin();
158 for( ; itr!=nextInPhi.end(); ++itr ){
159 if((*cellItr)->caloDDE()->calo_hash() != (*itr))
continue;
160 mergedCell = (*cellItr);
163 if(mergedCell!=
nullptr)
break;
164 itr = prevInPhi.begin();
165 for( ; itr!=prevInPhi.end(); ++itr ){
166 if((*cellItr)->caloDDE()->calo_hash() != (*itr))
continue;
167 mergedCell = (*cellItr);
170 if(mergedCell!=
nullptr)
break;
173 int nCellsFromSeed = 1;
176 std::vector<IdentifierHash> next;
177 while(lastCell!=
nullptr && nCellsFromSeed<
m_nCellsInEta/2+1){
180 for(cellItr=this->
cluster()->cell_begin();cellItr!=cellItrE;++cellItr){
181 std::vector<IdentifierHash>::iterator itr = next.begin();
182 for( ; itr!=next.end(); ++itr ){
183 if((*cellItr)->caloDDE()->calo_hash() != (*itr))
continue;
184 cellVector.at(0).at(
m_nCellsInEta/2+nCellsFromSeed) = (*cellItr);
185 lastCell = (*cellItr);
192 while(lastCell!=
nullptr && nCellsFromSeed<
m_nCellsInEta/2+1){
195 for(cellItr=this->
cluster()->cell_begin();cellItr!=cellItrE;++cellItr){
196 std::vector<IdentifierHash>::iterator itr = next.begin();
197 for( ; itr!=next.end(); ++itr ){
198 if((*cellItr)->caloDDE()->calo_hash() != (*itr))
continue;
199 cellVector.at(0).at(
m_nCellsInEta/2-nCellsFromSeed) = (*cellItr);
200 lastCell = (*cellItr);
206 int nCellsFromMerged = 1;
207 lastCell = mergedCell;
209 while(lastCell!=
nullptr && nCellsFromMerged<
m_nCellsInEta/2+1){
212 for(cellItr=this->
cluster()->cell_begin();cellItr!=cellItrE;++cellItr){
213 std::vector<IdentifierHash>::iterator itr = next.begin();
214 for( ; itr!=next.end(); ++itr ){
215 if((*cellItr)->caloDDE()->calo_hash() != (*itr))
continue;
216 cellVector.at(1).at(
m_nCellsInEta/2+nCellsFromMerged) = (*cellItr);
217 lastCell = (*cellItr);
222 nCellsFromMerged = 1;
223 lastCell = mergedCell;
224 while(lastCell!=
nullptr && nCellsFromMerged<
m_nCellsInEta/2+1){
227 for(cellItr=this->
cluster()->cell_begin();cellItr!=cellItrE;++cellItr){
228 std::vector<IdentifierHash>::iterator itr = next.begin();
229 for( ; itr!=next.end(); ++itr ){
230 if((*cellItr)->caloDDE()->calo_hash() != (*itr))
continue;
231 cellVector.at(1).at(
m_nCellsInEta/2-nCellsFromMerged) = (*cellItr);
232 lastCell = (*cellItr);
int get_neighbours(const IdentifierHash caloHash, const LArNeighbours::neighbourOption &option, std::vector< IdentifierHash > &neighbourList) const
access to hashes for neighbours return == 0 for neighbours found