Loading...
Searching...
No Matches
fastjet::JHTopTagger Class Reference
FastJet tools » Taggers

Class that helps perform boosted top tagging using the "Johns Hopkins" method from arXiv:0806.0848 (Kaplan, Rehermann, Schwartz and Tweedie). More...

`#include <fastjet/tools/JHTopTagger.hh>`

Inheritance diagram for fastjet::JHTopTagger:
[legend]
Collaboration diagram for fastjet::JHTopTagger:
[legend]

## Public Types

typedef JHTopTaggerStructure | StructureType
Public Types inherited from fastjet::TopTaggerBase
typedef TopTaggerBaseStructure | StructureType
| the type of the associated structure
Public Types inherited from fastjet::Transformer
typedef PseudoJetStructureBase | StructureType
| A typedef that is needed to ensure that the PseudoJet::structure_of() template function works.

## Public Member Functions

| JHTopTagger (const double delta_p=0.10, const double delta_r=0.19, double cos_theta_W_max=0.7, double mW=80.4)
| default ctor The parameters are the following:
virtual std::string | description () const
| returns a textual description of the tagger
virtual PseudoJet | result (const PseudoJet &jet) const
| runs the tagger on the given jet and returns the tagged PseudoJet if successful, or a PseudoJet==0 otherwise (standard access is through operator()).
Public Member Functions inherited from fastjet::TopTaggerBase
void | set_top_selector (const Selector &sel)
| sets the selector that is applied to the top candidate
void | set_W_selector (const Selector &sel)
| sets the selector that is applied to the W candidate
virtual std::string | description_of_selectors () const
| returns a description of the top and W selectors
Public Member Functions inherited from fastjet::Transformer
| Transformer ()
| default ctor
virtual | ~Transformer ()
| default dtor
Public Member Functions inherited from fastjet::FunctionOfPseudoJet< PseudoJet >
| FunctionOfPseudoJet ()
| default ctor
virtual | ~FunctionOfPseudoJet ()
| default dtor (virtual to allow safe polymorphism)
PseudoJet | operator() (const PseudoJet &pj) const
| apply the function using the "traditional" () operator.

## Protected Member Functions

std::vector< PseudoJet > | _split_once (const PseudoJet &jet_to_split, const PseudoJet &reference_jet) const
| runs the Johns Hopkins decomposition procedure
Protected Member Functions inherited from fastjet::TopTaggerBase
double | _cos_theta_W (const PseudoJet &result) const
| computes the W helicity angle

## Protected Attributes

double | _delta_p
double | _delta_r
double | _cos_theta_W_max
double | _mW
Protected Attributes inherited from fastjet::TopTaggerBase
Selector | _top_selector
Selector | _W_selector
bool | _top_selector_set
bool | _W_selector_set

## Static Protected Attributes

static LimitedWarning | _warnings_nonca

## Detailed Description

Class that helps perform boosted top tagging using the "Johns Hopkins" method from arXiv:0806.0848 (Kaplan, Rehermann, Schwartz and Tweedie).

The tagger proceeds as follows:

- start from a jet J obtained with the Cambridge/Aachen algorithm
- undo the last iteration j -> j_1,j_2 (with pt_1>pt_2) until the two subjets satisfy pt_1 > delta_p pt_J (with pt_J the pt of the original jet) and |y_1 - y_2| + |phi_1 - phi_2| > delta_r.
- if one of these criteria is not satisfied, carry on the procedure with j_1 (discarding j_2)
- for each of the subjets found, repeat the procedure. If some new substructure is found, keep these 2 new subjets, otherwise keep the original subjet (found during the first iteration)
- at this stage, one has at most 4 subjets. If one has less than 3, the tagger has failed.
- reconstruct the W from the 2 subjets with a mass closest to the W mass
- impose that the W helicity angle be less than a threshold cos_theta_W_max.

# Input conditions

- the original jet must have an associated (and valid) ClusterSequence
- the tagger is designed to work with jets formed by the Cambridge/Aachen (C/A) algorithm; if a non-C/A jet is passed to the tagger, a warning will be issued

# Example

A JHTopTagger can be used as follows:

double delta_p = 0.10; // subjets must carry at least this fraction of the original jet's p_t
double delta_r = 0.19; // subjets must be separated by at least this Manhattan distance
double cos_theta_W_max = 0.7; // the maximal allowed value of the W helicity angle
JHTopTagger top_tagger(delta_p, delta_r, cos_theta_W_max);
// indicate the acceptable range of top, W masses (default: no limits)
top_tagger.set_top_selector(SelectorMassRange(150,200));
top_tagger.set_W_selector (SelectorMassRange( 65, 95));
// now try and tag a jet
PseudoJet top_candidate = top_tagger(jet); // jet should come from a Cambridge/Aachen clustering
if (top_candidate != 0) { // successful tagging
double top_mass = top_candidate.m();
double W_mass = top_candidate.structure_of<JHTopTagger>().W().m();
}
fastjet::JHTopTagger::JHTopTagger
JHTopTagger(const double delta_p=0.10, const double delta_r=0.19, double cos_theta_W_max=0.7, double mW=80.4)
default ctor The parameters are the following:
Definition JHTopTagger.hh:134
fastjet::PseudoJet
Class to contain pseudojets, including minimal information of use to jet-clustering routines.
Definition PseudoJet.hh:68
fastjet::PseudoJet::structure_of
const TransformerType::StructureType & structure_of() const
this is a helper to access any structure created by a Transformer (that is, of type Transformer::Stru...
Definition PseudoJet.hh:1122
fastjet::PseudoJet::m
double m() const
returns the invariant mass (If m2() is negative then -sqrt(-m2()) is returned, as in CLHEP)
Definition PseudoJet.hh:1060
fastjet::SelectorMassRange
Selector SelectorMassRange(double mmin, double mmax)
select objects with Mmin <= Mass <= Mmax
Definition Selector.cc:766

The full set of information available from the structure_of<JHTopTagger>() call is

- PseudoJet W() : the W subjet of the top candidate
- PseudoJet non_W(): non-W subjet(s) of the top candidate (i.e. the b)
- double cos_theta_W(): the W helicity angle
- PseudoJet W1(): the harder of the two prongs of the W
- PseudoJet W2(): the softer of the two prongs of the W

The structure of the top_candidate can also be accessed through its pieces() function:

- top_candidate.pieces()[0]: W
- top_candidate.pieces()[1]: non_W

The W itself has two pieces (corresponding to W1, W2).

The existence of the first two of the structural calls (W(), non_W()) and the fact that the top is made of two pieces (W, non_W) are features that should be common to all taggers derived from TopTaggerBase.

See also 13 - boosted top tagging for a full usage example.

Definition at line 120 of file JHTopTagger.hh.

## Member Typedef Documentation

## StructureType

typedef JHTopTaggerStructure fastjet::JHTopTagger::StructureType

Definition at line 149 of file JHTopTagger.hh.

## Constructor & Destructor Documentation

## JHTopTagger()

fastjet::JHTopTagger::JHTopTagger | ( | const double | delta_p = 0.10,
|  | const double | delta_r = 0.19,
|  | double | cos_theta_W_max = 0.7,
|  | double | mW = 80.4 )

inline

default ctor The parameters are the following:

Parameters

  delta_p | fractional pt cut imposed on the subjets (computed as a fraction of the original jet)
  delta_r | minimal distance between 2 subjets (computed as |y1-y2|+|phi1-phi2|)
  cos_theta_W_max | the maximal value for the polarisation angle of the W
  mW | the W mass

The default values of all these parameters are taken from arXiv:0806:0848

Definition at line 134 of file JHTopTagger.hh.

## Member Function Documentation

## description()

string fastjet::JHTopTagger::description | ( |  | ) | const

virtual

returns a textual description of the tagger

Implements fastjet::Transformer.

Definition at line 50 of file JHTopTagger.cc.

## result()

PseudoJet fastjet::JHTopTagger::result | ( | const PseudoJet & | jet | ) | const

virtual

runs the tagger on the given jet and returns the tagged PseudoJet if successful, or a PseudoJet==0 otherwise (standard access is through operator()).

Parameters

  jet | the PseudoJet to tag

Implements fastjet::Transformer.

Definition at line 62 of file JHTopTagger.cc.

## _split_once()

vector< PseudoJet > fastjet::JHTopTagger::_split_once | ( | const PseudoJet & | jet_to_split,
|  | const PseudoJet & | reference_jet ) const

protected

runs the Johns Hopkins decomposition procedure

Definition at line 171 of file JHTopTagger.cc.

## Member Data Documentation

## _delta_p

double fastjet::JHTopTagger::_delta_p

protected

Definition at line 156 of file JHTopTagger.hh.

## _delta_r

double fastjet::JHTopTagger::_delta_r

protected

Definition at line 156 of file JHTopTagger.hh.

## _cos_theta_W_max

double fastjet::JHTopTagger::_cos_theta_W_max

protected

Definition at line 156 of file JHTopTagger.hh.

## _mW

double fastjet::JHTopTagger::_mW

protected

Definition at line 156 of file JHTopTagger.hh.

## _warnings_nonca

LimitedWarning fastjet::JHTopTagger::_warnings_nonca

static protected

Definition at line 157 of file JHTopTagger.hh.

The documentation for this class was generated from the following files:

- tools/fastjet/tools/JHTopTagger.hh
- tools/JHTopTagger.cc