From 1ccff5280b3ef0e1c4e0b0328689202b262cff13 Mon Sep 17 00:00:00 2001 From: Christos Anastopoulos <Christos.Anastopoulos@cern.ch> Date: Fri, 7 Oct 2016 16:56:06 +0200 Subject: [PATCH] Driven by a study from Guillaume Refine the calculation of the etaBE(1) +- 1 cell (egammaTools-01-02-12) * Tag egammaTools-01-02-12 * Driven by a study from Guillaume * Refine the calculation of the etaBE(1) * +- 1 cell * Add the ability to apply the 3x5 for * superclusters 2016-10-05 Christos Anastopoulos <Christos.Anastopoulos@cern.ch> * Handle toposeeded clusters properly at the source * Tag egammaTools-01-02-11 2016-09-28 Thomas Meideck <thomas.meideck@cern.ch> * Add a bit in the OQ word about the Rcell variable * Tag egammaTools-01-02-10 2016-09-20 Christos Anastopoulos <Christos.Anastopoulos@cern.ch> ... (Long ChangeLog diff - truncated) Former-commit-id: 84747782f47874cf249333a3701af8cf85922928 --- .../python/egammaOQFlagsBuilder.py | 1 + .../python/egammaToolsFactories.py | 19 +-- .../egamma/egammaTools/src/EMClusterTool.cxx | 5 +- .../egammaTools/src/egammaOQFlagsBuilder.cxx | 13 +- .../egammaTools/src/egammaOQFlagsBuilder.h | 2 +- .../src/egammaSuperClusterBuilder.cxx | 142 ++++++++++++++++++ .../src/egammaSuperClusterBuilder.h | 3 + .../egamma/egammaTools/src/egammaSwTool.cxx | 8 + .../egamma/egammaTools/src/egammaSwTool.h | 17 ++- .../src/photonSuperClusterBuilder.cxx | 1 - 10 files changed, 191 insertions(+), 20 deletions(-) diff --git a/Reconstruction/egamma/egammaTools/python/egammaOQFlagsBuilder.py b/Reconstruction/egamma/egammaTools/python/egammaOQFlagsBuilder.py index cfd6c62e29d..f840d800816 100644 --- a/Reconstruction/egamma/egammaTools/python/egammaOQFlagsBuilder.py +++ b/Reconstruction/egamma/egammaTools/python/egammaOQFlagsBuilder.py @@ -17,6 +17,7 @@ egammaOQFlagsBuilder = ToolFactory( egammaToolsConf.egammaOQFlagsBuilder, LArQCut = 0.8, TCut = 10., TCutVsE = 2., + RcellCut = 0.8, CellsName = egammaKeys.caloCellKey(), LArBadChannelTool = LArBadChanTool, affectedTool = CaloAffectedToolDefault) diff --git a/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py b/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py index 2aedc3c863f..f386e1c9f22 100644 --- a/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py +++ b/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py @@ -31,9 +31,9 @@ def configureClusterCorrections(swTool): #Super cluster position only corrections if jobproperties.egammaRecFlags.doSuperclusters(): - clusterTypesSuper = dict(Ele55='ele55', Ele37='ele37', - Gam55='gam55_unconv',Gam37='gam37_unconv', - Econv55='gam55_conv', Econv37='gam37_conv' + clusterTypesSuper = dict(Ele35='ele35',Ele55='ele55', Ele37='ele37', + Gam35='gam35_unconv',Gam55='gam55_unconv',Gam37='gam37_unconv', + Econv35='gam35_conv', Econv55='gam55_conv', Econv37='gam37_conv' ) for attrName, clName in clusterTypes.iteritems(): @@ -42,8 +42,8 @@ def configureClusterCorrections(swTool): continue superclusterCorr= make_CaloSwCorrections(clName, suffix ='EGSuperCluster', - corrlist=[ [rfac,'v5'],[etaoff_b1,'v5'],[etaoff_e1, 'v5'], - [etaoff_b2,'v5'],[etaoff_e2,'v5'], [phioff_b2, 'v5data'], + corrlist=[ [rfac,'v5'],[etaoff_b1,'v5'],[etaoff_e1,'v5'], + [etaoff_b2,'v5'],[etaoff_e2,'v5'], [phioff_b2, 'v5data'], [phioff_e2, 'v5data'], [update], [time], [listBadChannel]], cells_name=egammaKeys.caloCellKey()) setattr(swTool, x ,_process_tools (swTool, superclusterCorr) ) @@ -65,9 +65,8 @@ EMClusterTool = ToolFactory(egammaToolsConf.EMClusterTool, PhotonContainerName = egammaKeys.outputPhotonKey(), ClusterCorrectionToolName = FullNameWrapper(egammaSwTool), doSuperCluster = jobproperties.egammaRecFlags.doSuperclusters(), - applyMVAToSuperCluster=False, MVACalibTool= egammaMVATool -) + ) egammaCheckEnergyDepositTool = ToolFactory(egammaToolsConf.egammaCheckEnergyDepositTool, @@ -86,7 +85,7 @@ EMBremCollectionBuilder = ToolFactory( egammaBremCollectionBuilder, OutputTrackContainerName=egammaKeys.outputTrackKey(), ClusterContainerName=egammaKeys.inputClusterKey(), DoTruth=rec.doTruth() -) + ) EMConversionBuilder = ToolFactory( egammaToolsConf.EMConversionBuilder, @@ -111,9 +110,7 @@ egammaTopoClusterCopier = ToolFactory( egammaToolsConf.egammaTopoClusterCopier, electronSuperClusterBuilder = ToolFactory( egammaToolsConf.electronSuperClusterBuilder, name = 'electronSuperClusterBuilder', ClusterCorrectionTool=egammaSwTool, - CorrectClusters=True, MVACalibTool=egammaMVATool, - CalibrateClusters=False, EtThresholdCut=1000, AddCellsWindowEtaCellsBarrel=3, AddCellsWindowPhiCellsBarrel=999, @@ -125,9 +122,7 @@ electronSuperClusterBuilder = ToolFactory( egammaToolsConf.electronSuperClusterB photonSuperClusterBuilder = ToolFactory( egammaToolsConf.photonSuperClusterBuilder, name = 'photonSuperClusterBuilder', ClusterCorrectionTool=egammaSwTool, - CorrectClusters=True, MVACalibTool= egammaMVATool, - CalibrateClusters=False, AddCellsWindowEtaCellsBarrel=3, AddCellsWindowPhiCellsBarrel=999, AddCellsWindowEtaCellsEndcap=5, diff --git a/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx b/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx index 2e3a2ad1c75..dcaf7e0b06f 100644 --- a/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx +++ b/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx @@ -34,7 +34,7 @@ EMClusterTool::EMClusterTool(const std::string& type, const std::string& name, c "Name of the input electron container"); declareProperty("PhotonContainerName", m_photonContainerName, "Name of the input photon container"); - declareProperty("doSuperCluster", m_doSuperClusters = false, + declareProperty("doSuperCluster", m_doSuperClusters = true, "Do Super Cluster Reco"); declareProperty("applyMVAToSuperCluster", m_applySuperClusters = true, "Protection to not do anything for superClusters"); @@ -103,8 +103,9 @@ StatusCode EMClusterTool::contExecute() // Create output cluster container for topo-seeded clusters and register in StoreGate // Only if they differ from the main output cluster container + // and if we do not do supercluster xAOD::CaloClusterContainer* outputTopoSeededClusterContainer = outputClusterContainer; - bool doTopoSeededContainer= (m_outputTopoSeededClusterContainerName != m_outputClusterContainerName); + bool doTopoSeededContainer= (m_outputTopoSeededClusterContainerName != m_outputClusterContainerName && !m_doSuperClusters); if(doTopoSeededContainer){ outputTopoSeededClusterContainer = CaloClusterStoreHelper::makeContainer(&*evtStore(), m_outputTopoSeededClusterContainerName, diff --git a/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.cxx b/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.cxx index 1a59391f168..eadc18640d3 100644 --- a/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.cxx +++ b/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.cxx @@ -56,6 +56,7 @@ egammaOQFlagsBuilder::egammaOQFlagsBuilder(const std::string& type, declareProperty("LArQCut", m_LArQCut = 0.8); declareProperty("TCut", m_TCut = 10.0); declareProperty("TCutVsE", m_TCutVsE = 2.0); + declareProperty("RcellCut", m_RcellCut = 0.8); m_affRegVec = 0; m_calocellId = 0; } @@ -246,6 +247,7 @@ StatusCode egammaOQFlagsBuilder::execute(xAOD::Egamma* eg) //Declare totE and badE for LarQ cleaning double totE=0; double badE=0; + double energyCellMax=0; if (foundCentralCell) { //Find the list of neighbours cells, to define the 3x3 cluster core @@ -266,6 +268,7 @@ StatusCode egammaOQFlagsBuilder::execute(xAOD::Egamma* eg) //Calculate badE et totE if( (cell->provenance() & 0x2000) &&!(cell->provenance() & 0x0800 )) { totE += cell->e(); + if(cell->e() > energyCellMax ) energyCellMax = cell->e(); if(cell->quality() > m_QCellCut ) badE += cell->e(); } @@ -359,8 +362,16 @@ StatusCode egammaOQFlagsBuilder::execute(xAOD::Egamma* eg) iflag |= (0x1 << xAOD::EgammaParameters::LArQCleaning); } //=========================================// + //==== Set HighRcell bit ===============// + double ratioCell=0; + if(totE !=0) ratioCell=energyCellMax/totE; + if(ratioCell>m_RcellCut){ + iflag |= (0x1 << xAOD::EgammaParameters::HighRcell); + } + //=========================================// + } //close if found central cell - + //========================= Check the HV components ===================================================// float deta=0; float dphi=0; diff --git a/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.h b/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.h index 8f29a3d8eb3..b37f4de6f28 100644 --- a/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.h +++ b/Reconstruction/egamma/egammaTools/src/egammaOQFlagsBuilder.h @@ -79,7 +79,7 @@ class egammaOQFlagsBuilder : public egammaBaseTool double m_LArQCut; double m_TCut; double m_TCutVsE; - + double m_RcellCut; }; #endif diff --git a/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.cxx b/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.cxx index 83fe38b921a..c0f3c7327b3 100644 --- a/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.cxx +++ b/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.cxx @@ -6,6 +6,7 @@ // #include "CaloUtils/CaloClusterStoreHelper.h" #include "CaloUtils/CaloCellList.h" +#include "CaloUtils/CaloLayerCalculator.h" // #include "xAODCaloEvent/CaloClusterAuxContainer.h" #include "xAODCaloEvent/CaloCluster.h" @@ -24,6 +25,89 @@ using CLHEP::GeV; +namespace { + /** + * Duplicate code + * @brief Return eta/phi ranges encompassing +- 1 cell. + * @param eta Central eta value. + * @param phi Central phi value. + * @param sampling The sampling to use. + * @param[out] deta Range in eta. + * @param[out] dphi Range in phi. + * + * This can be a little tricky due to misalignments and the fact + * that cells have different sizes in different regions. Also, + * CaloLayerCalculator takes only a symmetric eta range. + * We try to find the neighboring cells by starting from the center + * cell and looking a little bit more than half its width in either + * direction, and finding the centers of those cells. Then we use + * the larger of these for the symmetric range. + */ + void etaphi_range (double eta, + double phi, + CaloCell_ID::CaloSample sampling, + double& deta, + double& dphi) + { + deta = 0; + dphi = 0; + + // Get the DD element for the central cell. + const CaloDetDescrManager* dd_man = CaloDetDescrManager::instance(); + const CaloDetDescrElement* elt = dd_man->get_element_raw (sampling, eta, phi); + if (!elt) return; + + // Should be smaller than the eta half-width of any cell. + const double eps = 0.001; + + // Now look in the negative eta direction. + const CaloDetDescrElement* elt_l = dd_man->get_element_raw(sampling, + eta - elt->deta() - eps, + phi); + double deta_l = 0; // Eta difference on the low (left) side. + if (elt_l){ + deta_l = std::abs (eta - elt_l->eta_raw()) + eps; + } + // Now look in the positive eta direction. + const CaloDetDescrElement* elt_r = dd_man->get_element_raw(sampling, + eta + elt->deta() + eps, + phi); + double deta_r = 0; // Eta difference on the high (right) side. + if (elt_r){ + deta_r = std::abs (eta - elt_r->eta_raw()) + eps; + } + + // Total deta is twice the maximum. + deta = 2 * std::max (deta_r, deta_l); + + // Now for the phi variation. + // The phi size can change as a function of eta, but not of phi. + // Thus we have to look again at the adjacent eta cells, and + // take the largest variation. + + // Now look in the negative eta direction. + elt_l = dd_man->get_element_raw(sampling, + eta - elt->deta() - eps, + CaloPhiRange::fix (phi - elt->dphi() - eps)); + + double dphi_l = 0; // Phi difference on the low-eta () side. + if (elt_l){ + dphi_l = std::abs (CaloPhiRange::fix (phi - elt_l->phi_raw())) + eps; + } + // Now look in the positive eta direction. + elt_r = dd_man->get_element_raw(sampling, + eta + elt->deta() + eps, + CaloPhiRange::fix (phi - elt->dphi() - eps)); + double dphi_r = 0; // Phi difference on the positive (down) side. + if (elt_r){ + dphi_r = std::abs (CaloPhiRange::fix (phi - elt_r->phi_raw())) + eps; + } + // Total dphi is twice the maximum. + dphi = 2 * std::max (dphi_l, dphi_r); + } +} + + ////////////////////////////////////////////////////////////////////////////// //Athena interfaces. ////////////////////////////////////////////////////////////////////////////// @@ -338,6 +422,17 @@ StatusCode egammaSuperClusterBuilder::AddRemainingCellsToCluster(xAOD::CaloClust StatusCode egammaSuperClusterBuilder::CalibrateCluster(xAOD::CaloCluster* newCluster, const xAOD::EgammaParameters::EgammaType egType) { + + ATH_MSG_DEBUG("========== Initial ==== "); + ATH_MSG_DEBUG("Cluster Energy Initial: "<<newCluster->e()); + ATH_MSG_DEBUG("Cluster eta Initial: "<<newCluster->eta()); + ATH_MSG_DEBUG("Cluster phi Initial: "<<newCluster->phi()); + ATH_MSG_DEBUG("Cluster etaBE(1) Initial: "<<newCluster->etaBE(1)); + ATH_MSG_DEBUG("Cluster phiBE(1) Initial: "<<newCluster->phiBE(1)); + ATH_MSG_DEBUG("Cluster etaBE(2) Initial: "<<newCluster->etaBE(2)); + ATH_MSG_DEBUG("Cluster phiBE(2) Initial: "<<newCluster->phiBE(2)); + //Refine Eta1 + ATH_CHECK(refineEta1Position(newCluster)); //Save the state before the corrections newCluster->setAltE(newCluster->e()); newCluster->setAltEta(newCluster->eta()); @@ -346,6 +441,8 @@ StatusCode egammaSuperClusterBuilder::CalibrateCluster(xAOD::CaloCluster* newClu ATH_MSG_DEBUG("Cluster Energy no correction/calibration: "<<newCluster->e()); ATH_MSG_DEBUG("Cluster eta no correction/calibration: "<<newCluster->eta()); ATH_MSG_DEBUG("Cluster phi no correction/calibration: "<<newCluster->phi()); + ATH_MSG_DEBUG("Cluster etaBE(1) no correction/calibration: "<<newCluster->etaBE(1)); + ATH_MSG_DEBUG("Cluster phiBE(1) no correction/calibration: "<<newCluster->phiBE(1)); ATH_MSG_DEBUG("Cluster etaBE(2) no correction/calibration: "<<newCluster->etaBE(2)); ATH_MSG_DEBUG("Cluster phiBE(2) no correction/calibration: "<<newCluster->phiBE(2)); @@ -360,6 +457,8 @@ StatusCode egammaSuperClusterBuilder::CalibrateCluster(xAOD::CaloCluster* newClu ATH_MSG_DEBUG("Cluster Energy after position corrections: "<<newCluster->e()); ATH_MSG_DEBUG("Cluster eta after position corrections: "<<newCluster->eta()); ATH_MSG_DEBUG("Cluster phi after position corrections: "<<newCluster->phi()); + ATH_MSG_DEBUG("Cluster etaBE(1) no correction/calibration: "<<newCluster->etaBE(1)); + ATH_MSG_DEBUG("Cluster phiBE(1) no correction/calibration: "<<newCluster->phiBE(1)); ATH_MSG_DEBUG("Cluster etaBE(2) after position corrections: "<<newCluster->etaBE(2)); ATH_MSG_DEBUG("Cluster phiBE(2) after position corrections: "<<newCluster->phiBE(2)); @@ -400,3 +499,46 @@ StatusCode egammaSuperClusterBuilder::fillPositionsInCalo(xAOD::CaloCluster* clu return StatusCode::SUCCESS; } + +StatusCode egammaSuperClusterBuilder::refineEta1Position(xAOD::CaloCluster* cluster) const { + + // Now refine the eta position using +-1 strip around hot cell + // This only makes sense if eta1 is good + if (!cluster->hasSampling(CaloSampling::EMB1) && !cluster->hasSampling(CaloSampling::EME1)) { + return StatusCode::SUCCESS; + } + + // For some silly reason, we have TWO different sampling enums. + // The clusters use one, the detector description uses the other. + CaloSampling::CaloSample sample; + CaloCell_ID::CaloSample xsample; + + if (cluster->hasSampling(CaloSampling::EMB1)) { + sample = CaloSampling::EMB1; + xsample = CaloCell_ID::EMB1; + } else { + sample = CaloSampling::EME1; + xsample = CaloCell_ID::EME1; + } + + double detastr, dphistr; + const auto etamax = cluster->etamax(sample); + const auto phimax = cluster->phimax(sample); + etaphi_range(etamax, phimax, + xsample, + detastr, dphistr); + + if (detastr > 0 && dphistr > 0) { + const auto cellLink = cluster->getCellLinks(); + if (cellLink) { + CaloLayerCalculator calc; + calc.fill(cellLink->begin(), cellLink->end(), etamax, phimax, detastr, dphistr, sample); + + const auto eta = calc.etam(); + if (eta != -999.) { + cluster->setEta(sample, eta); + } + } + } + return StatusCode::SUCCESS; +} diff --git a/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.h b/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.h index 0ce6fa1da98..715e7d362f1 100644 --- a/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.h +++ b/Reconstruction/egamma/egammaTools/src/egammaSuperClusterBuilder.h @@ -79,6 +79,9 @@ private: StatusCode fillPositionsInCalo(xAOD::CaloCluster* cluster); // above can't be const because m_caloCellDetPos acceses are not const + //refine + StatusCode refineEta1Position(xAOD::CaloCluster* cluster) const ; + // these are calculated window values for the windows in which cells of topoclusters are edded diff --git a/Reconstruction/egamma/egammaTools/src/egammaSwTool.cxx b/Reconstruction/egamma/egammaTools/src/egammaSwTool.cxx index b1d01fdb5a8..b13ee8f46c9 100644 --- a/Reconstruction/egamma/egammaTools/src/egammaSwTool.cxx +++ b/Reconstruction/egamma/egammaTools/src/egammaSwTool.cxx @@ -48,10 +48,15 @@ egammaSwTool::egammaSwTool(const std::string& type, declareProperty("ClusterCorrectionToolsEconv37",m_clusterCorrectionNamesEconv37); // //SuperCluster + declareProperty("ClusterCorrectionToolsSuperClusterEle35",m_clusterCorrectionNamesSuperClusterEle35); declareProperty("ClusterCorrectionToolsSuperClusterEle55",m_clusterCorrectionNamesSuperClusterEle55); declareProperty("ClusterCorrectionToolsSuperClusterEle37",m_clusterCorrectionNamesSuperClusterEle37); + // + declareProperty("ClusterCorrectionToolsSuperClusterGam35",m_clusterCorrectionNamesSuperClusterGam35); declareProperty("ClusterCorrectionToolsSuperClusterGam55",m_clusterCorrectionNamesSuperClusterGam55); declareProperty("ClusterCorrectionToolsSuperClusterGam37",m_clusterCorrectionNamesSuperClusterGam37); + // + declareProperty("ClusterCorrectionToolsSuperClusterEconv35",m_clusterCorrectionNamesSuperClusterEconv35); declareProperty("ClusterCorrectionToolsSuperClusterEconv55",m_clusterCorrectionNamesSuperClusterEconv55); declareProperty("ClusterCorrectionToolsSuperClusterEconv37",m_clusterCorrectionNamesSuperClusterEconv37); @@ -82,12 +87,15 @@ StatusCode egammaSwTool::initialize() ATH_CHECK(populateTools(m_clusterCorrectionNamesEconv37,m_clusterCorrectionPointersEconv37)); ATH_CHECK(populateTools(m_clusterCorrectionNamesEconv55,m_clusterCorrectionPointersEconv55)); //SuperCluster + ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterEle35,m_clusterCorrectionPointersSuperClusterEle35)); ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterEle37,m_clusterCorrectionPointersSuperClusterEle37)); ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterEle55,m_clusterCorrectionPointersSuperClusterEle55)); // + ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterGam35,m_clusterCorrectionPointersSuperClusterGam35)); ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterGam37,m_clusterCorrectionPointersSuperClusterGam37)); ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterGam55,m_clusterCorrectionPointersSuperClusterGam55)); // + ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterEconv35,m_clusterCorrectionPointersSuperClusterEconv35)); ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterEconv37,m_clusterCorrectionPointersSuperClusterEconv37)); ATH_CHECK(populateTools(m_clusterCorrectionNamesSuperClusterEconv55,m_clusterCorrectionPointersSuperClusterEconv55)); return StatusCode::SUCCESS; diff --git a/Reconstruction/egamma/egammaTools/src/egammaSwTool.h b/Reconstruction/egamma/egammaTools/src/egammaSwTool.h index 560e61bc3da..76abc2975f8 100644 --- a/Reconstruction/egamma/egammaTools/src/egammaSwTool.h +++ b/Reconstruction/egamma/egammaTools/src/egammaSwTool.h @@ -65,9 +65,14 @@ class egammaSwTool : public AthAlgTool, virtual public IegammaSwTool std::vector<std::string> m_clusterCorrectionNamesSuperClusterEle37; std::vector<std::string> m_clusterCorrectionNamesSuperClusterGam37; std::vector<std::string> m_clusterCorrectionNamesSuperClusterEconv37; + // std::vector<std::string> m_clusterCorrectionNamesSuperClusterEle55; std::vector<std::string> m_clusterCorrectionNamesSuperClusterGam55; std::vector<std::string> m_clusterCorrectionNamesSuperClusterEconv55; + // + std::vector<std::string> m_clusterCorrectionNamesSuperClusterEle35; + std::vector<std::string> m_clusterCorrectionNamesSuperClusterGam35; + std::vector<std::string> m_clusterCorrectionNamesSuperClusterEconv35; /** @brief the actual list of tools corresponding to above names */ std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersEle55; @@ -80,12 +85,18 @@ class egammaSwTool : public AthAlgTool, virtual public IegammaSwTool std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersEconv35; std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersEconv37; //SuperCluster - std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEle37; - std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterGam37; - std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEconv37; + std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEle35; + std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEconv35; + std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterGam35; + // std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEle55; std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterGam55; std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEconv55; + // + std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEle37; + std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterGam37; + std::vector<CaloClusterProcessor*> m_clusterCorrectionPointersSuperClusterEconv37; + }; #endif diff --git a/Reconstruction/egamma/egammaTools/src/photonSuperClusterBuilder.cxx b/Reconstruction/egamma/egammaTools/src/photonSuperClusterBuilder.cxx index e9511f70757..9be9b558875 100644 --- a/Reconstruction/egamma/egammaTools/src/photonSuperClusterBuilder.cxx +++ b/Reconstruction/egamma/egammaTools/src/photonSuperClusterBuilder.cxx @@ -154,7 +154,6 @@ StatusCode photonSuperClusterBuilder::execute(){ const std::vector<std::size_t> secondaryClusters = SearchForSecondaryClusters(i, egammaRecs, isUsed, nWindowClusters, nExtraClusters); - for (auto secClus : secondaryClusters) { const auto secRec = egammaRecs->at(secClus); accumulatedClusters.push_back(secRec->caloCluster()); -- GitLab