tardis.transport.montecarlo.packets.trackers package¶
Submodules¶
- tardis.transport.montecarlo.packets.trackers.array_utils module
- tardis.transport.montecarlo.packets.trackers.tracker_full module
TrackerFullTrackerFull.after_energyTrackerFull.after_muTrackerFull.after_nuTrackerFull.after_shell_idTrackerFull.before_energyTrackerFull.before_muTrackerFull.before_nuTrackerFull.before_shell_idTrackerFull.class_typeTrackerFull.event_idTrackerFull.extend_factorTrackerFull.interaction_typeTrackerFull.line_absorb_idTrackerFull.line_emit_idTrackerFull.radiusTrackerFull.status
- tardis.transport.montecarlo.packets.trackers.tracker_full_solver module
- tardis.transport.montecarlo.packets.trackers.tracker_full_util module
- tardis.transport.montecarlo.packets.trackers.tracker_last_interaction module
TrackerLastInteractionTrackerLastInteraction.after_energyTrackerLastInteraction.after_muTrackerLastInteraction.after_nuTrackerLastInteraction.before_energyTrackerLastInteraction.before_muTrackerLastInteraction.before_nuTrackerLastInteraction.class_typeTrackerLastInteraction.energyTrackerLastInteraction.interaction_line_absorb_idTrackerLastInteraction.interaction_line_emit_idTrackerLastInteraction.interaction_typeTrackerLastInteraction.interactions_countTrackerLastInteraction.muTrackerLastInteraction.nuTrackerLastInteraction.rTrackerLastInteraction.shell_id
- tardis.transport.montecarlo.packets.trackers.tracker_last_interaction_util module
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:
TrackerFullNumba 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:
objectSolver 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:
objectHolds a list of TrackerFull instances and DataFrames.
- class tardis.transport.montecarlo.packets.trackers.TrackerLastInteraction(*args, **kwargs)[source]¶
Bases:
TrackerLastInteractionInitialize 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)