diff --git a/LArCalorimeter/LArROD/src/LArRawChannelBuilderSCAlg.cxx b/LArCalorimeter/LArROD/src/LArRawChannelBuilderSCAlg.cxx index a3d6643e16be96b9deec3e47db4551cc41381457..4f48dc208d60aba5558f5e5ce6b13f8d79e84434 100644 --- a/LArCalorimeter/LArROD/src/LArRawChannelBuilderSCAlg.cxx +++ b/LArCalorimeter/LArROD/src/LArRawChannelBuilderSCAlg.cxx @@ -236,8 +236,6 @@ StatusCode LArRawChannelBuilderSCAlg::execute(const EventContext& ctx) const { const CaloDetDescrElement* dde = caloMgr->get_element (offId); ss->setCaloDDE(dde); - ss->setEnergy(E); - ss->setTime(tau); ss->setGain((CaloGain::CaloGain)0); float et = ss->et()*1e-3; // et in GeV // for super-cells provenance and time are slightly different @@ -245,12 +243,21 @@ StatusCode LArRawChannelBuilderSCAlg::execute(const EventContext& ctx) const { if(et>10e3 && tau>-8 && tau<16) prov |= LArProv::SCTIMEPASS; //0x200; else if(et<=10e3 && std::fabs(tau)<8) prov |= LArProv::SCTIMEPASS; //0x200; if ( passBCIDmax ) prov |= LArProv::SCPASSBCIDMAX; //0x40; + // set some provenance to indicate bad channel if(badchannel) { LArBadChannel bc = badchannel->offlineStatus(offId); if ( !bc.good() && bc.statusBad(LArBadChannel::LArBadChannelSCEnum::maskedOSUMBit) ){ prov |= 0x80; + ss->setEnergy(0.); + ss->setTime(0.); + } else { + ss->setEnergy(E); + ss->setTime(tau); } + } else { + ss->setEnergy(E); + ss->setTime(tau); } ss->setProvenance(prov);