diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx index bf136ecd4f196e0ed5093e269be49bab3d86935c..3ab1be2fd49dd4a6b447c869b7c90c6b3f7f372f 100644 --- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx +++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx @@ -125,6 +125,8 @@ StatusCode CaloCellNoiseAlg::initialize() ATH_CHECK( m_noiseToolDB.retrieve() ); + ATH_CHECK( m_cablingKey.initialize()); + ATH_MSG_INFO ( " end of CaloCellNoiseAlg::initialize " ); return StatusCode::SUCCESS; } @@ -393,6 +395,9 @@ StatusCode CaloCellNoiseAlg::readNtuple() //_________________________________________________ StatusCode CaloCellNoiseAlg::fitNoise() { + SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKey}; + const LArOnOffIdMapping* cabling=(*cablingHdl); + ATH_MSG_INFO ( " in CaloCellNoiseAlg::fitNoise() " ); FILE* fp = fopen("calonoise.txt","w"); @@ -513,6 +518,7 @@ StatusCode CaloCellNoiseAlg::fitNoise() for (int icell=0;icell<m_ncell;icell++) { IdentifierHash idHash = icell; Identifier id=m_calo_id->cell_id(idHash); + HWIdentifier hwid=cabling->createSignalChannelID(id); int subCalo; IdentifierHash idSubHash = m_calo_id->subcalo_cell_hash (idHash, subCalo); const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id); @@ -564,9 +570,9 @@ StatusCode CaloCellNoiseAlg::fitNoise() // noise and ADC2MeV in gain ref float noise0=-1.; - if (m_doMC) noise0 = m_dd_noise->noise(id,gainref); + if (m_doMC) noise0 = m_dd_noise->noise(hwid,gainref); else { - float noise = m_dd_pedestal->pedestalRMS(id,gainref); + float noise = m_dd_pedestal->pedestalRMS(hwid,gainref); if (noise>= (1.0+LArElecCalib::ERRORCODE)) noise0 = noise; } const std::vector<float> * @@ -577,13 +583,13 @@ StatusCode CaloCellNoiseAlg::fitNoise() // noise and ADC2MeV in gain float noise1=-1; - if (m_doMC) noise1 = m_dd_noise->noise(id,gain); + if (m_doMC) noise1 = m_dd_noise->noise(hwid,gain); else { - float noise = m_dd_pedestal->pedestalRMS(id,gain); + float noise = m_dd_pedestal->pedestalRMS(hwid,gain); if (noise>= (1.0+LArElecCalib::ERRORCODE)) noise1 = noise; } const std::vector<float> * - polynom_adc2mev1 = &(m_adc2mevTool->ADC2MEV(id,gain)); + polynom_adc2mev1 = &(m_adc2mevTool->ADC2MEV(hwid,gain)); float adc2mev1=-1; if (polynom_adc2mev1->size()>1) adc2mev1=(*polynom_adc2mev1)[1]; diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h index b65e676308fe57e0a4928cf2c3ee8a215a5bd93d..08385163a7f89dbc86889ccca1c5d50c5c8a806e 100644 --- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h +++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h @@ -28,6 +28,10 @@ #include "GaudiKernel/ITHistSvc.h" #include "TTree.h" +#include "StoreGate/ReadCondHandleKey.h" +#include "LArCabling/LArOnOffIdMapping.h" + + class CaloCellNoiseAlg : public AthAlgorithm { public: //Gaudi style constructor and execution methods @@ -110,6 +114,7 @@ std::string m_triggerChainProp; FloatArrayProperty m_cuts; ToolHandle<ICaloNoiseTool> m_noiseToolDB; + SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}; std::string m_lumiFolderName; int m_addlumiblock; float m_deltaLumi;