From c7bc004881bd9ab61a50d382abf14c4ce9fd4c82 Mon Sep 17 00:00:00 2001 From: Fangyi Guo <guofangyi@ihep.ac.cn> Date: Mon, 28 Apr 2025 16:12:01 +0800 Subject: [PATCH] Debug: add a protection in matching --- .../src/Algorithm/EnergyTimeMatchingAlg.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Reconstruction/RecPFACyber/src/Algorithm/EnergyTimeMatchingAlg.cpp b/Reconstruction/RecPFACyber/src/Algorithm/EnergyTimeMatchingAlg.cpp index 0746be23..90c095ea 100644 --- a/Reconstruction/RecPFACyber/src/Algorithm/EnergyTimeMatchingAlg.cpp +++ b/Reconstruction/RecPFACyber/src/Algorithm/EnergyTimeMatchingAlg.cpp @@ -232,6 +232,13 @@ StatusCode EnergyTimeMatchingAlg::Matching( std::vector<const Cyber::CaloHalfClu //Calculate the initial pattern matrix with track + neighbor vector<vector<int>> PatternMatrix(NclusV, vector<int>(NclusU, 0)); PatternMatrixCalculation(m_HFClusUCol, m_HFClusVCol, PatternMatrix); +//cout<<"Print initial pattern matrix"<<endl; +//for (const auto& row : PatternMatrix) { +// for (const int& val : row) { +// std::cout << val << " "; +// } +// std::cout << std::endl; +//} //If the pattern is empty: use chi2 map to determine the first element. bool isEmpty = true; @@ -247,15 +254,15 @@ StatusCode EnergyTimeMatchingAlg::Matching( std::vector<const Cyber::CaloHalfClu break; } } - } -//cout<<"Print initial pattern matrix"<<endl; +//cout<<"Print initial pattern matrix with chi2"<<endl; //for (const auto& row : PatternMatrix) { // for (const int& val : row) { // std::cout << val << " "; // } // std::cout << std::endl; //} + } //Initialize double min_residual = 9999; @@ -420,7 +427,11 @@ StatusCode EnergyTimeMatchingAlg::Matching( std::vector<const Cyber::CaloHalfClu map_pattern.push_back(PatternMatrix); } + if(index<0) index=0; + + //cout<<"Minimal residual = "<<min_residual<<", index "<<index<<endl; +//cout<<"Pattern map size "<<map_pattern.size()<<", energy map size "<<map_Eij.size()<<endl; //cout<<"Chosen pattern matrix "<<endl; //for (const auto& row : map_pattern[index]) { // for (const int& val : row) { @@ -452,6 +463,7 @@ StatusCode EnergyTimeMatchingAlg::Matching( std::vector<const Cyber::CaloHalfClu ClusterBuilding(EnergyMatrix, m_HFClusUCol, m_HFClusVCol, tmp_clusters); } +//cout<<"End matching, clean empty clusters"<<endl; //Clean empty Calo3DClusters for(int ic=0; ic<tmp_clusters.size(); ic++){ if( !tmp_clusters[ic].get() || tmp_clusters[ic]->getEnergy()==0 || isnan(tmp_clusters[ic]->getShowerCenter().x()) ){ -- GitLab