Hunting boosted Higgs bosons with Rivet at FCC-hh

The last piece of the puzzle is what I actually do with these simulated events. This is where Rivet comes in.

This rivet is not RIVET

Rivet (Robust Independent Validation of Experiment and Theory) is a C++ framework used all over HEP to analyse Monte Carlo events in a way that closely mirrors published measurements. It has a big library of existing analyses (ATLAS, CMS, etc.), but it also lets you write your own. 

For my project, I wrote a Rivet analysis called FCC_MC_ZH2BB_MDT. The goal is to pick out events where:

  • a Z boson decays invisibly to neutrinos, giving large missing transverse momentum (MET), and
  • the Higgs decays to a pair of b quarks, which are so boosted that they merge into one fat jet.

The analysis logic is:

  1. Apply a MET cut
    First, I throw away events with low missing transverse energy. This keeps only events where the Z is energetic and decays invisibly, which is exactly the signature we want.
  2. Build fat jets
    Instead of standard small-radius jets, I cluster “fat jets” with a radius of about 1.0. In a highly boosted H → bb decay, both b quarks are contained inside a single fat jet. I then pick the leading fat jet (the one with the highest pT) as my Higgs candidate.
  3. Enforce pT balance
    I require the leading fat jet pT to be comparable to the MET, within a loose ratio. If the Higgs and Z recoil against each other, their transverse momenta should roughly balance. This is a nice handle to suppress messy backgrounds.
  4. b-tagging
    I check whether the fat jet contains b-hadrons using Rivet’s b-tagging utilities. If there is no sign of b content, the event is unlikely to be H → bb and is rejected.
  5. Substructure with the Modified Mass Drop Tagger
    This is where jet substructure comes in. I convert the fat jet into a FastJet object and run the Modified Mass Drop Tagger (MMDT) on it. MMDT looks inside the fat jet and tries to resolve it into two hard subjets, while removing soft contamination and pile-up. Only jets that split into two reasonably balanced subjets with enough energy survive. 
  6. Higgs mass window
    Finally, I look at the groomed jet mass. If it lies in a window around the Higgs mass (roughly 115–140 GeV in my current setup), I treat it as a tagged Higgs candidate.

Once all events are processed, I end up with:

  • a number of correctly tagged Higgs jets (signal),
  • a number of mistagged jets from background processes,
  • and a set of distributions (jet pT, MET, jet mass, etc.) that I can use to understand where the analysis is working or failing. 

The idea is to tune these cuts and substructure settings on Standard Model samples first, to get a robust and reasonably efficient tagger. Then I turn on HEL coefficients (cHW, cHB, cH) and see how the tagged signal changes, especially in the high-pT region. That lets me estimate, in a simple way, how sensitive this analysis would be to new physics at FCC-hh.

Of course, this is still an idealised study: there is no full detector simulation, and the pile-up in reality will be brutal. But it is a necessary first step. If even a clean particle-level analysis cannot see the effect of HEL deformations, there is little hope of doing better once all the experimental complications are added. If it can, then it becomes a strong case for investing the effort in a more realistic detector-level study.

So this Rivet routine is not just a coding exercise. It is my test bench for a very concrete question: in the boosted, messy world of a 100 TeV proton collider, can we still do precision Higgs physics, or does everything dissolve into noise?


Leave a comment