138 bool tileThresh =
m_tileInfo->TileZeroSuppress();
142 float ttL1Calib, ttL1NoiseSigma, ttL1Ped, ttL1Thresh;
146 <<
", tileNoise=" << ((tileNoise) ?
"true" :
"false")
147 <<
", tileThresh=" << ((tileThresh) ?
"true" :
"false") );
154 ATH_CHECK( rawChannelContainer.isValid() );
160 ATH_CHECK( ttl1Container.
record(std::make_unique<TileTTL1Container>()) );
168 bool ttRawChannel[16];
173 int nRawChannelTot = 0;
176 float ttAmpTotIg = 0.;
177 int minieta, maxieta, posneg;
180 std::vector<float> ttL1samples(
m_nSamp);
213 posneg = minieta = maxieta = 0;
217 memset(ttAmp, 0,
sizeof(ttAmp));
218 memset(ttRawChannel, 0,
sizeof(ttRawChannel));
219 nTT = nIgnore = nRawChannel = 0;
232 rawChannel->amplitude(),
255 <<
"id=" <<
m_tileID->to_string(pmt_id) );
257 if (ttRawChannel[ieta]) {
261 ttRawChannel[ieta] =
true;
263 if (ieta >= minieta && ieta <= maxieta)
267 if (ieta < minieta || ieta > maxieta)
270 if (ieta >= minieta && ieta <= maxieta) {
276 if (
msgLvl(MSG::VERBOSE)) {
279 int tower =
m_tileID->tower(pmt_id);
280 int sample =
m_tileID->sample(pmt_id);
283 msg(MSG::VERBOSE) <<
"New RawChannel:"
285 <<
", drawer=" << drawer
286 <<
", ch=" << channel
288 <<
", tower=" << tower
289 <<
", sample=" << sample
295 if (ieta >= minieta && ieta <= maxieta)
298 msg(MSG::VERBOSE) <<
" Outside limits" <<
endmsg;
308 nRawChannelTot += nRawChannel;
309 nIgnoreTot += nIgnore;
313 <<
", drawer=" << drawer
314 <<
"; posneg=" << posneg
315 <<
", minieta=" << minieta
316 <<
", maxieta=" << maxieta
318 <<
", nRawChannel=" << nRawChannel
319 <<
", nIgnore=" << nIgnore );
325 for (
int ieta = minieta; ieta <= maxieta; ++ieta) {
327 bool Good = ttRawChannel[ieta];
331 if (!ttRawChannel[ieta])
332 ttId[ieta] =
m_TT_ID->tower_id(posneg, 1, 0, ieta, drawer);
334 ttL1NoiseSigma =
m_tileInfo->TTL1NoiseSigma(ttId[ieta]);
335 ttL1Thresh =
m_tileInfo->TTL1Thresh(ttId[ieta]);
337 ttL1Calib =
m_tileInfo->TTL1Calib(ttId[ieta]);
338 ttAmp[ieta] *= ttL1Calib;
348 CLHEP::RandGauss::shootArray(
m_nSamp, Rndm);
349 for (
int jsamp = 0; jsamp <
m_nSamp; ++jsamp) {
350 ttL1samples[jsamp] = ttAmp[ieta] *
m_TTL1Shape[jsamp] + ttL1Ped;
352 ttL1samples[jsamp] += ttL1NoiseSigma * Rndm[jsamp];
355 if (ttL1samples[
m_iTrig] - ttL1Ped < ttL1Thresh)
365 <<
", rawChannelTrue=" << ttRawChannel[ieta]
367 <<
", amp0=" << ttAmp[ieta]
368 <<
", digitIn=" << ttL1samples[
m_iTrig] );
389 ttl1Container->push_back(std::make_unique<TileTTL1>(ttId[ieta], ttL1samples));
395 ATH_MSG_DEBUG(
"TileRawChannelToTTL1 execution completed." );
397 <<
" nRawChannelTot=" << nRawChannelTot
398 <<
" nIgnoreTot=" << nIgnoreTot
399 <<
" ttAmpTot=" << ttAmpTot
400 <<
" ttAmpTotIg=" << ttAmpTotIg
401 <<
" =>eneTot=" << ttAmpTot + ttAmpTotIg );
403 return StatusCode::SUCCESS;