49 return StatusCode::SUCCESS;
63 auto outputContainer = std::make_unique<TileDigitsContainer>(
false,
SG::VIEW_ELEMENTS);
64 outputContainer->set_unit(inputContainer->
get_unit());
65 outputContainer->set_type(inputContainer->
get_type());
66 outputContainer->set_bsflags(inputContainer->
get_bsflags());
72 for (; collIt != collEnd; ++collIt) {
75 memset(digits, 0,
sizeof(digits));
77 for (
const TileDigits* tile_digits : *digitsCollection) {
86 uint32_t lvl1Id = digitsCollection->getLvl1Id();
87 uint32_t lvl1Type = digitsCollection->getLvl1Type();
88 uint32_t detEvType = digitsCollection->getDetEvType();
89 uint32_t rodBCID = digitsCollection->getRODBCID();
91 const std::vector<uint32_t>& fragChipCRCWords = digitsCollection->getFragChipCRCWords();
92 const std::vector<uint32_t>& fragChipCRCWordsHigh = digitsCollection->getFragChipCRCWordsHigh();
93 const std::vector<uint32_t>& fragChipHeaderWords = digitsCollection->getFragChipHeaderWords();
94 const std::vector<uint32_t>& fragChipHeaderWordsHigh = digitsCollection->getFragChipHeaderWordsHigh();
95 const std::vector<uint32_t>& fragExtraWords = digitsCollection->getFragExtraWords();
97 uint32_t fragSize = digitsCollection->getFragSize();
98 uint32_t fragBCID = digitsCollection->getFragBCID();
100 auto outColl = std::make_unique<ConstDataVector<TileDigitsCollection> > (
SG::VIEW_ELEMENTS, digitsCollection->identify(),
101 lvl1Id, lvl1Type, detEvType, rodBCID,
102 fragChipCRCWords, fragChipCRCWordsHigh,
103 fragChipHeaderWords, fragChipHeaderWordsHigh,
104 fragExtraWords, fragSize, fragBCID);
112 if (hiGainDigits && loGainDigits) {
113 const std::vector<float> digits = hiGainDigits->
samples();
114 auto minMaxDigits = std::minmax_element(digits.begin(), digits.end());
115 float maxDigit = *minMaxDigits.second;
119 outColl->push_back(hiGainDigits);
123 outColl->push_back(loGainDigits);
125 }
else if (loGainDigits) {
126 ATH_MSG_VERBOSE(
"Save LG (only available): " << (std::string) *loGainDigits);
127 outColl->push_back(loGainDigits);
128 }
else if (hiGainDigits) {
129 ATH_MSG_VERBOSE(
"Save HG (only available): " << (std::string) *hiGainDigits);
130 outColl->push_back(hiGainDigits);
134 ATH_CHECK( outputContainer->addCollection (outColl.release()->asDataVector(), collIt.
hashId()) );
140 return StatusCode::SUCCESS;
148 return StatusCode::SUCCESS;