56 std::vector<int> badChan;
57 int channel{},
module{};
63 for (
int gain = 0 ; gain < 3 ; gain++ ){
66 for (
int i=0; i<3; i++){
67 avg[i] = 0.; numChan[i] = 0;
72 chid = it.channelId();
73 module = LArRampFCalCorr::toMod(slot);
74 if (it->m_vRamp.size() != 2 || !
m_onlineHelper->isFCALchannel(chid)
75 || module == -1)
continue;
79 if (it->m_vRamp[1] >
m_threshold*std::pow(10.0,(
int)gain)){
80 ATH_MSG_DEBUG (
"Bad chan: slot" << slot <<
" chan: " << channel
81 <<
" amp " << it->m_vRamp[1] );
82 badChan.push_back(channel);
88 chid = it.channelId();
89 module = LArRampFCalCorr::toMod(slot);
90 if (it->m_vRamp.size() != 2 || !
m_onlineHelper->isFCALchannel(chid)
91 || module == -1)
continue;
94 if (std::find(badChan.begin(), badChan.end(), channel)==badChan.end()){
95 avg[module] += 1.0 / it->m_vRamp[1];
100 for (
int i=0; i<3; i++)
101 if (numChan[i] != 0 && avg[i] != 0.0)
102 avg[i] /= numChan[i];
106 ATH_MSG_DEBUG (
"Averages modules 1: " << avg[0] <<
" 2: " << avg[1]
107 <<
" 3: " << avg[2] );
108 ATH_MSG_DEBUG (
"NumChan modules 1: " << numChan[0] <<
" 2: " << numChan[1]
109 <<
" 3: " << numChan[2] );
113 chid = it.channelId();
114 module = LArRampFCalCorr::toMod(slot);
115 if (it->m_vRamp.size() == 2 &&
m_onlineHelper->isFCALchannel(chid) && module != -1){
120 if (std::find(badChan.begin(), badChan.end(), channel)==badChan.end())
121 rampP.
m_vRamp[1] *= avg[module];
125 rampP.
m_vRamp[1] *= 1.027 * avg[module];
128 <<
" Slot " << slot <<
" Chan " << channel
129 <<
" No normalization applied." );
135 return StatusCode::SUCCESS;