9 const std::string& name,
10 const IInterface* parent):
11 base_class(
type, name, parent){
17 return StatusCode::SUCCESS;
22 const EventContext& ctx)
const {
26 CHECK(h_caloClusters.isValid());
28 auto dvec = *h_caloClusters;
29 ATH_MSG_DEBUG(
"number of retrieved clusters: " << dvec.size());
32 CHECK(detStore()->retrieve (calocell_id,
"CaloCell_ID"));
35 auto EMB1_sel = [&calocell_id](
const CaloCell* cell) {
38 CaloCell_Base_ID::EMB1;
44 for(
const auto cl : dvec){
45 const auto *cell_links = cl->getCellLinks();
48 return StatusCode::FAILURE;
50 ATH_MSG_DEBUG(
"Number of cells from cell_links " << cell_links->size());
54 auto c_iter = cell_links->begin();
55 auto c_end = cell_links->end();
57 std::vector<const CaloCell*> cluster_cells;
60 std::back_inserter(cluster_cells),
66 if (cluster_cells.size() > 1) {
67 cells.push_back(std::move(cluster_cells));
71 return StatusCode::SUCCESS;
#define CHECK(...)
Evaluate an expression and check for errors.
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
Helper class for offline cell identifiers.
Data object for each calorimeter readout cell.
virtual StatusCode initialize() override
EMB1CellsFromCaloClusters(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode cells(std::vector< std::vector< const CaloCell * > > &, const EventContext &) const override
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_caloClustersKey
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Functions to prefetch blocks of memory.