From 880d1cf27277ecd3d8344fdfb96ecb1610e9850b Mon Sep 17 00:00:00 2001 From: Xingfu Date: Mon, 1 Feb 2021 10:45:59 +0100 Subject: [PATCH 1/7] Setting up subfolder in DQM files. Complete subforder of Layer cluster --- .../interface/HGVHistoProducerAlgo.h | 12 +++ .../HGCalValidation/plugins/HGCalValidator.cc | 12 +++ .../python/PostProcessorHGCAL_cfi.py | 2 +- .../src/HGVHistoProducerAlgo.cc | 75 ++++++++++++++++--- 4 files changed, 89 insertions(+), 12 deletions(-) diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index 30d74e9549974..768c5e304be2c 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -217,7 +217,19 @@ class HGVHistoProducerAlgo { unsigned int layers, std::vector thicknesses, std::string pathtomatbudfile); + + void bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, + Histograms& histograms, + unsigned int layers, + std::vector thicknesses); + + void bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, + Histograms& histograms, + unsigned int layers, + std::vector thicknesses); + void bookMultiClusterHistos(DQMStore::IBooker& ibook, Histograms& histograms, unsigned int layers); + void layerClusters_to_CaloParticles(const Histograms& histograms, edm::Handle clusterHandle, const reco::CaloClusterCollection& clusters, diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 361ff02650850..2d7814e4d6793 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -156,6 +156,18 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, totallayers_to_monitor_, thicknesses_to_monitor_, cummatbudinxo_.fullPath()); + ibook.cd(); + ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/" + "LCtoCP_association"); + histoProducerAlgo_->bookClusterHistos_LCtoCP_association(ibook, + histograms.histoProducerAlgo, + totallayers_to_monitor_, + thicknesses_to_monitor_); + ibook.cd(); + ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/" + "CellLevel"); + histoProducerAlgo_->bookClusterHistos_CellLevel(ibook, + histograms.histoProducerAlgo, + totallayers_to_monitor_, + thicknesses_to_monitor_); } //Booking histograms for multiclusters diff --git a/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py b/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py index 13b22915688c9..5c9d8b47c919b 100644 --- a/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py +++ b/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py @@ -15,7 +15,7 @@ eff_layers.extend(["merge_phi_layer{:02d} 'LayerCluster Merge Rate vs #phi Layer{:02d} in z-' NumMerge_LayerCluster_Phi_perlayer{:02d} Denom_LayerCluster_Phi_perlayer{:02d}".format(i, i%maxlayerzm+1, i, i) if (i::iterator it = thicknesses.begin(); it != thicknesses.end(); ++it) { + auto istr = std::to_string(*it); + histograms.h_clusternum_perthick[(*it)] = ibook.book1D("totclusternum_thick_" + istr, + "total number of layer clusters for thickness " + istr, + nintTotNClsperthick_, + minTotNClsperthick_, + maxTotNClsperthick_); + } + //--------------------------------------------------------------------------------------------------------------------------- +} + +void HGVHistoProducerAlgo::bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, + Histograms& histograms, + unsigned int layers, + std::vector thicknesses){ + //---------------------------------------------------------------------------------------------------------------------------- + for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { + auto istr1 = std::to_string(ilayer); + while (istr1.size() < 2) { + istr1.insert(0, "0"); + } + //We will make a mapping to the regural layer naming plus z- or z+ for convenience + std::string istr2 = ""; + //First with the -z endcap + if (ilayer < layers) { + istr2 = std::to_string(ilayer + 1) + " in z-"; + } else { //Then for the +z + istr2 = std::to_string(ilayer - (layers - 1)) + " in z+"; + } histograms.h_score_layercl2caloparticle_perlayer[ilayer] = ibook.book1D("Score_layercl2caloparticle_perlayer" + istr1, "Score of Layer Cluster per CaloParticle for layer " + istr2, @@ -766,6 +798,12 @@ void HGVHistoProducerAlgo::bookClusterHistos(DQMStore::IBooker& ibook, nintEta_, minEta_, maxEta_); + histograms.h_denom_caloparticle_eta_perlayer[ilayer] = + ibook.book1D("Denom_CaloParticle_Eta_perlayer" + istr1, + "Denom CaloParticle Eta per Layer Cluster for layer " + istr2, + nintEta_, + minEta_, + maxEta_); histograms.h_num_caloparticle_phi_perlayer[ilayer] = ibook.book1D("Num_CaloParticle_Phi_perlayer" + istr1, "Num CaloParticle Phi per Layer Cluster for layer " + istr2, @@ -820,6 +858,28 @@ void HGVHistoProducerAlgo::bookClusterHistos(DQMStore::IBooker& ibook, nintPhi_, minPhi_, maxPhi_); + } + //--------------------------------------------------------------------------------------------------------------------------- +} + +void HGVHistoProducerAlgo::bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, + Histograms& histograms, + unsigned int layers, + std::vector thicknesses){ + //---------------------------------------------------------------------------------------------------------------------------- + for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { + auto istr1 = std::to_string(ilayer); + while (istr1.size() < 2) { + istr1.insert(0, "0"); + } + //We will make a mapping to the regural layer naming plus z- or z+ for convenience + std::string istr2 = ""; + //First with the -z endcap + if (ilayer < layers) { + istr2 = std::to_string(ilayer + 1) + " in z-"; + } else { //Then for the +z + istr2 = std::to_string(ilayer - (layers - 1)) + " in z+"; + } histograms.h_cellAssociation_perlayer[ilayer] = ibook.book1D("cellAssociation_perlayer" + istr1, "Cell Association for layer " + istr2, 5, -4., 1.); histograms.h_cellAssociation_perlayer[ilayer]->setBinLabel(2, "TN(purity)"); @@ -827,24 +887,16 @@ void HGVHistoProducerAlgo::bookClusterHistos(DQMStore::IBooker& ibook, histograms.h_cellAssociation_perlayer[ilayer]->setBinLabel(4, "FP(fake)"); histograms.h_cellAssociation_perlayer[ilayer]->setBinLabel(5, "TP(eff.)"); } - - //--------------------------------------------------------------------------------------------------------------------------- + //---------------------------------------------------------------------------------------------------------------------------- for (std::vector::iterator it = thicknesses.begin(); it != thicknesses.end(); ++it) { auto istr = std::to_string(*it); - histograms.h_clusternum_perthick[(*it)] = ibook.book1D("totclusternum_thick_" + istr, - "total number of layer clusters for thickness " + istr, - nintTotNClsperthick_, - minTotNClsperthick_, - maxTotNClsperthick_); - //--- histograms.h_cellsenedens_perthick[(*it)] = ibook.book1D("cellsenedens_thick_" + istr, "energy density of cluster cells for thickness " + istr, nintCellsEneDensperthick_, minCellsEneDensperthick_, maxCellsEneDensperthick_); } - - //--------------------------------------------------------------------------------------------------------------------------- + //---------------------------------------------------------------------------------------------------------------------------- //Not all combination exists but we should keep them all for cross checking reason. for (std::vector::iterator it = thicknesses.begin(); it != thicknesses.end(); ++it) { for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { @@ -915,8 +967,9 @@ void HGVHistoProducerAlgo::bookClusterHistos(DQMStore::IBooker& ibook, maxClEneperthickperlayer_); } } - //--------------------------------------------------------------------------------------------------------------------------- + } +//---------------------------------------------------------------------------------------------------------------------------- void HGVHistoProducerAlgo::bookMultiClusterHistos(DQMStore::IBooker& ibook, Histograms& histograms, From 490aff38ca4b72024f25840618ba14c9f9398c5f Mon Sep 17 00:00:00 2001 From: Xingfu Date: Thu, 18 Feb 2021 11:28:21 +0100 Subject: [PATCH 2/7] Create new subfolder "ClusterLevel" including original plots in "hgcalLayerClusters" folder --- .../interface/HGVHistoProducerAlgo.h | 8 ++--- .../HGCalValidation/plugins/HGCalValidator.cc | 30 +++++++++---------- .../src/HGVHistoProducerAlgo.cc | 22 +++++--------- 3 files changed, 27 insertions(+), 33 deletions(-) diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index 768c5e304be2c..95ef976fa08be 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -212,7 +212,7 @@ class HGVHistoProducerAlgo { unsigned int layers, std::vector thicknesses); - void bookClusterHistos(DQMStore::IBooker& ibook, + void bookClusterHistos_ClusterLevel(DQMStore::IBooker& ibook, Histograms& histograms, unsigned int layers, std::vector thicknesses, @@ -223,9 +223,9 @@ class HGVHistoProducerAlgo { unsigned int layers, std::vector thicknesses); - void bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, - Histograms& histograms, - unsigned int layers, + void bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, + Histograms& histograms, + unsigned int layers, std::vector thicknesses); void bookMultiClusterHistos(DQMStore::IBooker& ibook, Histograms& histograms, unsigned int layers); diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 2d7814e4d6793..097ef70c3d07c 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -150,23 +150,23 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, //Booking histograms concerning with hgcal layer clusters if (dolayerclustersPlots_) { ibook.cd(); - ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters"); - histoProducerAlgo_->bookClusterHistos(ibook, - histograms.histoProducerAlgo, - totallayers_to_monitor_, - thicknesses_to_monitor_, - cummatbudinxo_.fullPath()); + ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/ClusterLevel"); + histoProducerAlgo_->bookClusterHistos_ClusterLevel(ibook, + histograms.histoProducerAlgo, + totallayers_to_monitor_, + thicknesses_to_monitor_, + cummatbudinxo_.fullPath()); ibook.cd(); - ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/" + "LCtoCP_association"); - histoProducerAlgo_->bookClusterHistos_LCtoCP_association(ibook, - histograms.histoProducerAlgo, - totallayers_to_monitor_, - thicknesses_to_monitor_); + ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/LCtoCP_association"); + histoProducerAlgo_->bookClusterHistos_LCtoCP_association(ibook, + histograms.histoProducerAlgo, + totallayers_to_monitor_, + thicknesses_to_monitor_); ibook.cd(); - ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/" + "CellLevel"); - histoProducerAlgo_->bookClusterHistos_CellLevel(ibook, - histograms.histoProducerAlgo, - totallayers_to_monitor_, + ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/CellLevel"); + histoProducerAlgo_->bookClusterHistos_CellLevel(ibook, + histograms.histoProducerAlgo, + totallayers_to_monitor_, thicknesses_to_monitor_); } diff --git a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc index c91150201a2d5..44706d7b099b7 100644 --- a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc +++ b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc @@ -591,11 +591,11 @@ void HGVHistoProducerAlgo::bookSimClusterAssociationHistos(DQMStore::IBooker& ib histograms.h_sharedenergy_simcluster2layercl_vs_phi_perlayer.push_back( std::move(sharedenergy_simcluster2layercl_vs_phi_perlayer)); } -void HGVHistoProducerAlgo::bookClusterHistos(DQMStore::IBooker& ibook, - Histograms& histograms, - unsigned int layers, - std::vector thicknesses, - std::string pathtomatbudfile) { +void HGVHistoProducerAlgo::bookClusterHistos_ClusterLevel(DQMStore::IBooker& ibook, + Histograms& histograms, + unsigned int layers, + std::vector thicknesses, + std::string pathtomatbudfile) { //--------------------------------------------------------------------------------------------------------------------------- histograms.h_cluster_eta.push_back( ibook.book1D("num_reco_cluster_eta", "N of reco clusters vs eta", nintEta_, minEta_, maxEta_)); @@ -689,9 +689,9 @@ void HGVHistoProducerAlgo::bookClusterHistos(DQMStore::IBooker& ibook, } void HGVHistoProducerAlgo::bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, - Histograms& histograms, - unsigned int layers, - std::vector thicknesses){ + Histograms& histograms, + unsigned int layers, + std::vector thicknesses) { //---------------------------------------------------------------------------------------------------------------------------- for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { auto istr1 = std::to_string(ilayer); @@ -798,12 +798,6 @@ void HGVHistoProducerAlgo::bookClusterHistos_LCtoCP_association(DQMStore::IBooke nintEta_, minEta_, maxEta_); - histograms.h_denom_caloparticle_eta_perlayer[ilayer] = - ibook.book1D("Denom_CaloParticle_Eta_perlayer" + istr1, - "Denom CaloParticle Eta per Layer Cluster for layer " + istr2, - nintEta_, - minEta_, - maxEta_); histograms.h_num_caloparticle_phi_perlayer[ilayer] = ibook.book1D("Num_CaloParticle_Phi_perlayer" + istr1, "Num CaloParticle Phi per Layer Cluster for layer " + istr2, From 769003f29b0532b415d3241bd263faa4bbd9b99e Mon Sep 17 00:00:00 2001 From: Xingfu Date: Mon, 22 Feb 2021 10:46:07 +0100 Subject: [PATCH 3/7] Modify the variables of bookClusterHistos_LCtoCP_association function --- Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h | 3 +-- Validation/HGCalValidation/plugins/HGCalValidator.cc | 4 ++-- Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index 95ef976fa08be..e7597645c56c5 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -220,8 +220,7 @@ class HGVHistoProducerAlgo { void bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, Histograms& histograms, - unsigned int layers, - std::vector thicknesses); + unsigned int layers); void bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, Histograms& histograms, diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 097ef70c3d07c..5f55acde78e50 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -160,8 +160,8 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/LCtoCP_association"); histoProducerAlgo_->bookClusterHistos_LCtoCP_association(ibook, histograms.histoProducerAlgo, - totallayers_to_monitor_, - thicknesses_to_monitor_); + totallayers_to_monitor_); + ibook.cd(); ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/CellLevel"); histoProducerAlgo_->bookClusterHistos_CellLevel(ibook, diff --git a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc index 44706d7b099b7..adddf12a419d3 100644 --- a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc +++ b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc @@ -690,8 +690,7 @@ void HGVHistoProducerAlgo::bookClusterHistos_ClusterLevel(DQMStore::IBooker& ibo void HGVHistoProducerAlgo::bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, Histograms& histograms, - unsigned int layers, - std::vector thicknesses) { + unsigned int layers) { //---------------------------------------------------------------------------------------------------------------------------- for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { auto istr1 = std::to_string(ilayer); From 2cb35bbc9738db0b017e7a5ac33aef98cee70326 Mon Sep 17 00:00:00 2001 From: Xingfu Date: Thu, 25 Feb 2021 05:01:43 +0100 Subject: [PATCH 4/7] Redesign Validation plotting based on the structure of output DQM file --- .../HGCalValidation/python/hgcalPlots.py | 178 ++++++++++++------ 1 file changed, 116 insertions(+), 62 deletions(-) diff --git a/Validation/HGCalValidation/python/hgcalPlots.py b/Validation/HGCalValidation/python/hgcalPlots.py index 5e93726a03fcf..056f231a6fdda 100644 --- a/Validation/HGCalValidation/python/hgcalPlots.py +++ b/Validation/HGCalValidation/python/hgcalPlots.py @@ -1970,10 +1970,7 @@ hgcalLayerClustersPlotter = Plotter() layerClustersLabel = 'Layer Clusters' -lc_general = [ - # calculated "energy density" for cells in a) 120um, b) 200um, c) 300um, d) scint - # (one entry per rechit, in the appropriate histo) - _cellsenedens_thick, +lc_general_clusterlevel = [ # number of layer clusters per event in a) 120um, b) 200um, c) 300um, d) scint # (one entry per event in each of the four histos) _totclusternum_thick, @@ -1985,14 +1982,49 @@ _energyclustered, _mixedhitsclusters, _longdepthbarycentre, + # calculated "energy density" for cells in a) 120um, b) 200um, c) 300um, d) scint + # (one entry per rechit, in the appropriate histo) + _cellsenedens_thick, # SelectedCaloParticles plots - _SelectedCaloParticles, + _SelectedCaloParticles ] -lc_zminus = [ + +""" +lc_general_cellevel = [ + # calculated "energy density" for cells in a) 120um, b) 200um, c) 300um, d) scint + # (one entry per rechit, in the appropriate histo) + _cellsenedens_thick +] +""" + +lc_clusterlevel_zminus = [ # number of layer clusters per layer (one entry per event in each histo) _totclusternum_layer_EE_zminus, _totclusternum_layer_FH_zminus, _totclusternum_layer_BH_zminus, + # Looking at the fraction of true energy that has been clustered; by layer and overall + _energyclustered_perlayer_EE_zminus, + _energyclustered_perlayer_FH_zminus, + _energyclustered_perlayer_BH_zminus, + # Efficiency Plots + _efficiencies_zminus, + _efficiencies_zminus_eta, + _efficiencies_zminus_phi, + # Duplicate Plots + _duplicates_zminus, + _duplicates_zminus_eta, + _duplicates_zminus_phi, + # Fake Rate Plots + _fakes_zminus, + _fakes_zminus_eta, + _fakes_zminus_phi, + # Merge Rate Plots + _merges_zminus, + _merges_zminus_eta, + _merges_zminus_phi +] + +lc_cellevel_zminus = [ # For each layer cluster: # number of cells in layer cluster, by layer - separate histos in each layer for 120um Si, 200/300um Si, Scint # NB: not all combinations exist; e.g. no 120um Si in layers with scint. @@ -2009,10 +2041,11 @@ _cellsnum_perthick_perlayer_scint_EE_zminus, _cellsnum_perthick_perlayer_scint_FH_zminus, _cellsnum_perthick_perlayer_scint_BH_zminus, - # Looking at the fraction of true energy that has been clustered; by layer and overall - _energyclustered_perlayer_EE_zminus, - _energyclustered_perlayer_FH_zminus, - _energyclustered_perlayer_BH_zminus, + # Cell Association per Layer + _cell_association_table_zminus +] + +lc_cp_association_zminus = [ # Score of CaloParticles wrt Layer Clusters _score_caloparticle_to_layerclusters_zminus, # Score of LayerClusters wrt CaloParticles @@ -2021,29 +2054,12 @@ _sharedEnergy_caloparticle_to_layercluster_zminus, # Shared Energy between LayerClusters and CaloParticle _sharedEnergy_layercluster_to_caloparticle_zminus, - # Cell Association per Layer - _cell_association_table_zminus, - # Efficiency Plots - _efficiencies_zminus, - _efficiencies_zminus_eta, - _efficiencies_zminus_phi, - # Duplicate Plots - _duplicates_zminus, - _duplicates_zminus_eta, - _duplicates_zminus_phi, - # Fake Rate Plots - _fakes_zminus, - _fakes_zminus_eta, - _fakes_zminus_phi, - # Merge Rate Plots - _merges_zminus, - _merges_zminus_eta, - _merges_zminus_phi, # Energy vs Score 2D plots CP to LC _energyscore_cp2lc_zminus, # Energy vs Score 2D plots LC to CP _energyscore_lc2cp_zminus ] + lc_zminus_extended = [ # For each layer cluster: # distance of cells from a) seed cell, b) max cell; and c), d): same with entries weighted by cell energy @@ -2121,13 +2137,37 @@ _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_300_BH_zminus, _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_EE_zminus, _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_FH_zminus, - _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_BH_zminus, + _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_BH_zminus ] -lc_zplus = [ + +lc_clusterlevel_zplus = [ # number of layer clusters per layer (one entry per event in each histo) _totclusternum_layer_EE_zplus, _totclusternum_layer_FH_zplus, _totclusternum_layer_BH_zplus, + # Looking at the fraction of true energy that has been clustered; by layer and overall + _energyclustered_perlayer_EE_zplus, + _energyclustered_perlayer_FH_zplus, + _energyclustered_perlayer_BH_zplus, + # Efficiency Plots + _efficiencies_zplus, + _efficiencies_zplus_eta, + _efficiencies_zplus_phi, + # Duplicate Plots + _duplicates_zplus, + _duplicates_zplus_eta, + _duplicates_zplus_phi, + # Fake Rate Plots + _fakes_zplus, + _fakes_zplus_eta, + _fakes_zplus_phi, + # Merge Rate Plots + _merges_zplus, + _merges_zplus_eta, + _merges_zplus_phi +] + +lc_cellevel_zplus = [ # number of cells in layer cluster, by layer - separate histos in each layer for 120um Si, 200/300um Si, Scint _cellsnum_perthick_perlayer_120_EE_zplus, _cellsnum_perthick_perlayer_120_FH_zplus, @@ -2141,10 +2181,11 @@ _cellsnum_perthick_perlayer_scint_EE_zplus, _cellsnum_perthick_perlayer_scint_FH_zplus, _cellsnum_perthick_perlayer_scint_BH_zplus, - # Looking at the fraction of true energy that has been clustered; by layer and overall - _energyclustered_perlayer_EE_zplus, - _energyclustered_perlayer_FH_zplus, - _energyclustered_perlayer_BH_zplus, + # Cell Association per Layer + _cell_association_table_zplus +] + +lc_cp_association_zplus = [ # Score of CaloParticles wrt Layer Clusters _score_caloparticle_to_layerclusters_zplus, # Score of LayerClusters wrt CaloParticles @@ -2153,27 +2194,10 @@ _sharedEnergy_caloparticle_to_layercluster_zplus, # Shared Energy between LayerClusters and CaloParticle _sharedEnergy_layercluster_to_caloparticle_zplus, - # Cell Association per Layer - _cell_association_table_zplus, - # Efficiency Plots - _efficiencies_zplus, - _efficiencies_zplus_eta, - _efficiencies_zplus_phi, - # Duplicate Plots - _duplicates_zplus, - _duplicates_zplus_eta, - _duplicates_zplus_phi, - # Fake Rate Plots - _fakes_zplus, - _fakes_zplus_eta, - _fakes_zplus_phi, - # Merge Rate Plots - _merges_zplus, - _merges_zplus_eta, - _merges_zplus_phi, _energyscore_cp2lc_zplus, _energyscore_lc2cp_zplus ] + lc_zplus_extended = [ # distance of cells from a) seed cell, b) max cell; and c), d): same with entries weighted by cell energy _distancetomaxcell_perthickperlayer_120_EE_zplus, @@ -2247,22 +2271,52 @@ _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_300_BH_zplus, _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_EE_zplus, _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_FH_zplus, - _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_BH_zplus, + _distancebetseedandmaxcellvsclusterenergy_perthickperlayer_scint_BH_zplus ] def append_hgcalLayerClustersPlots(collection = "hgcalLayerClusters", name_collection = layerClustersLabel, extended = False): print('extended : ',extended) - regions = ["General", "zminus", "zplus"] - plots_lc_zminus = lc_zminus - plots_lc_zplus = lc_zplus - plots_lc_general = lc_general + regions_ClusterLevel = ["General: Cluster Level", "Z-minus: Cluster Level", "Z-plus: Cluster Level"] + regions_CellLevel = ["Z-minus: Cell Level", "Z-plus: Cell Level"] + regions_LCtoCP_association = ["Z-minus: LC_CP association", "Z-plus: LC_CP association"] + + plots_lc_general_clusterlevel = lc_general_clusterlevel + #plots_lc_general_cellevel = lc_general_cellevel + plots_lc_clusterlevel_zminus = lc_clusterlevel_zminus + plots_lc_cellevel_zminus = lc_cellevel_zminus + plots_lc_clusterlevel_zplus = lc_clusterlevel_zplus + plots_lc_cellevel_zplus = lc_cellevel_zplus + plots_lc_cp_association_zminus = lc_cp_association_zminus + plots_lc_cp_association_zplus = lc_cp_association_zplus + if extended : - plots_lc_zminus = lc_zminus + lc_zminus_extended - plots_lc_zplus = lc_zplus + lc_zplus_extended - setPlots = [plots_lc_general, plots_lc_zminus, plots_lc_zplus] - for reg, setPlot in zip(regions, setPlots): + plots_lc_clusterlevel_zminus = lc_clusterlevel_zminus + lc_zminus_extended + plots_lc_clusterlevel_zplus = lc_clusterlevel_zplus + lc_zplus_extended + plots_lc_cellevel_zminus = lc_cellevel_zminus + lc_zminus_extended + plots_lc_cellevel_zplus = lc_cellevel_zplus + lc_zplus_extended + plots_lc_cp_association_zminus = lc_cp_association_zminus + lc_zminus_extended + plots_lc_cp_association_zplus = lc_cp_association_zplus + lc_zplus_extended + + setPlots_ClusterLevel = [plots_lc_general_clusterlevel, plots_lc_clusterlevel_zminus, plots_lc_clusterlevel_zplus] + setPlots_CellLevel = [plots_lc_cellevel_zminus, plots_lc_cellevel_zplus] + setPlots_LCtoCP_association = [plots_lc_cp_association_zminus, plots_lc_cp_association_zplus] + for reg, setPlot in zip(regions_ClusterLevel, setPlots_ClusterLevel): + hgcalLayerClustersPlotter.append(collection+"_"+reg, [ + _hgcalFolders(collection + "/ClusterLevel") + ], PlotFolder( + *setPlot, + loopSubFolders=False, + purpose=PlotPurpose.Timing, page=layerClustersLabel, section=reg)) + for reg, setPlot in zip(regions_CellLevel, setPlots_CellLevel): + hgcalLayerClustersPlotter.append(collection+"_"+reg, [ + _hgcalFolders(collection + "/CellLevel") + ], PlotFolder( + *setPlot, + loopSubFolders=False, + purpose=PlotPurpose.Timing, page=layerClustersLabel, section=reg)) + for reg, setPlot in zip(regions_LCtoCP_association, setPlots_LCtoCP_association): hgcalLayerClustersPlotter.append(collection+"_"+reg, [ - _hgcalFolders(collection) + _hgcalFolders(collection + "/LCtoCP_association") ], PlotFolder( *setPlot, loopSubFolders=False, From 5482a4885ae4408ac65483634d8b525cb71b754f Mon Sep 17 00:00:00 2001 From: Xingfu Date: Wed, 3 Mar 2021 03:56:20 +0100 Subject: [PATCH 5/7] Erase the redundant comment --- Validation/HGCalValidation/python/hgcalPlots.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Validation/HGCalValidation/python/hgcalPlots.py b/Validation/HGCalValidation/python/hgcalPlots.py index 056f231a6fdda..c8d739231b830 100644 --- a/Validation/HGCalValidation/python/hgcalPlots.py +++ b/Validation/HGCalValidation/python/hgcalPlots.py @@ -1989,14 +1989,6 @@ _SelectedCaloParticles ] -""" -lc_general_cellevel = [ - # calculated "energy density" for cells in a) 120um, b) 200um, c) 300um, d) scint - # (one entry per rechit, in the appropriate histo) - _cellsenedens_thick -] -""" - lc_clusterlevel_zminus = [ # number of layer clusters per layer (one entry per event in each histo) _totclusternum_layer_EE_zminus, @@ -2281,7 +2273,6 @@ def append_hgcalLayerClustersPlots(collection = "hgcalLayerClusters", name_colle regions_LCtoCP_association = ["Z-minus: LC_CP association", "Z-plus: LC_CP association"] plots_lc_general_clusterlevel = lc_general_clusterlevel - #plots_lc_general_cellevel = lc_general_cellevel plots_lc_clusterlevel_zminus = lc_clusterlevel_zminus plots_lc_cellevel_zminus = lc_cellevel_zminus plots_lc_clusterlevel_zplus = lc_clusterlevel_zplus From eeebe378de91f3de6e6534c9638879e59bdefc92 Mon Sep 17 00:00:00 2001 From: Xingfu Date: Thu, 4 Mar 2021 04:33:33 +0100 Subject: [PATCH 6/7] Correct Validation plotting --- .../HGCalValidation/python/hgcalPlots.py | 80 +++++++++---------- 1 file changed, 39 insertions(+), 41 deletions(-) diff --git a/Validation/HGCalValidation/python/hgcalPlots.py b/Validation/HGCalValidation/python/hgcalPlots.py index c8d739231b830..627126d4719af 100644 --- a/Validation/HGCalValidation/python/hgcalPlots.py +++ b/Validation/HGCalValidation/python/hgcalPlots.py @@ -1984,9 +1984,7 @@ _longdepthbarycentre, # calculated "energy density" for cells in a) 120um, b) 200um, c) 300um, d) scint # (one entry per rechit, in the appropriate histo) - _cellsenedens_thick, - # SelectedCaloParticles plots - _SelectedCaloParticles + _cellsenedens_thick ] lc_clusterlevel_zminus = [ @@ -1997,23 +1995,7 @@ # Looking at the fraction of true energy that has been clustered; by layer and overall _energyclustered_perlayer_EE_zminus, _energyclustered_perlayer_FH_zminus, - _energyclustered_perlayer_BH_zminus, - # Efficiency Plots - _efficiencies_zminus, - _efficiencies_zminus_eta, - _efficiencies_zminus_phi, - # Duplicate Plots - _duplicates_zminus, - _duplicates_zminus_eta, - _duplicates_zminus_phi, - # Fake Rate Plots - _fakes_zminus, - _fakes_zminus_eta, - _fakes_zminus_phi, - # Merge Rate Plots - _merges_zminus, - _merges_zminus_eta, - _merges_zminus_phi + _energyclustered_perlayer_BH_zminus ] lc_cellevel_zminus = [ @@ -2038,6 +2020,22 @@ ] lc_cp_association_zminus = [ + # Efficiency Plots + _efficiencies_zminus, + _efficiencies_zminus_eta, + _efficiencies_zminus_phi, + # Duplicate Plots + _duplicates_zminus, + _duplicates_zminus_eta, + _duplicates_zminus_phi, + # Fake Rate Plots + _fakes_zminus, + _fakes_zminus_eta, + _fakes_zminus_phi, + # Merge Rate Plots + _merges_zminus, + _merges_zminus_eta, + _merges_zminus_phi, # Score of CaloParticles wrt Layer Clusters _score_caloparticle_to_layerclusters_zminus, # Score of LayerClusters wrt CaloParticles @@ -2140,23 +2138,7 @@ # Looking at the fraction of true energy that has been clustered; by layer and overall _energyclustered_perlayer_EE_zplus, _energyclustered_perlayer_FH_zplus, - _energyclustered_perlayer_BH_zplus, - # Efficiency Plots - _efficiencies_zplus, - _efficiencies_zplus_eta, - _efficiencies_zplus_phi, - # Duplicate Plots - _duplicates_zplus, - _duplicates_zplus_eta, - _duplicates_zplus_phi, - # Fake Rate Plots - _fakes_zplus, - _fakes_zplus_eta, - _fakes_zplus_phi, - # Merge Rate Plots - _merges_zplus, - _merges_zplus_eta, - _merges_zplus_phi + _energyclustered_perlayer_BH_zplus ] lc_cellevel_zplus = [ @@ -2178,6 +2160,22 @@ ] lc_cp_association_zplus = [ + # Efficiency Plots + _efficiencies_zplus, + _efficiencies_zplus_eta, + _efficiencies_zplus_phi, + # Duplicate Plots + _duplicates_zplus, + _duplicates_zplus_eta, + _duplicates_zplus_phi, + # Fake Rate Plots + _fakes_zplus, + _fakes_zplus_eta, + _fakes_zplus_phi, + # Merge Rate Plots + _merges_zplus, + _merges_zplus_eta, + _merges_zplus_phi, # Score of CaloParticles wrt Layer Clusters _score_caloparticle_to_layerclusters_zplus, # Score of LayerClusters wrt CaloParticles @@ -2281,12 +2279,12 @@ def append_hgcalLayerClustersPlots(collection = "hgcalLayerClusters", name_colle plots_lc_cp_association_zplus = lc_cp_association_zplus if extended : - plots_lc_clusterlevel_zminus = lc_clusterlevel_zminus + lc_zminus_extended - plots_lc_clusterlevel_zplus = lc_clusterlevel_zplus + lc_zplus_extended + #plots_lc_clusterlevel_zminus = lc_clusterlevel_zminus + #plots_lc_clusterlevel_zplus = lc_clusterlevel_zplus plots_lc_cellevel_zminus = lc_cellevel_zminus + lc_zminus_extended plots_lc_cellevel_zplus = lc_cellevel_zplus + lc_zplus_extended - plots_lc_cp_association_zminus = lc_cp_association_zminus + lc_zminus_extended - plots_lc_cp_association_zplus = lc_cp_association_zplus + lc_zplus_extended + #plots_lc_cp_association_zminus = lc_cp_association_zminus + #plots_lc_cp_association_zplus = lc_cp_association_zplus setPlots_ClusterLevel = [plots_lc_general_clusterlevel, plots_lc_clusterlevel_zminus, plots_lc_clusterlevel_zplus] setPlots_CellLevel = [plots_lc_cellevel_zminus, plots_lc_cellevel_zplus] From fb808aa9ceb1c853e4e111ab28e27f19ea142a7a Mon Sep 17 00:00:00 2001 From: Xingfu Date: Thu, 4 Mar 2021 04:35:48 +0100 Subject: [PATCH 7/7] Code checks --- .../interface/HGVHistoProducerAlgo.h | 14 ++++++-------- .../HGCalValidation/plugins/HGCalValidator.cc | 13 +++++-------- .../HGCalValidation/src/HGVHistoProducerAlgo.cc | 7 +++---- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index e7597645c56c5..a25a1f0d4eb64 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -213,14 +213,12 @@ class HGVHistoProducerAlgo { std::vector thicknesses); void bookClusterHistos_ClusterLevel(DQMStore::IBooker& ibook, - Histograms& histograms, - unsigned int layers, - std::vector thicknesses, - std::string pathtomatbudfile); - - void bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, - Histograms& histograms, - unsigned int layers); + Histograms& histograms, + unsigned int layers, + std::vector thicknesses, + std::string pathtomatbudfile); + + void bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, Histograms& histograms, unsigned int layers); void bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, Histograms& histograms, diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 5f55acde78e50..b509a92872f29 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -158,16 +158,13 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, cummatbudinxo_.fullPath()); ibook.cd(); ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/LCtoCP_association"); - histoProducerAlgo_->bookClusterHistos_LCtoCP_association(ibook, - histograms.histoProducerAlgo, - totallayers_to_monitor_); - + histoProducerAlgo_->bookClusterHistos_LCtoCP_association( + ibook, histograms.histoProducerAlgo, totallayers_to_monitor_); + ibook.cd(); ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/CellLevel"); - histoProducerAlgo_->bookClusterHistos_CellLevel(ibook, - histograms.histoProducerAlgo, - totallayers_to_monitor_, - thicknesses_to_monitor_); + histoProducerAlgo_->bookClusterHistos_CellLevel( + ibook, histograms.histoProducerAlgo, totallayers_to_monitor_, thicknesses_to_monitor_); } //Booking histograms for multiclusters diff --git a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc index adddf12a419d3..e730e0edcc697 100644 --- a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc +++ b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc @@ -689,8 +689,8 @@ void HGVHistoProducerAlgo::bookClusterHistos_ClusterLevel(DQMStore::IBooker& ibo } void HGVHistoProducerAlgo::bookClusterHistos_LCtoCP_association(DQMStore::IBooker& ibook, - Histograms& histograms, - unsigned int layers) { + Histograms& histograms, + unsigned int layers) { //---------------------------------------------------------------------------------------------------------------------------- for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { auto istr1 = std::to_string(ilayer); @@ -858,7 +858,7 @@ void HGVHistoProducerAlgo::bookClusterHistos_LCtoCP_association(DQMStore::IBooke void HGVHistoProducerAlgo::bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, Histograms& histograms, unsigned int layers, - std::vector thicknesses){ + std::vector thicknesses) { //---------------------------------------------------------------------------------------------------------------------------- for (unsigned ilayer = 0; ilayer < 2 * layers; ++ilayer) { auto istr1 = std::to_string(ilayer); @@ -960,7 +960,6 @@ void HGVHistoProducerAlgo::bookClusterHistos_CellLevel(DQMStore::IBooker& ibook, maxClEneperthickperlayer_); } } - } //----------------------------------------------------------------------------------------------------------------------------