Introduction

This project is to benchmark different strategies for reconstructing top quark systems from their decay products. Different approaches are used in the literature, varying from simple chi-square constraints to more complex likelihoods. Depending on the analysis, choosing the right method can vastly impact sensitivity by cutting out background events and by correctly identifying the top quark kinematics. The student will initially compare these techniques on the basis of their success in matching reconstructed jets to simulated top quark decay products, in the single lepton channel, both with and without combinatorial confusion due to additional jet radiation. Subsequently, they will evaluate different techniques’ effectiveness at signal/background suppression. A natural progression would be to extend these comparisons to the more challenging fully-hadronic final state. There will be ample opportunity for original contributions, such as combination of these methods with kinematic constraints and/or the application of machine learning techniques.

Overview of top reconstruction algorithms

In order of increasing complexity, there are three top reconstruction definitions that we are interested in investigating to begin with.

  1. PseudoTop -- https://twiki.cern.ch/twiki/bin/view/LHCPhysics/ParticleLevelTopDefinitions (see also attachment) -- This definition is motivated by ease of translation between the reconstructed event in data/simulation and the MC truth description at the stable particle level. Basically, one uses the lepton and MET to reconstruct one W, looks for the best W candidate among the light jets, and then assumes that the b-jet closest to the leptonic W came from the same top, while the other b is considered to descend from the hadronic top.
  2. Chi2 -- https://arxiv.org/abs/1702.07546 (section 5): this is for the case of 2 hadronic top decays, but it can be adapted for semileptonic top pairs -- This is conceptually not too different from the pseudotop definition, but it attempts to use the top mass as well to constrain the b-jet assignments, taking into account the experimental resolution.
  3. KLFitter -- https://arxiv.org/abs/1312.5595 -- This method is only applicable to unfolding data to parton level, as it depends heavily on "transfer functions" describing the resolutions of jets initiated by the high-pt partons, and cannot be used for reconstruction on particle level jets. "KLFitter" refers to the kinematic likelihood that is minimised under the assumption that each reconstructed jet is assigned to one parton from the top decay, but may be mismeasured to some degree, described by the transfer function. This also relies on the values of the top mass and W mass.

Getting started with code

Useful basic setup in ROOT/python

There may be simple macros and such that we want to execute every time we open a programme. For ROOT, we set them up as follows. Create a file called "~/.rootrc", containing the following lines:

Unix.*.Root.DynamicPath:    .:$(ROOTSYS)/lib:$(HOME)/RootUtils/lib:
Unix.*.Root.MacroPath:      .:$(HOME)/RootUtils:$(HOME)/RootUtils/atlasstyle:

Root.ShowPath: false
Browser.Name: TRootBrowser

Rint.Logon: ~/RootUtils/atlasstyle/rootlogon.C
Basically, we are adding some locations that ROOT will search for libraries and macros. Then you can add a "~/RootUtils" folder that will hold any special macros you'd like to use. We also place the atlasstyle directory in RootUtils, such that ROOT knows to search here for the relevant macros.

The git project

It's always good practice to keep a record of all code development, using a version control system. We'll do this using CERN gitlab, which is also where the ATLAS reconstruction & analysis software repository lives. Our project lives here: [https://gitlab.cern.ch/khoo/HaTMaker] (HaT = Hadronic Top) You should fork your own copy of the repository, after which you can make updates freely, and can periodically make merge requests to reintegrate this into my original fork. After forking, make a working directory for the project and git clone the code.

Running the C++ code will require setup of the ATLAS analysis releases, either remotely on CVMFS or with a local installation. We'll come to that later, but first, let's just get set up to make plots with ROOT and python.

Plotting in pyROOT out of our analysis ntuples

Step 1 is to install ROOT if needed: https://root.cern.ch, and make a directory in which to run the plotting code.

Then, grab the test input file from /afs/cern.ch/work/k/khoo/public/HaTFiles/. If you have direct afs access, you should be able to just cp, otherwise you can scp via lxplus.

Once you have the input file, you can start investigating the plotting scripts that I've prepared. You'll also need to grab the atlasStyle headers and python module from this page, as we import the module to ensure a standard ATLAS plot format. At present, two scripts are provided in the HaTPlotter package.

With the HaTMaker project compiled, these scripts will be available in your $PATH, but it's probably just as easy to symlink them to a run directory, for ease of editing and running. Hopefully they are sufficiently well documented that you can just try them out straight away! Have a look at the code and make sure you understand what is being filled in each histogram, then try running the scripts -- first MakeHaTHistos.py, then DrawHaTHistos.py (the first fills the histograms, and the second draws and saves them to .eps format).

Assignment 1: Implementing basic reconstruction strategies

You have access to the four-vectors of leptons and jets in the ntuples (have a look through with TTree::Print() and see what information is available). With these, you should be able to implement the simpler reconstruction strategies. Let's start with the PseudoTop approach, which follows the steps below:

  1. Reconstruct the leptonic W from the lepton and the missing transverse momentum (MET). You have incomplete information here: the 4-vector of the lepton (effectively 3-vector, as the lepton mass is negligible) and the 2-vector of the MET, but can also constrain the system under the assumption that the W should be on mass shell (i.e. M_W = 80.4 GeV). So it's a straightforward special relativity exercise to define the W mass in terms of the knowns and the unknown neutrino pz, which you can then solve for.
  2. Having found the leptonic W, it's assumed that the closest b-jet in deltaR is the other component of the leptonic top, so you can compute the top mass by combining these two objects.
  3. The hadronic W has to be found from the non-b-tagged jets, which you can do by looking for a jet pair that has an invariant mass close to the mass of the W. Then, combine this with the remaining b-jet. Once more, you can look at the top mass for one measure of the quality of the reconstruction.
  4. For another important metric of the reconstruction quality, we'd like to know if every jet we have selected is correctly matched to a top decay product. In practice, this means that the two b-jets should be matched to the b-hadrons/quarks, and the two light jets making up the W candidate likewise match to the quarks from the W decay. This information is in the ntuples already, and accessed a few ways in the example plots, but you can now use that information to check on the exact jets that your reconstruction procedure has picked out.
  5. In addition to knowing that we selected all the right jets, we'd like to know whether we matched together the W's and b's correctly -- so plot the events in which this is/isn't successful as well. From here you can investigate the events in which the reconstruction failed to see if there are any patterns that would tell us how to more reliably reconstruct the tops.

One other thing to bear in mind is of course what events you will be able to actually reconstruct -- these will have to be events with at least four jets and exactly one lepton (electron or muon). For the moment, at least, you will also have to do some overlap removal between the lepton and the jets, because the same object can be reconstructed simultaneously as both an electron and a jet for example. This is something that we can apply later in the ntuples to make life easier.

-- TengJianKhoo - 2018-06-29

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r5 - 2018-07-02 - TengJianKhoo
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback