Skip to content

Commit 2346070

Browse files
authored
Merge pull request #183 from DUNE/feature_backtracking_eventid
add true event_id to backtracking information
2 parents d400071 + 01c1e84 commit 2346070

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

larndsim/fee.py

+24-11
Original file line numberDiff line numberDiff line change
@@ -162,18 +162,21 @@ def export_to_hdf5(event_id_list,
162162
io_groups = np.unique(np.array(list(detector.MODULE_TO_IO_GROUPS.values())))
163163
io_groups = io_groups if i_mod < 0 else io_groups[(i_mod-1)*2: i_mod*2]
164164
packets = []
165-
packets_mc = []
165+
packets_mc_evt = []
166+
packets_mc_trk = []
166167
packets_frac = []
167168

168169
if is_first_batch:
169170
for io_group in io_groups:
170171
packets.append(TimestampPacket(timestamp=0))
171172
packets[-1].chip_key = Key(io_group,0,0)
172-
packets_mc.append([-1] * track_ids.shape[1])
173+
packets_mc_evt.append([-1])
174+
packets_mc_trk.append([-1] * track_ids.shape[1])
173175
packets_frac.append([0] * current_fractions.shape[2])
174176

175177
packets.append(SyncPacket(sync_type=b'S', timestamp=0, io_group=io_group))
176-
packets_mc.append([-1] * track_ids.shape[1])
178+
packets_mc_evt.append([-1])
179+
packets_mc_trk.append([-1] * track_ids.shape[1])
177180
packets_frac.append([0] * current_fractions.shape[2])
178181

179182
packets_mc_ds = []
@@ -221,7 +224,8 @@ def export_to_hdf5(event_id_list,
221224
for io_group in io_groups:
222225
packets.append(SyncPacket(sync_type=b'S',
223226
timestamp=CLOCK_RESET_PERIOD-1, io_group=io_group))
224-
packets_mc.append([-1] * track_ids.shape[1])
227+
packets_mc_evt.append([-1])
228+
packets_mc_trk.append([-1] * track_ids.shape[1])
225229
packets_frac.append([0] * current_fractions.shape[2])
226230
event_start_time_list[itick:] -= CLOCK_RESET_PERIOD
227231
else:
@@ -238,7 +242,8 @@ def export_to_hdf5(event_id_list,
238242
for io_group in io_groups:
239243
packets.append(TimestampPacket(timestamp=event_start_times[unique_events_inv[itick]] * units.mus / units.s))
240244
packets[-1].chip_key = Key(io_group,0,0)
241-
packets_mc.append([-1] * track_ids.shape[1])
245+
packets_mc_evt.append([-1])
246+
packets_mc_trk.append([-1] * track_ids.shape[1])
242247
packets_frac.append([0] * current_fractions.shape[2])
243248

244249
trig_mask = light_trigger_event_id == event
@@ -248,7 +253,8 @@ def export_to_hdf5(event_id_list,
248253
if light.LIGHT_TRIG_MODE == 0:
249254
for io_group in detector.MODULE_TO_IO_GROUPS[int(module_trig)]:
250255
packets.append(TriggerPacket(io_group=io_group, trigger_type=b'\x02', timestamp=t_trig))
251-
packets_mc.append([-1] * track_ids.shape[1])
256+
packets_mc_evt.append([-1])
257+
packets_mc_trk.append([-1] * track_ids.shape[1])
252258
packets_frac.append([0] * current_fractions.shape[2])
253259
# redundant here
254260
elif light.LIGHT_TRIG_MODE == 1:
@@ -257,7 +263,8 @@ def export_to_hdf5(event_id_list,
257263
elif module_trig == 0: #threshold trigger
258264
io_group = THRES_TRIG_IO
259265
packets.append(TriggerPacket(io_group=io_group, trigger_type=b'\x02', timestamp=t_trig))
260-
packets_mc.append([-1] * track_ids.shape[1])
266+
packets_mc_evt.append([-1])
267+
packets_mc_trk.append([-1] * track_ids.shape[1])
261268
packets_frac.append([0] * current_fractions.shape[2])
262269
last_event = event
263270

@@ -297,7 +304,8 @@ def export_to_hdf5(event_id_list,
297304
p.first_packet = 1
298305
p.assign_parity()
299306

300-
packets_mc.append(track_ids[itick])
307+
packets_mc_evt.append([event])
308+
packets_mc_trk.append(track_ids[itick])
301309
packets_frac.append(current_fractions[itick][iadc])
302310
packets.append(p)
303311
else:
@@ -307,16 +315,18 @@ def export_to_hdf5(event_id_list,
307315
packet_list = PacketCollection(packets, read_id=0, message='')
308316
hdf5format.to_file(filename, packet_list, workers=1)
309317

310-
dtype = np.dtype([('segment_ids',f'({ASSOCIATION_COUNT_TO_STORE},)i8'),
318+
dtype = np.dtype([('event_ids',f'(1,)i8'),
319+
('segment_ids',f'({ASSOCIATION_COUNT_TO_STORE},)i8'),
311320
('fraction', f'({ASSOCIATION_COUNT_TO_STORE},)f8')])
312321
packets_mc_ds = np.empty(len(packets), dtype=dtype)
313322

314323
# First, sort the back-tracking information by the magnitude of the fraction
315324
packets_frac = np.array(packets_frac)
316-
packets_mc = np.array(packets_mc)
325+
packets_mc_trk = np.array(packets_mc_trk)
326+
packets_mc_evt = np.array(packets_mc_evt)
317327

318328
frac_order = np.flip(np.argsort(np.abs(packets_frac),axis=1),axis=1)
319-
ass_track_ids = np.take_along_axis(packets_mc, frac_order, axis=1)
329+
ass_track_ids = np.take_along_axis(packets_mc_trk, frac_order, axis=1)
320330
ass_fractions = np.take_along_axis(packets_frac, frac_order, axis=1)
321331

322332
# Second, only store the relevant portion.
@@ -333,6 +343,9 @@ def export_to_hdf5(event_id_list,
333343
pad_width=((0,0),(0,num_to_pad)),
334344
mode='constant',
335345
constant_values=0.)
346+
packets_mc_ds['event_ids'] = packets_mc_evt
347+
print("packets_mc_ds['event_ids']: ",packets_mc_ds['event_ids'])
348+
print("packets_mc_ds['event_ids'].shape: ", packets_mc_ds['event_ids'].shape)
336349

337350
with h5py.File(filename, 'a') as f:
338351
if "mc_packets_assn" not in f.keys():

0 commit comments

Comments
 (0)