Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8308943
README
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Subscribers
None
README
View Options
-------------------------
Nsubjettiness Package
-------------------------
The Nsubjettiness package is based on the physics described in:
Identifying Boosted Objects with N-subjettiness.
Jesse Thaler and Ken Van Tilburg.
JHEP 1103:015 (2011), arXiv:1011.2268.
Maximizing Boosted Top Identification by Minimizing N-subjettiness.
Jesse Thaler and Ken Van Tilburg.
JHEP 1202:093 (2012), arXiv:1108.2701.
New in v2.0 is the winner-take-all axis, which is described in:
Jet Shapes with the Broadening Axis.
Andrew J. Larkoski, Duff Neill, and Jesse Thaler.
JHEP 1404:017 (2014), arXiv:1401.2158.
as well as in unpublished work by Gavin Salam.
-------------------------
Core Classes
-------------------------
There are three different ways to access N-(sub)jettiness variables, described
in more detail below:
Nsubjettiness.hh:
A simple FunctionOfPseudoJet<double> interface to measure N-subjettiness
(Recommended for most users)
NjettinessPlugin.hh:
A FastJet plugin for finding jets by minimizing N-jettiness
Njettiness.hh:
Core code for N-(sub)jettiness minimization
(users typically will not need to use this directly)
The code assumes that you have FastJet 3.
-------------------------
Nsubjettiness.hh (i.e. Nsubjettiness function)
-------------------------
The Nsubjettiness class is a simple wrapper that implements the
fastjet::FunctionOfPseudoJet<double> interface for ease of plugging in to other
analyses. Since Nsubjettiness operates the same way as Njettiness, just on
constituents instead of all particles in an event, the Nsubjettiness constructor
is identical to the one for the plugin (other than the name).
-------------------------
NjettinessPlugin.hh (i.e. Njettiness jet finding plugin):
-------------------------
The Njettiness FastJet plugin represents an exclusive jet finder (yielding a
fixed N number of jets). The algorithm finds N axes, and jets are simply the sum
of particles closest to a given axis (or unclustered if they are closest to the
beam). There are various axis methods including minimizing the event shape
Njettiness or using exclusive kT axis. The presently recommended methods are
winner-take-all axes or one-pass minimization from kT seeds, both of which are
much cheaper than full minimization and nearly as effective.
-------------------------
Njettiness.hh (i.e. core Njettiness framework):
-------------------------
Most users will want to use the Nsubjettiness.hh or NjettinessPlugin.hh headers.
For direct access to the Njettiness class, one can use Njettiness.hh directly.
This class is still evolving, so users who wish to extend its functionality
should contact the authors first.
-------------------------
Basic Usage (Nsubjettiness and NsubjettinessRatio)
-------------------------
Most users will only need to use the Nsubjettiness class. The basic
functionality is given by:
Nsubjettiness nSub(N, Njettiness::AxesMode, Njettiness::MeasureMode,
para1, para2, para3, para4)
// N specifies the number of (sub) jets to measure
// AxesMode is Njettiness::wta_kt_axes, Njettiness::onepass_kt_axes, etc.
// MeasureMode is Njettiness::unnormalized_measure,
// Njettiness::normalized_measure, etc.
// para1, para2, para3, para4 are specific to measure; unnormalized_measure
// requires 1 parameter, normalized_measure requires 2 parameters, etc.
// get tau value
double tauN = nSub.result(some jet);
Also available are ratios of N-(sub)jettiness values
NsubjettinessRatio nSubRatio(N, M, Njettiness::AxesMode,
Njettiness::MeasureMode,
para1, para2, para3, para4)
// N and M give tau_N / tau_M, all other options the same
-------------------------
AxesMode
-------------------------
N-(sub)jettiness requires choosing axes as well as a measure (see below). There
are a number of axes choices available to the user, though modes with a (*) are
recommended.
Axes can be found using standard recursive clustering procedures. New is the
option to use the "winner-take-all" recombination scheme:
(*) kt_axes // exclusive kt axes
ca_axes // exclusive ca axes
antikt_0p2_axes // inclusive hardest axes with antikt-0.2
(*) wta_kt_axes // exclusive kt with winner-take-all recombination
wta_ca_axes // exclusive ca with winner-take-all recombination
One can also run a minimization routine to find a (local) minimum of
N-(sub)jettiness:
(*) onepass_kt_axes // one-pass minimization from kt starting point
onepass_ca_axes // one-pass min. from ca starting point
onepass_antikt_0p2_axes // one-pass min. from antikt-0.2 starting point
(*) onepass_wta_kt_axes // one-pass min. from wta_kt starting point
onepass_wta_ca_axes // one-pass min. from wta_ca starting point
In general, it is difficult to finding the global minimum, but this mode
attempts to do so
min_axes // axes that (attempt to) minimize N-subjettiness
// (100 passes by default)
Finally, one can set manual axes:
manual_axes // set your own axes with setAxes()
onepass_manual_axes // one-pass minimization from manual starting point
For most cases, running with onepass_kt_axes or onepass_wta_kt_axes gives
reasonable results (and the results are IRC safe). Because it uses random
number seeds, min_axes is not IRC safe (and the code is rather slow). Note
that for the minimization routines, beta = 1.1 is faster than beta = 1, with
comparable performance.
-------------------------
MeasureMode
-------------------------
At the moment, there are only a few measures. Note that each one has a
different number of parameters, given in parentheses. The one indicated by (*)
is the one recommended for use by users new to Nsubjettiness.
The original N-subjettiness measures are:
normalized_measure (2:beta,R0) //default normalized measure with
//parameters beta and R0 (dimensionless)
(*) unnormalized_measure (1:beta) //default unnormalized measure with just
//parameter beta (dimensionful)
There are also measures that incorporate a radial cutoff:
normalized_cutoff_measure (3:beta,R0,Rcutoff) //normalized measure with
//additional Rcutoff
unnormalized_cutoff_measure (2:beta,Rcutoff) //unnormalized measure with
//additional Rcutoff
In beta testing are "geometric" measures where distances are measured using the
Lorentz dot product (N.B. the formula for the geometric measure is likely to
change since there should be separate beam and jet beta factors.)
geometric_measure (1:beta) //geometric measure with exponent beta
geometric_cutoff_measure (2:betaRcutoff) //geometric measure with Rcutoff
-------------------------
A note on beta dependence
-------------------------
The angular exponent in N-subjettiness is called beta. The original
N-subjettiness paper advocated beta = 1, but it is now understood that different
beta values can be useful in different contexts. The two main choices are:
beta = 1: aka broadening/girth/width measure
wta_kt_axes are approximately the same as minimizing beta = 1 measure
beta = 2: aka thrust/mass measure
kt_axes are approximately the same as minimizing beta = 2 measure
N.B. The minimization routines are only valid for 1 < beta < 3.
For quark/gluon discrimination with N = 1, beta~0.2 with wta_kt_axes appears
to be a good choice.
-------------------------
TauComponents.hh
-------------------------
For most users, they will only need the value of N-subjettiness (i.e. tau)
itself. For advanced users, they can access individual tau components (i.e.
the individual numerator pieces, the denominator, etc.)
TauComponents tauComp = nSub.component_result(jet);
vector<double> numer = tauComp.jet_pieces_numerator(); //tau for each subjet
double denom = tauComp.denominator(); //normalization factor
-------------------------
WinnerTakeAllRecombiner.hh:
-------------------------
New for version 2.0 of Nsubjettiness are winner-take-all axes. They are found
with the help of the WinnerTakeAllRecombiner. This class defines a new
recombination scheme for clustering particles. This scheme recombines two
PseudoJets into a PseudoJet with pT of the sum of the two input PseudoJet pTs
and direction of the harder PseudoJet. This is a "recoil-free" recombination
scheme that guarantees that the axes is aligned with one of the input particles.
It is IRC safe. Axes found with the standard E-scheme recombiner at similar to
the beta = 2 minimization, while winner-take-all is similar to the beta = 1
measure.
Note that the WinnerTakeAllRecombiner can be used outside of Nsubjettiness
itself for jet finding. For example, the direction of anti-kT jets found
with the WinnerTakeAllRecombiner is particularly robust against soft jet
contamination.
-------------------------
Technical Details
-------------------------
In general, the user will never need access to these header files. Here is a
brief description about how they are used to help the calculation of
N-(sub)jettiness:
AxesFinder.hh:
The AxesFinder class (and derived classes) defines the axes used in the
calculation of N-(sub)jettiness. These axes can be defined from the exclusive
jets from a kT or CA algorithm, the hardest jets from an anti-kT algorithm,
manually, or from minimization of N-jettiness. In the future, the user will be
able to write their own axes finder, though currently the interface is still
evolving. At the moment, the user should stick to the options allowed by
AxesMode.
MeasureFunction.hh:
The MeasureFunction class (and derived classes) defines the measure by which
N-(sub)jettiness is calculated. This measure is calculated between each
particle and its corresponding axis, and then summed and normalized to
produce N-(sub)jettiness. The default measure for this calculation is
pT*dR^beta, where dR is the rapidity-azimuth distance between the particle
and its axis, and beta is the angular exponent. Again, in the future the user
will be able to write their own measures, but for the time being, only the
predefined MeasureMode values should be used.
-------------------------
Known Issues
-------------------------
-- The min_axes mode gives different answers on different runs, since random
numbers are used.
-- To allow for variable number of parameters, NANs are used for checking the
number of desired parameters, which is not supported on all compilers. This
will be fixed in a future release.
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Dec 21, 1:41 PM (20 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4022999
Default Alt Text
README (10 KB)
Attached To
rFASTJETSVN fastjetsvn
Event Timeline
Log In to Comment