Jet substructure analysis is an important tool for extractions of the significant signal in jets and the reconstruction of characteristic jet mass and shape variables, and the e.g. internal flow inside jets, for e.g. searches. This project tries to evaluate various substructure techniques and configurations with respect to their effectiveness in the suppression of pile-up for given observables, and the enhancement of signal-to-background ratios.
While the exact conditions at LHC are not yet know, we expect at least 30 but likely more (more than 200 is possible) pile-up interactions in each recorded event. The center-of-mass energy is set to $ \sqrt{s} = 13 {\rm\ TeV} $. }
Minimum bias samples have been produced with Pythia8 using the tune 4C. The samples include single, double and non-diffractive interactions at the default mix. Particles are generated without any phase space restriction. The generating code fills a ROOT tuple, the structure of which is documented in the BOOST2012 TWiki.
The generating code can be found in the file pythiasoftqcdall.cc.txt. The example Makefile is in the file makefile.txt. This is highly taylored for the setup on my machine, but should give you an idea.
The following signal samples are discussed:
The following configurations for the (average) number of pile-up interactions $\langle\mu\rangle$ are suggested $$ \langle\mu\rangle = \{ 30, 60, 120, 240 \} $$ The actual number of pile-up interactions added to the signal event is taken from a Poisson distribution around $\langle\mu\rangle$.
Pile-up can be added dynamically using Peter's eventmanager software. All the software for the LH pile-up/substructure studies is being developed through a Bitbucket repository: you can check out without an account. Send a request for access if you want to commit (push) to the main code repository.
(Previous version of software as a tarball.)
The main concept here is that the ROOT based raw data is converted into an Event
object containing lists of PseudoJet
s (from Fastjet
) representing
The code is not very convenient to use in this version. On most systems I expect a
make all
should work to compile the library and the example in anal02.C
. For implementing your own analysis, please check the anal02.C
and Zprime_Py8::analyze(Event& rEvt)
(your playground) in Zprime_Py8.C
as examples. The program supports a few command line arguments
anal02.exe --help --mu=<mu> --nevts=<number of (signal) events> --sigflist=<text file with list of signal files> --puflist=<text file with list of pile-up files>
Some hints:
–help
prints a brief usage instruction (which I think is not up-to-date, so please ignore!)–mu=<mu>
expects the number of interactions per event. if <mu> < 0
, exactly |<mu>|
interactions are collected into one event. <mu> > 0
means a Poisson-distributed number of pile-up interactions will be collected from the pile-up (minimum bias) event samples. <mu>
should be the number of pile-up events to be added to one signal event –sigflist=<file>
specifies a text file (no “” around file name!) with a list of signal files to be processed. If this list is not given, Zprime_Py8::analyze(…)
will not be invoked.–puflist=<file>
specifies a text file (no “” around file name!) with a list of pile-up files to be processed. If this list is not given, only signal events are analyzed (you should set –mu=1
in this case!). The idea is to test filtering/grooming techniques as a way to reduce the sensiticity to bsoft backgrounds (initially the filter used with the BDRS tagger was meant to reduce the sensitivity to the UE).
Following the Filter tool in FastJet3, we need (i) a jet definition to break the jet into subjets and (ii) a selection criterion that decides what subjets are kept. We'll consider 3 options:
The 3rd option is new and based on the idea that the PU scales $\rho$ and $\sigma$ should set the scale of the PU/noise removal.
For pileup sutraction, one usually want to first subtract the average PU contamination ($\rho A_{\rm sub}$) from each subjet before deciding which subjets are to be kept. This is implemented in the fastjet::Filter. Note that with “Area-filtering” you should then cut with $p_{t,\rm sub} > n \sigma \sqrt{A_{\rm sub}}$ since the baseline has already been subtracted.