115 if (element==
nullptr) {
137 ATH_MSG_VERBOSE(
" Cluster not on b-layer. Return empty object-->back to default clustering." );
145 const std::vector<Identifier>& rdos = origCluster.
rdoList();
146 const std::vector<int>& totList = origCluster.
totList();
149 std::vector<int> lvl1group(rdos.size(), origCluster.
LVL1A());
153 if (splitProb.getHighestSplitMultiplicityStored()<3)
return {};
155 double splitProb2=splitProb.splitProbability(2);
156 double splitProb3rel=splitProb.splitProbability(3);
158 double splitProb3=splitProb3rel/(splitProb3rel+splitProb2);
160 ATH_MSG_VERBOSE(
" SplitProb -->2 " << splitProb2 <<
" SplitProb -->3 " << splitProb3 );
179 std::vector<Amg::Vector2D> allLocalPositions;
180 std::vector<Amg::MatrixX> allErrorMatrix;
185 beamSpotPosition = beamSpotHandle->beamPos();
188 std::vector<InDet::PixelClusterParts> allMultiPClusters;
192 std::vector<Amg::MatrixX> errorMatrix;
198 if (errorMatrix.size()!=1 || localPosition.size()!=1)
200 ATH_MSG_ERROR(
"Error matrix or local position vector size is not 1, it is:" << errorMatrix.size() <<
" or " << localPosition.size() <<
".");
203 allMultiPClusters.emplace_back(rdos,totList,lvl1group,localPosition[0],errorMatrix[0]);
205 else if (nParticles==2)
208 std::vector<Amg::MatrixX> errorMatrix;
214 if (errorMatrix.size()!=2 || localPosition.size()!=2)
216 ATH_MSG_ERROR(
"Error matrix or local position vector size is not 2, it is:" << errorMatrix.size() <<
" or " << localPosition.size() <<
".");
219 allMultiPClusters.emplace_back(rdos,totList,lvl1group,localPosition[0],errorMatrix[0]);
220 allMultiPClusters.emplace_back(rdos,totList,lvl1group,localPosition[1],errorMatrix[1]);
222 else if (nParticles==3)
225 std::vector<Amg::MatrixX> errorMatrix;
231 if (errorMatrix.size()!=3 || localPosition.size()!=3)
233 ATH_MSG_ERROR(
"Error matrix or local position vector size is not 2, it is:" << errorMatrix.size() <<
" or " << localPosition.size() <<
".");
237 allMultiPClusters.emplace_back(rdos,totList,lvl1group,localPosition[0],errorMatrix[0]);
238 allMultiPClusters.emplace_back(rdos,totList,lvl1group,localPosition[1],errorMatrix[1]);
239 allMultiPClusters.emplace_back(rdos,totList,lvl1group,localPosition[2],errorMatrix[2]);
242 return allMultiPClusters;