Introduction to jets

Last update: 20 Nov 2024 [History] [Edit]

We’ve learned about leptons; what about quarks and gluons? A lot of the hard processes of interest will have quarks and gluons (often referred to as partons) in their final state. Even processes that seem like they will only have leptons often have jets due to initial-state radiation from the incoming partons. Therefore, it is very important to be able to reconstruct them. However, there are three complications with this:

  • Partons carry color charge and cannot be observed in isolation. As a parton becomes too far separated from its original color singlet, it becomes more energetically favorable to pull pull new quarks out of the vacuum. The resulting quarks quickly recombine to form a spray of stable hadrons that enter the ATLAS detector, leaving tracks and a large amount of energy in the calorimeters.
  • Due to color connectivity between partons from the same color singlet, some resulting hadrons carry energy from more than one hard scatter parton.
  • Even for the hard process itself, the individual quarks or gluons are not really “physical” objects. While they exist at leading order (a.k.a. at tree level), higher order radiative corrections make the cross section calculations diverge. This is addressed by combining “sufficiently soft” radiation back with the original parton.

These complications are addressed by using hadronic jets. These are essentially nearby calorimeter energy deposits that are grouped together into a single object that serves as a proxy for a parton. There are multiple algorithms that can be used to reconstruct jets (see below) and they can be run on many kinds of objects (e.g. calorimeter deposits, tracks, stable truth-level hadrons, partons). There are a couple of points unique to jets that are worth keeping in mind:

  • While we think of jets as representing the underlying parton from the hard process, it is the jet that is the actual physical object and the parton is more of a mental model. This is very different from e.g. muons for which the muon in the detector is really the muon from the hard process.
  • There is not actually a single jet definition at truth level, we pick a jet definition by our choice of jet reconstruction algorithm. While some definitions are more suitable for certain purposes than others, there is no absolute correct definition.
  • Jets are actually fairly large objects in the detector, meaning it is quite likely for them to contain some contribution from pileup events. This needs to be accounted/corrected for to get the best estimate of the original “truth” jets built from truth-level stable hadrons.

Since we are colliding many colored particles in each event, we can expect a large number of jets to appear in each event. With many deposits in the calorimeters, it can be tricky to determine what deposits correspond to the original parton.

Jet Reconstruction

Jet Reconstruction

In order to identify which energy deposits correspond to an initial parton, we use clustering algorithms to gather energy deposits together into an object known as a jet. Several different clustering algorithms are available, each using different criteria for building jets from calorimeter clusters and tracks. Each has its own pros and cons. The figure below shows a comparison of the jets formed by four different clustering algorithms.

Jet Clustering

In addition to the type of clustering algorithms used, you can also modify the parameters (such as the size parameter) and inputs of the clustering algorithms. Let’s take a look at some of the different types of jet definitions that we use. Open the test file in ROOT and print out all of the containers that have “Jets” in the name.

 $ root -l $ALRB_TutorialData/mc16_13TeV.312276.aMcAtNloPy8EG_A14N30NLO_LQd_mu_ld_0p3_beta_0p5_2ndG_M1000.deriv.DAOD_PHYS.e7587_a875_r10201_p5001/DAOD_PHYS.30350968._000001.pool.root.1
 root[1] CollectionTree->Print("*Jets*")

A snippet of this output is shown below. These all use the “Anti-Kt” clustering algorithm, but the configurations are all different. If your analysis will include jets, you need to ensure you are studying the types of jets that are most relevant to the analysis. The two most commonly used jet collections (other than “truth” jets) are both reconstructed with the anti-kT algorithm. The first collection is AntiKt4EMPFlowJets built with a size parameter of R = 0.4 using inputs built from track and calorimeter information (the combination is called “particle flow” in ATLAS terminology) and is typically used to reconstruct isolated partons. The second collection is AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets built with a size parameter of R = 1.0 using inputs that combine track and calorimeter information in a different way and is typically used to reconstruct “boosted” hadronically decaying heavy particles such as a W boson or a top quark that has sufficient momentum that its decay products are merged together (or are very close-by one another) in the detector.

tip The two jet collections described above are generally sufficient for most ATLAS analyses. The recommended jet collections occasionally change and there are some analysis scenarios that necessitate the use of other jet collections.

*............................................................................*
*Br    7 :AntiKt10LCTopoJets : DataVector<xAOD::Jet_v1>                      *
*Entries :    10000 : Total  Size=     204297 bytes  File Size  =      34238 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.94     *
*............................................................................*
*Br    8 :AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets : DataVector<xAOD::Jet_v1>*
*Entries :    10000 : Total  Size=     205089 bytes  File Size  =      34966 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.83     *
*............................................................................*
*Br    9 :AntiKt10TruthSoftDropBeta100Zcut10Jets : DataVector<xAOD::Jet_v1>  *
*Entries :    10000 : Total  Size=     205017 bytes  File Size  =      32067 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   6.36     *
*............................................................................*
*Br   10 :AntiKt10TruthTrimmedPtFrac5SmallR20Jets : DataVector<xAOD::Jet_v1> *
*Entries :    10000 : Total  Size=     205053 bytes  File Size  =      32091 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   6.36     *
*............................................................................*
*Br   11 :AntiKt10UFOCSSKJets : DataVector<xAOD::Jet_v1>                     *
*Entries :    10000 : Total  Size=     204333 bytes  File Size  =      31356 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   6.48     *
*............................................................................*
*Br   12 :AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets : DataVector<xAOD::Jet_v1>*
*Entries :    10000 : Total  Size=     205089 bytes  File Size  =      31598 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   6.46     *
*............................................................................*
*Br   13 :AntiKt2PV0TrackJets : DataVector<xAOD::Jet_v1>                     *
*Entries :    10000 : Total  Size=     204333 bytes  File Size  =      38866 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.23     *
*............................................................................*
*Br   14 :AntiKt4EMPFlowJets : DataVector<xAOD::Jet_v1>                      *
*Entries :    10000 : Total  Size=     204297 bytes  File Size  =      36143 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.62     *
*............................................................................*
*Br   15 :AntiKt4EMPFlowJets_BTagging201810 : DataVector<xAOD::Jet_v1>       *
*Entries :    10000 : Total  Size=     204837 bytes  File Size  =      36657 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.56     *
*............................................................................*
*Br   16 :AntiKt4EMPFlowJets_BTagging201903 : DataVector<xAOD::Jet_v1>       *
*Entries :    10000 : Total  Size=     204837 bytes  File Size  =      36657 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.56     *
*............................................................................*
*Br   17 :AntiKt4EMTopoJets : DataVector<xAOD::Jet_v1>                       *
*Entries :    10000 : Total  Size=     204261 bytes  File Size  =      37289 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.45     *
*............................................................................*
*Br   18 :AntiKt4EMTopoJets_BTagging201810 : DataVector<xAOD::Jet_v1>        *
*Entries :    10000 : Total  Size=     204801 bytes  File Size  =      37814 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.39     *
*............................................................................*
*Br   19 :AntiKt4LCTopoJets : DataVector<xAOD::Jet_v1>                       *
*Entries :    10000 : Total  Size=     204261 bytes  File Size  =      36447 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.58     *
*............................................................................*
*Br   20 :AntiKt4TruthDressedWZJets : DataVector<xAOD::Jet_v1>               *
*Entries :    10000 : Total  Size=     204549 bytes  File Size  =      36660 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.55     *
*............................................................................*
*Br   21 :AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810 : DataVector<xAOD:   *
*         | :Jet_v1>                                                         *
*Entries :    10000 : Total  Size=     205269 bytes  File Size  =      36409 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.61     *
*............................................................................*
*Br   22 :AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903 : DataVector<xAOD:   *
*         | :Jet_v1>                                                         *
*Entries :    10000 : Total  Size=     205269 bytes  File Size  =      36409 *
*Baskets :       32 : Basket Size=      27136 bytes  Compression=   5.61     *
*............................................................................*

Calibration

Jets are some of the most complicated and dense objects we detect with ATLAS, and that means it takes a lot of careful studying to ensure we are calibrating them properly. The JetEtMiss group has painstakingly developed tools in order for us to apply proper calibrations to our jets to remove any discrepancies in the measurements we have taken.

Due to the nature of the strong force interactions that lead to hadron detection, the energy of a jet is never completely measured by ATLAS. This, plus other effects, means that it is necessary to apply significant corrections (referred to as calibrations) to jets in MC and in detector data to ensure the jets used in analysis are properly described.

tip Corrections are also applied to other physics objects, but the process is much more involved for hadronic jets.

Jet Vertex Tagging

Since the LHC collides hadrons with a large amount of pileup, collision events are prone to having a large number of jets that originate from pileup interactions as well as the hard scatter process you are most interested in. Unlike electrons and muons, which can be associated with a collision vertex through their tracks, jets offer poor direction resolution and can contain hadrons originating from multiple interaction vertices. Generally, we want to ignore jets that are from pileup interactions. We do this using Jet Vertex Tagging (JVT), which uses tracks associated with a jet to determine the fraction of its energy that comes from the hard scatter vertex or pileup vertices.