50 std::list<const xAOD::AFPSiHit*> hitsAboveThreshold;
55 hitsAboveThreshold.push_back(theHit);
57 while (!hitsAboveThreshold.empty())
60 std::list<const xAOD::AFPSiHit*> currentProtoCluster{hitsAboveThreshold.front()};
62 hitsAboveThreshold.pop_front();
68 for(std::list<const xAOD::AFPSiHit*>::iterator remHit=hitsAboveThreshold.begin();remHit!=hitsAboveThreshold.end();)
70 if(abs(currHit->pixelVertID()-(*remHit)->pixelVertID())<=1 && abs(currHit->pixelHorizID()-(*remHit)->pixelHorizID())<=1)
72 if(
m_doOnlyHorz && currHit->pixelVertID()!=(*remHit)->pixelVertID())
79 currentProtoCluster.push_back(*remHit);
80 hitsAboveThreshold.erase(remHit++);
101 charge += currHit->depositedCharge();
102 horizID += currHit->pixelHorizID() * currHit->depositedCharge();
103 vertID += currHit->pixelVertID() * currHit->depositedCharge();
105 newCluster.
hits().push_back(currHit);
114 return StatusCode::SUCCESS;
virtual StatusCode doClustering(const std::list< const xAOD::AFPSiHit * > &hits, std::list< AFPSiClusterBasicObj > &outputClusters) const override
Creates a cluster from the neighbouring pixels, joining only two pixels with charge above m_chargeThr...