11 #include <ecl/modules/eclFillCellIdMapping/eclFillCellIdMappingModule.h>
13 #include <ecl/dataobjects/ECLCellIdMapping.h>
14 #include <ecl/dataobjects/ECLCalDigit.h>
16 #include <ecl/geometry/ECLNeighbours.h>
17 #include <ecl/geometry/ECLGeometryPar.h>
19 #include <framework/geometry/B2Vector3.h>
36 setDescription(
"Fills a dataobject that provides maping between cell id and store arrays and neighbour maps");
41 m_eclCalDigits.isRequired();
42 m_eclCellIdMapping.registerInDataStore();
58 B2Vector3D vectorPosition = m_geom->GetCrystalPos(idx - 1);
60 m_CellIdToPhi[idx] = vectorPosition.
Phi();
61 m_CellIdToTheta[idx] = vectorPosition.
Theta();
63 m_geom->Mapping(idx - 1);
64 m_CellIdToPhiId[idx] = m_geom->GetPhiID();
65 m_CellIdToThetaId[idx] = m_geom->GetThetaID();
71 if (!m_eclCellIdMapping) {
72 m_eclCellIdMapping.create();
76 m_eclCellIdMapping->setCellIdToNeighbour5(idx, m_NeighbourMap5->getNeighbours(idx));
77 m_eclCellIdMapping->setCellIdToNeighbour7(idx, m_NeighbourMap7->getNeighbours(idx));
78 m_eclCellIdMapping->setCellIdToPhi(idx, m_CellIdToPhi[idx]);
79 m_eclCellIdMapping->setCellIdToTheta(idx, m_CellIdToTheta[idx]);
80 m_eclCellIdMapping->setCellIdToPhiId(idx, m_CellIdToPhiId[idx]);
81 m_eclCellIdMapping->setCellIdToThetaId(idx, m_CellIdToThetaId[idx]);
85 m_eclCellIdMapping->reset();
87 for (
int i = 0; i < m_eclCalDigits.getEntries(); i++) {
88 m_eclCellIdMapping->setCellIdToStoreArray(m_eclCalDigits[i]->getCellId(), i);
94 if (m_NeighbourMap5)
delete m_NeighbourMap5;
95 if (m_NeighbourMap7)
delete m_NeighbourMap7;