tardis.transport.montecarlo.packets.trackers package

Submodules

Module contents

Packet tracking module for TARDIS Monte Carlo transport.

This subpackage contains classes and functions for tracking packet interactions and collecting tracking data from multiple packets.

class tardis.transport.montecarlo.packets.trackers.TrackerFull(*args, **kwargs)[source]

Bases: TrackerFull

Numba JITCLASS for storing interaction information for RPacket instances.

Tracks all packet events with before/after shell IDs and interaction data.

Parameters:
lengthint

Initial length of tracking arrays.

Attributes:
rnb.float64[:]

Radius of the RPacket at each event.

shell_idnb.int64[:]

Shell ID where the RPacket is located at each event.

before_shell_idnb.int64[:]

Shell ID before each event (same as shell_id except for boundary events).

after_shell_idnb.int64[:]

Shell ID after each event (same as shell_id except for boundary events).

interaction_typenb.int64[:]

Type of interaction undergone by the RPacket at each event.

statusnb.int64[:]

Status of the RPacket at each event.

before_nunb.float64[:]

Frequency before each interaction.

before_munb.float64[:]

Cosine of angle before each interaction.

before_energynb.float64[:]

Energy before each interaction.

after_nunb.float64[:]

Frequency after each interaction.

after_munb.float64[:]

Cosine of angle after each interaction.

after_energynb.float64[:]

Energy after each interaction.

line_absorb_idnb.int64[:]

Line ID for absorbed line interactions.

line_emit_idnb.int64[:]

Line ID for emitted line interactions.

event_idnb.int64

Current event counter.

extend_factornb.int64

Factor by which to extend arrays when capacity is reached.

Initialize the RPacketTracker with arrays for tracking packet events.

Parameters:
lengthint

Initial length of the tracking arrays.

class_type = jitclass.TrackerFull#7fe3f7c0ec50<radius:array(float64, 1d, A),before_shell_id:array(int64, 1d, A),after_shell_id:array(int64, 1d, A),interaction_type:array(int64, 1d, A),status:array(int64, 1d, A),before_nu:array(float64, 1d, A),before_mu:array(float64, 1d, A),before_energy:array(float64, 1d, A),after_nu:array(float64, 1d, A),after_mu:array(float64, 1d, A),after_energy:array(float64, 1d, A),line_absorb_id:array(int64, 1d, A),line_emit_id:array(int64, 1d, A),event_id:int64,extend_factor:int64>
class tardis.transport.montecarlo.packets.trackers.TrackerFullSolver(initial_length: int = 1000, extend_factor: int = 2)[source]

Bases: object

Solver for TrackerFull. Holds configuration and generates tracker states.

create_tracker_state(num_packets: int) TrackerFullState[source]
process_tracker_state(tracker_state: TrackerFullState) None[source]

Process a completed tracker state and add DataFrames to it. Removes the tracker list after processing.

class tardis.transport.montecarlo.packets.trackers.TrackerFullState(trackers: list, full_df: DataFrame | None = None, last_interaction_df: DataFrame | None = None, has_tracked: bool = False)[source]

Bases: object

Holds a list of TrackerFull instances and DataFrames.

full_df: DataFrame | None = None
has_tracked: bool = False
last_interaction_df: DataFrame | None = None
trackers: list
class tardis.transport.montecarlo.packets.trackers.TrackerLastInteraction(*args, **kwargs)[source]

Bases: TrackerLastInteraction

Initialize properties with default values. Float values are initialized with NaN for better data quality tracking.

class_type = jitclass.TrackerLastInteraction#7fe3fd45be30<r:float64,nu:float64,mu:float64,energy:float64,shell_id:int64,interaction_type:int64,before_nu:float64,before_mu:float64,before_energy:float64,after_nu:float64,after_mu:float64,after_energy:float64,interaction_line_absorb_id:int64,interaction_line_emit_id:int64,interactions_count:int64>
interactions_count: int64

Numba JITCLASS for storing the last interaction the RPacket undergoes, with unified tracking for all interaction types.

Parameters:
rfloat

Radius of the shell where the RPacket is present

nufloat

Frequency of the RPacket

energyfloat

Energy possessed by the RPacket

shell_idint

Current Shell No in which the last interaction happened

interaction_type: int

Type of interaction the rpacket undergoes

interaction_before_*float

Properties before interaction (nu, mu, energy)

interaction_after_*float

Properties after interaction (nu, mu, energy)

interaction_line_absorb_idint

Line ID for absorbed line interactions (-1 for non-line interactions)

interaction_line_emit_idint

Line ID for emitted line interactions (-1 for non-line interactions)

interactions_countint

Count of interactions

tardis.transport.montecarlo.packets.trackers.generate_tracker_full_list(no_of_packets: int, length: int, extend_factor: int = 2) list[source]

Generate list of RPacketTracker instances.

Parameters:
no_of_packetsint

The count of RPackets that are sent in the ejecta.

lengthint

Initial length of the tracking array.

Returns:
list

A list containing RPacketTracker for each RPacket.

tardis.transport.montecarlo.packets.trackers.generate_tracker_last_interaction_list(no_of_packets)[source]
Parameters:
no_of_packetsThe count of RPackets that are sent in the ejecta
Returns:
A list containing RPacketLastInteractionTracker for each RPacket
tardis.transport.montecarlo.packets.trackers.tracker_full_df2tracker_last_interaction_df(full_df: DataFrame) DataFrame[source]

Convert a full tracking dataframe to show only the last interaction for each packet.

Takes a full event tracking dataframe (from trackers_full_to_dataframe) and filters it to show only the last physics interaction each packet experienced.

Parameters:
full_dfpd.DataFrame

Full event tracking dataframe with multi-index (packet_id, event_id) and columns [‘radius’, ‘before_shell_id’, ‘after_shell_id’, ‘interaction_type’].

Returns:
pd.DataFrame

DataFrame containing last interaction data for each packet, indexed by packet_id with columns [‘radius’, ‘shell_id’, ‘last_interaction_type’, ‘line_absorb_id’, ‘line_emit_id’, ‘before_nu’, ‘before_mu’, ‘before_energy’, ‘after_nu’, ‘after_mu’, ‘after_energy’]. Note: shell_id comes from before_shell_id.

tardis.transport.montecarlo.packets.trackers.trackers_full_list_to_arrays(trackers) tuple[source]

Convert a list of TrackerFull instances to concatenated arrays efficiently.

Parameters:
trackersnumba.typed.typedlist.List

List of TrackerFull instances.

Returns:
tuple

Tuple containing: - packet_id (np.int64[:]) : Packet ID for each event - event_id (np.int64[:]) : Event ID within each packet - r (np.float64[:]) : Radius at each event - before_shell_id (np.int64[:]) : Shell ID before each event - after_shell_id (np.int64[:]) : Shell ID after each event - interaction_type (np.int64[:]) : Interaction type at each event - status (np.int64[:]) : Status at each event - before_nu (np.float64[:]) : Frequency before interaction - before_mu (np.float64[:]) : Mu before interaction - before_energy (np.float64[:]) : Energy before interaction - after_nu (np.float64[:]) : Frequency after interaction - after_mu (np.float64[:]) : Mu after interaction - after_energy (np.float64[:]) : Energy after interaction - line_absorb_id (np.int64[:]) : Line absorb ID - line_emit_id (np.int64[:]) : Line emit ID

tardis.transport.montecarlo.packets.trackers.trackers_full_to_df(trackers_full_list) DataFrame[source]

Convert a list of RPacketTracker instances to a comprehensive DataFrame.

Parameters:
rpacket_trackersnumba.typed.typedlist.List

List of RPacketTracker instances.

Returns:
pd.DataFrame

DataFrame containing all event data including line interaction details, indexed by packet_id and event_id. Line interaction columns have default values (-1 for IDs, NaN for physical quantities) for non-interaction events.

tardis.transport.montecarlo.packets.trackers.trackers_last_interaction_to_df(tracker_list)[source]

Convert a list of RPacketLastInteractionTracker instances to a DataFrame.

This function extracts the last interaction data from each tracker and creates a pandas DataFrame with the same structure as tracker_full_df2tracker_last_interaction_df.

Parameters:
tracker_listlist

List of RPacketLastInteractionTracker instances

Returns:
pd.DataFrame

DataFrame containing last interaction data with columns matching tracker_full_df2tracker_last_interaction_df output: - last_interaction_type: Type of the last interaction (categorical) - status: Packet status (categorical) - radius: Radius at interaction (NaN for last interaction trackers) - shell_id: Shell ID where interaction occurred (-1 for last interaction trackers) - before_nu: Frequency before interaction - before_mu: Direction cosine before interaction - before_energy: Energy before interaction - after_nu: Frequency after interaction - after_mu: Direction cosine after interaction - after_energy: Energy after interaction

  • line_absorb_id: Line ID for absorbed line interactions (-1 for non-line)

  • line_emit_id: Line ID for emitted line interactions (-1 for non-line)