42 auto outputCells = std::make_unique<CaloConstCellContainer>();
44 std::map<HWIdentifier,std::vector<uint16_t> > cells_idx_per_feb;
45 std::map<HWIdentifier,uint16_t > maxcell_idx_per_feb;
46 constexpr uint16_t maxidx = 129;
47 for(uint32_t i=0;i<n_febs;i++){
49 maxcell_idx_per_feb[feb_id]=maxidx;
54 for (
auto const* cell : *inputCellHandle) {
55 if (!cell->caloDDE()->is_tile() ){
57 float noiseSigma = noiseCDO->
getNoise(cellID,cell->gain());
59 HWIdentifier hwid = (*onoff)->createSignalChannelIDFromHash(offhashid);
63 cells_idx_per_feb[hwid_feb].push_back(channel);
71 for(uint32_t i=0;i<n_febs;i++){
73 std::vector<uint16_t>& indexes = cells_idx_per_feb[hwid_feb];
81 for (
auto const* cell : *inputCellHandle) {
82 if (cell->caloDDE()->is_tile() ){
83 std::unique_ptr<CaloCell> copy = cell->clone();
84 outputCells->push_back(std::move(copy));
87 float noiseSigma = noiseCDO->
getNoise(cellID,cell->gain());
89 HWIdentifier hwid = (*onoff)->createSignalChannelIDFromHash(offhashid);
93 if ( (cell->energy() >
m_NumberOfSigma*noiseSigma) && (channel <= maxcell_idx_per_feb[hwid_feb]) ) {
94 std::unique_ptr<CaloCell> copy = cell->clone();
95 outputCells->push_back(std::move(copy));
101 if (inputCellHandle->hasCalo(
id))
102 outputCells->setHasCalo(
id);
104 outputCells->updateCaloIterators();
108 return StatusCode::SUCCESS;