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]
).