JetAnalysis

class JetAnalysis.JetAnalysis[source]

This class analyzes simulation output using the fastjet python package.

Notes

The columns of the output file include the following quantities:

Quantity

Description

index

Index of the particle in the jet. Index 0 is always the jet itself, all higher values are the associated particles of the jet.

\(p_{\mathrm{T}}\)

Transverse momentum of the jet / associated particle.

\(\eta\)

Pseudorapidity of the jet / associated particle.

\(\varphi\)

Azimuth of the jet / associated particle.

status flag

Always set to 10.

jet pid

Always set to 10.

energy

Energy of the jet / associated particle.

event index

Index of the event in the input hadron data.

Examples

First import your hadron data and maybe perform some cuts:

1>>> from Jetscape import Jetscape
2>>> from JetAnalysis import JetAnalysis
3>>>
4>>> JETSCAPE_FILE_PATH = [Jetscape_directory]/particle_lists.dat
5>>>
6>>> # Jetscape object containing all events
7>>> hadron_data_set = Jetscape(JETSCAPE_FILE_PATH)
8>>> hadron_data = hadron_data_set.charged_particles().particle_objects_list()

Then you can perform the jet analysis:

1>>> JET_ANALYSIS_OUTPUT_PATH = [Jetscape_directory]/jet_analysis.dat
2>>>
3>>> # Create an instance of the JetAnalysis class
4>>> jet_analysis = JetAnalysis()
5>>>
6>>> # Perform the jet analysis
7>>> jet_analysis.perform_jet_finding(hadron_data, jet_R=0.4, jet_eta_range=(-2., 2.), jet_pt_range=(10., None), output_filename=JET_ANALYSIS_OUTPUT_PATH)

If you want to analyze the jets further, you have to read in the jet data from the file like:

 1>>> # Create an instance of the JetAnalysis class
 2>>> jet_analysis = JetAnalysis()
 3>>>
 4>>> # Read the jets from file
 5>>> jet_analysis.read_jet_data(JET_ANALYSIS_OUTPUT_PATH)
 6>>>
 7>>> # list of the jets (all lines with index 0 in first column)
 8>>> jets = jet_analysis.get_jets()
 9>>> # list of the associated particles for all jets (associated hadrons for each jet have a sub-list)
10>>> assoc_hadrons = jet_analysis.get_associated_particles()
Attributes:
hadron_data_: list

List of hadron data for each event.

jet_R_: float

Jet radius parameter.

jet_eta_range_: tuple

Mimimum and maximum pseudorapidity for jet selection.

jet_pt_range_: tuple

Minimum transverse momentum for jet selection and maximum transverse momentum to write out the jet.

jet_data_: list

List containing the jet data after read_jet_data is used.

Methods

create_fastjet_PseudoJets(event_hadrons):

Convert hadron data to a list of fastjet.PseudoJet objects.

fill_associated_particles(jet, event):

Select particles in the jet cone.

write_jet_output(output_filename, jet, associated_hadrons, new_file=False):

Write the jet and associated hadron information to a CSV file.

perform_jet_finding(output_filename):

Perform the jet analysis for multiple events.

read_jet_data:

Read the jet data from a CSV file.

get_jets:

Get a list of jets from the jet data.

get_associated_particles:

Get a list of associated particles for all jets.

JetAnalysis.perform_jet_finding(hadron_data, jet_R, jet_eta_range, jet_pt_range, output_filename, jet_algorithm=2)[source]

Perform the jet analysis for multiple events. The function generates a file containing the jets consisting of a leading particle and associated hadrons in the jet cone.

Parameters:
hadron_data: list

List of hadron data for each event. Use the for example the Jetscape class and generate a particle_objects_list.

jet_R: float

Jet radius parameter.

jet_eta_range: tuple

Minimum and maximum pseudorapidity for jet selection. None values are allowed and are exchanged by \(-\infty\) or \(+\infty\) automatically.

jet_pt_range: tuple

Minimum transverse momentum for jet finding algorithm and maximum transverse momentum to write out the jet to a file. Values can be None, then the lower bound is set to zero and the upper one to \(+\infty\).

output_filename: str

Filename for the jet output.

jet_algorithm: fastjet.JetAlgorithm, optional

Jet algorithm for jet finding. Default is fastjet.antikt_algorithm.

JetAnalysis.read_jet_data(input_filename)[source]

Read the jet data from a CSV file and store it in the JetAnalysis object.

Parameters:
input_filename: str

Filename of the CSV file containing the jet data.

JetAnalysis.get_jets()[source]

Get a list of jets from the jet data.

Returns:
list

List of jets. Contains all data of the jet output file rows in each element of the list ([jet][column]).

JetAnalysis.get_associated_particles()[source]

Get a list of associated particles for all jets.

Returns:
list

List of associated particles for each jet in each element ([jet][associated_particle][column]).

JetAnalysis.create_fastjet_PseudoJets(event_hadrons)[source]

Convert hadron data to a list of fastjet.PseudoJet objects.

Parameters:
event_hadrons: list

List of Particle objects representing hadrons.

Returns:
list

List of fastjet.PseudoJet objects.

JetAnalysis.fill_associated_particles(jet, event)[source]

Select particles in the jet cone.

Parameters:
jet: fastjet.PseudoJet

The jet to check for associated particles.

event: int

The event index.

Returns:
list
List of associated particles in the jet cone.