@@ -225,7 +225,6 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID,
225225 unsigned int layerClusterId = layerClustersIds[i];
226226 const auto & layerCluster = layerClusters[layerClusterId];
227227 float recoFraction = 1 .f / recoTrackster.vertex_multiplicity (i);
228- float squaredRecoFraction = recoFraction * recoFraction;
229228 float squaredLayerClusterEnergy = layerCluster.energy () * layerCluster.energy ();
230229 float recoSharedEnergy = layerCluster.energy () * recoFraction;
231230 float invLayerClusterEnergy = 1 .f / layerCluster.energy ();
@@ -236,9 +235,15 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID,
236235 edm::Ref<std::vector<ticl::Trackster>> simTracksterRef (simTrackstersHandle, simTracksterIndex);
237236 float sharedEnergy = std::min (simSharedEnergy, recoSharedEnergy);
238237 float simFraction = simSharedEnergy * invLayerClusterEnergy;
239- float score = invDenominator *
240- std::min (squaredRecoFraction, (recoFraction - simFraction) * (recoFraction - simFraction)) *
241- squaredLayerClusterEnergy;
238+ /* RecoToSim score logic:
239+ - simFraction >= 0 && recoFraction == 0 : simtrackster contains non-reco associated elements : ignore in recoToSim association
240+ - simFraction == 0 && recoFraction > 0 : rechits not present in sim trackster : penalty in score by recoFraction*E
241+ - simFraction == 1 && recoFraction == 1 : good association
242+ - 1 > recoFraction > simFraction > 0 : sim does not contain some reco energy, penalty in score by the additional part : (recoFraction-simFraction)*E
243+ - 1 > simFraction> recoFraction > 0 : consider as good association, as there is enough sim to cover the reco
244+ */
245+ float recoMinusSimFraction = std::max (0 .f , recoFraction - simFraction);
246+ float score = invDenominator * recoMinusSimFraction * recoMinusSimFraction * squaredLayerClusterEnergy;
242247 tracksterToSimTracksterMap->insert (recoTracksterRef, simTracksterRef, sharedEnergy, score);
243248 }
244249 }
0 commit comments