68 return StatusCode::FAILURE;
74 auto selectedCaliWaveContainer = std::make_unique<LArCaliWaveContainer>();
76 CHECK( selectedCaliWaveContainer->initialize());
78 std::vector<std::string>::const_iterator key_it =
m_keyList.begin();
79 std::vector<std::string>::const_iterator key_it_e =
m_keyList.end();
81 for (;key_it!=key_it_e; ++key_it) {
83 StatusCode
sc =
detStore()->retrieve(larCaliWaveContainer,*key_it);
85 ATH_MSG_WARNING (
"No LArCaliWaveContainer in StoreGate with key = " << *key_it );
88 ATH_MSG_INFO (
"Reading LArCaliWaveContainer with key = " << *key_it );
93 if(!( (0x1<<gain) &
m_gmask) )
continue;
98 if ( cali_it == cali_it_e ) {
99 ATH_MSG_DEBUG (
"No wave with gain = " << gain <<
" in container with key = " << *key_it );
104 for ( ; cali_it != cali_it_e; ++cali_it) {
108 if ( wave_it == wave_it_e ) {
114 Identifier cell_id = cabling->cnvToIdentifier(chid);
115 if(
m_cellID->is_em_barrel(cell_id)){ det = 0;
116 }
else if(
m_cellID->is_em_endcap(cell_id)) { det = 1;
117 }
else if(
m_cellID->is_hec(cell_id)) { det = 2;
118 }
else if(
m_cellID->is_fcal(cell_id)) { det = 3;
124 DetGain dg = std::make_pair( std::make_pair(det,lay), gain);
127 for ( ; wave_it != wave_it_e; ++wave_it) {
128 if(wave_it->getDAC() ==
m_mapDAC[dg]) {
129 (selectedCaliWaveContainer->get(chid,gain)).push_back(*wave_it);
138 return StatusCode::SUCCESS;
143 int det,lay,gain,DAC;
147 if( std::string::npos == det_delimiter ){
152 if(det_string==
"EMB") {
154 }
else if (det_string ==
"EMEC") {
156 }
else if (det_string ==
"HEC") {
158 }
else if (det_string ==
"FCAL") {
161 ATH_MSG_WARNING (
"Bad detector substring: " << det_string <<
" skipped ... " );
165 lay = atoi(
m_selectionList[i].substr(det_delimiter+1, lay_delimiter).c_str());
166 if(lay < 0 || lay > 3) {
171 gain = atoi(
m_selectionList[i].substr(lay_delimiter+1, gain_delimiter).c_str());
172 if(gain < 0 || gain > 2) {
177 if(DAC < 0 || DAC > 65000) {
183 m_mapDAC[std::make_pair( std::make_pair(det,lay), gain)] = DAC;