From 5c7c1b29e1e990dbe7058f57de03fc6819a5f31e Mon Sep 17 00:00:00 2001 From: Felice Date: Tue, 16 Apr 2019 18:58:56 +0200 Subject: [PATCH 1/4] filling density map is not thread safe and is taken out of the parallel for --- RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc index 0cf1f9d011d93..cdd2b33eea3f5 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc @@ -95,8 +95,6 @@ void HGCalCLUEAlgo::makeClusters() { double maxdensity = calculateLocalDensity(points_[i], hit_kdtree, actualLayer); // also stores rho (energy // density) for each point (node) - //Now that we have the density per point we can store it - setDensity(points_[i]); // calculate distance to nearest point with higher density storing // distance (delta) and point's index calculateDistanceToHigher(points_[i]); @@ -104,6 +102,8 @@ void HGCalCLUEAlgo::makeClusters() { layerClustersPerLayer_[i]); }); }); + //Now that we have the density per point we can store it + for(unsigned int i=0; i< 2 * maxlayer + 2; ++i) setDensity(points_[i]); } std::vector HGCalCLUEAlgo::getClusters(bool) { From 49a96071e7d6bd06c5554f0500591567bb8ee05d Mon Sep 17 00:00:00 2001 From: Felice Date: Tue, 16 Apr 2019 18:59:09 +0200 Subject: [PATCH 2/4] filling density map is not thread safe and is taken out of the parallel for --- RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc index c05e2ff678a9d..2221095bbeb0e 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc @@ -100,8 +100,6 @@ void HGCalImagingAlgo::makeClusters() { double maxdensity = calculateLocalDensity( points_[i], hit_kdtree, actualLayer); // also stores rho (energy // density) for each point (node) - //Now that we have the density per point we can store it - setDensity(points_[i]); // calculate distance to nearest point with higher density storing // distance (delta) and point's index calculateDistanceToHigher(points_[i]); @@ -109,6 +107,8 @@ void HGCalImagingAlgo::makeClusters() { actualLayer, layerClustersPerLayer_[i]); }); }); + //Now that we have the density per point we can store it + for(unsigned int i=0; i< 2 * maxlayer + 2; ++i) setDensity(points_[i]); } std::vector HGCalImagingAlgo::getClusters(bool doSharing) { From a00d27f01f6ce8cbc1177d527f58b6abe39cf4a3 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 17 Apr 2019 09:27:10 +0200 Subject: [PATCH 3/4] Update RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc Co-Authored-By: felicepantaleo --- RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc index cdd2b33eea3f5..4b4daddfec686 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.cc @@ -103,7 +103,7 @@ void HGCalCLUEAlgo::makeClusters() { }); }); //Now that we have the density per point we can store it - for(unsigned int i=0; i< 2 * maxlayer + 2; ++i) setDensity(points_[i]); + for(auto const& p: points_) { setDensity(p); } } std::vector HGCalCLUEAlgo::getClusters(bool) { From 75b42c377441083c32521401eb22bae4a6064dd1 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 17 Apr 2019 09:27:21 +0200 Subject: [PATCH 4/4] Update RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc Co-Authored-By: felicepantaleo --- RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc index 2221095bbeb0e..3320bf181524d 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalImagingAlgo.cc @@ -108,7 +108,7 @@ void HGCalImagingAlgo::makeClusters() { }); }); //Now that we have the density per point we can store it - for(unsigned int i=0; i< 2 * maxlayer + 2; ++i) setDensity(points_[i]); +for(auto const& p: points_) { setDensity(p); } } std::vector HGCalImagingAlgo::getClusters(bool doSharing) {