Skip to content

Commit

Permalink
DBSCAN modification: \!merged condition encapsulates \!visited
Browse files Browse the repository at this point in the history
  • Loading branch information
osahin authored and jbsauvan committed Feb 22, 2018
1 parent 8deee7a commit 056330a
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions L1Trigger/L1THGCal/src/be_algorithms/HGCalMulticlusteringImpl.cc
Expand Up @@ -195,21 +195,20 @@ void HGCalMulticlusteringImpl::clusterizeDBSCAN( const edm::PtrVector<l1t::HGCal
/* dynamic range loop: range-based loop syntax cannot be employed */
for(unsigned int neighInd = 0; neighInd < neighborList.at(iclu).size(); neighInd++){
neighNo = neighborList.at(iclu).at(neighInd);

if(!visited.at(neighNo)){
visited.at(neighNo) = true;
std::vector<unsigned int> secNeighbors;
findNeighbor(rankedList, neighNo,clustersPtrs, secNeighbors);
multiclustersTmp.at(imclu).addConstituent( clustersPtrs[rankedList.at(neighNo).first]);
merged.at(neighNo) = true;

if(secNeighbors.size() >= minNDbscan_){
neighborList.at(iclu).insert(neighborList.at(iclu).end(), secNeighbors.begin(), secNeighbors.end());
}

} else if(!merged.at(neighNo) ){
/* This condition also ensures merging of clusters visited by other clusters but not merged. */
if(!merged.at(neighNo) ){
merged.at(neighNo) = true;
multiclustersTmp.at(imclu).addConstituent( clustersPtrs[rankedList.at(neighNo).first] );

if(!visited.at(neighNo)){
visited.at(neighNo) = true;
std::vector<unsigned int> secNeighbors;
findNeighbor(rankedList, neighNo,clustersPtrs, secNeighbors);

if(secNeighbors.size() >= minNDbscan_){
neighborList.at(iclu).insert(neighborList.at(iclu).end(), secNeighbors.begin(), secNeighbors.end());
}
}
}
}
imclu++;
Expand Down Expand Up @@ -240,7 +239,6 @@ void HGCalMulticlusteringImpl::clusterizeDBSCAN( const edm::PtrVector<l1t::HGCal
multiclustersTmp.at(i).sigmaRRTot(shape_.sigmaRRTot(multiclustersTmp.at(i)));
multiclustersTmp.at(i).sigmaRRMax(shape_.sigmaRRMax(multiclustersTmp.at(i)));
multiclustersTmp.at(i).eMax(shape_.eMax(multiclustersTmp.at(i)));

multiclusters.push_back( 0, multiclustersTmp.at(i));
}
}
Expand Down

0 comments on commit 056330a

Please sign in to comment.