Loss of detector ID info in G4THitsMap<G4double>

Hi everyone,
My goal is to calculate neutron spectra in different depths in a water phantom. I am using an array of 8 SDs created by G4Replica, so that each one of them count the number of neutrons in different energy filters (bins). My primitive scorer is G4PSPassageCellFlux3D and I create energy bins by setting filters using G4SDParticleWithEnergyFilter. There are 4 energy bins in total for every detector.

I noticed that when I extract the data in each event using:
G4HCofThisEvent* pHCE = event->GetHCofThisEvent();
I will get 4 HitsCollections corresponding to the 4 energy bins, which makes sense. Then I expect that each HitsCollection contains 8 data points, which are the neutron counts corresponding to my 8 detectors. And I expect that when a detector does not count any neutron I get a zero for that entry. However, as I print the size of the HitsCollection it varies from event to event (with a maximum of 8), which shows that it only is filled with a value when there is a hit, and does not contain 0 for the detectors with no hit at that event.

Therefore, for different events, I get a HitsCollection vector with different number of entries, which makes it meaningless to merge the data for the run, and I lose track of what entry corresponds to what detector.

Is there a way to modify the data structure stored in a G4THitsMap so that it contains 0 when there is no hit?

Sorry for the lengthy post, and thanks in advance for any suggestions.
Best
Nima