diff --git a/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx b/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx index 6ab73f642d4093b263850027a95853fc5e340f3c..fe5bf88b8e83cc027a8669ae8b885403a68bcdc3 100644 --- a/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx +++ b/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx @@ -115,7 +115,7 @@ StatusCode LArRawChannelBuilderAlg::execute_r(const EventContext& ctx) const { if (saturated) prov|=0x0400; if (std::fabs(E)>m_eCutFortQ) { - ATH_MSG_VERBOSE("Channel " << m_onlineId->channel_name(id) << " gain " << gain << " above theshold for tQ computation"); + ATH_MSG_VERBOSE("Channel " << m_onlineId->channel_name(id) << " gain " << gain << " above threshold for tQ computation"); prov|=0x2000; //Get time by applying OFC-b coefficients: @@ -141,6 +141,7 @@ StatusCode LArRawChannelBuilderAlg::execute_r(const EventContext& ctx) const { if (!connected) continue; //No conditions for disconnected channel, who cares? ATH_MSG_ERROR("No valid shape for channel " << m_onlineId->channel_name(id) << " gain " << gain); + ATH_MSG_ERROR("Got size " << fullShape.size() << ", expected at least " << nSamples+firstSample); return StatusCode::FAILURE; } @@ -152,6 +153,7 @@ StatusCode LArRawChannelBuilderAlg::execute_r(const EventContext& ctx) const { if (ATH_UNLIKELY(fullshapeDer.size()<nSamples+firstSample)) { ATH_MSG_ERROR("No valid shape derivative for channel " << m_onlineId->channel_name(id) << " gain " << gain); + ATH_MSG_ERROR("Got size " << fullshapeDer.size() << ", expected at least " << nSamples+firstSample); return StatusCode::FAILURE; } diff --git a/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx b/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx index 1a4aa81cd3c14fd715f5a5dc203623705423b856..1c1cb9e496f918dd22688369680aadb7ede82434 100644 --- a/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx +++ b/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx @@ -221,7 +221,7 @@ StatusCode LArOFCCondAlg::execute() { return StatusCode::FAILURE; } - ATH_MSG_INFO("IOV found from intersection for AutoCorrTotal object: " + ATH_MSG_INFO("IOV found from intersection for LArOFCCondObj object: " << rangeIntersection); // make output object @@ -346,6 +346,10 @@ StatusCode LArOFCCondAlg::execute() { //return (m_OFCtmp); //returns an empty vector } + if (Shape.size()!=ShapeDer.size()) { + ATH_MSG_ERROR("Got invalid shape object: Size=" << Shape.size() << ", DerSize=" << ShapeDer.size()); + return StatusCode::SUCCESS; + } //::::::::::::::::::::::::::::::: unsigned int l,c,i; //::::::::::::::::::::::::::::::: diff --git a/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h b/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h index f5f5eb4f0897fe23f1a67d8132db298c967f9c62..24ff48f0207ceeb73099dccfb07f9442243d693d 100755 --- a/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h +++ b/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h @@ -70,17 +70,6 @@ class LArMCSymTool: public AthAlgTool, virtual public ILArMCSymTool const LArEM_ID* m_lar_em_id; const LArHEC_ID* m_lar_hec_id; const LArFCAL_ID* m_lar_fcal_id; - - // FIXME: mutable - // These are used for memoization. That appears to actually do some good, - // so won't remove these yet; we return the memoized value over half - // the time. This seems to come from LArADC2MeVTool::getADC2MeV, where - // we have an outer loop over ids and an inner loop over gains - // and tools. - mutable HWIdentifier m_hwid; - mutable HWIdentifier m_hwid_sym; - mutable HWIdentifier m_hwid_sym2; - mutable Identifier m_offid; }; diff --git a/LArCalorimeter/LArTools/src/LArMCSymTool.cxx b/LArCalorimeter/LArTools/src/LArMCSymTool.cxx index 50aa8f1137a53472ade839de55a20f24815a0be8..1127fab36db4da62bbd1c75d293c3172bd8e7aac 100755 --- a/LArCalorimeter/LArTools/src/LArMCSymTool.cxx +++ b/LArCalorimeter/LArTools/src/LArMCSymTool.cxx @@ -126,24 +126,18 @@ StatusCode LArMCSymTool::finalize() HWIdentifier LArMCSymTool::symOnline(const HWIdentifier & id) const { - if (id == m_hwid) { - return m_hwid_sym; - } - m_hwid_sym.clear(); + const Identifier offid = m_cablingService->cnvToIdentifier(id); - if (offid.is_valid()) { - m_hwid_sym = symOnline(offid); + if (!offid.is_valid()) { + return HWIdentifier(); } - m_hwid = id; - return m_hwid_sym; + return symOnline(offid); } HWIdentifier LArMCSymTool::symOnline(const Identifier & id) const { - if (id == m_offid) { - return m_hwid_sym2; - } + IdentifierHash idHash; int offset=-1; if(m_lar_em_id->is_lar_em(id)) @@ -163,9 +157,7 @@ HWIdentifier LArMCSymTool::symOnline(const Identifier & id) const } if (offset <0) ATH_MSG_ERROR( "problem offset " << offset ); const unsigned int index = idHash+offset; - m_offid = id; - m_hwid_sym2 = m_listOnline[index]; - return m_hwid_sym2; + return m_listOnline[index]; }