Hi,
I would like to make a population heatmap across the volume of interest. I am able to record coordinates of the events in question in a ntuple but the sparse data set is difficult to plot as a function of the volume where the events in question take place.
Do you have a recommendation on how to do this? For instance perhaps resampling the volume into binned coordinates and recording against that perhaps in the way to score mesh works?
Else is there a way to add a custom sensitive detector to the /score/mesh functionality?
Many thanks
Your setup is not very clear. The general strategy is to either 1) Record (x, y, z) of all interactions of interest in a single detector volume giving you arbitrary freedom to voxelize the space in postprocessing analysis or 2) Voxelize/Pixelize the detector into discrete units and merely record the copy ID instead of the (x, y, z). You generally only do the second if it makes physical sense (segmented crystal readouts, for example).
If the data set is sparse than it merely means you need to run a longer simulation or be clever in utilizing CPU time effectively.
I don’t currently have an issue with cpu utilization. I am getting the data I need in xyz, but the nature of the question was perhaps not quite so clear.
I am asking if subsequently I want to bin this data over the volume that generates it as the scoringmanager does, how would I go about it? Perhaps I would need to obtain a point cloud of the coordinates of the volume?
You can observe how the scorers work by going into the relevant classes.
Here for example is the base class for volume deposit scoring. Fine, large volume scorers tend to consume a lot of memory. You can achieve roughly the same functionality by just voxeling the larger detector volume and keeping track of copy IDs.