FastJet 3.4.0
Loading...
Searching...
No Matches
fastjet::JHTopTagger Class Reference

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:
Collaboration diagram for fastjet::JHTopTagger:

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();
}
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:
Class to contain pseudojets, including minimal information of use to jet-clustering routines.
Definition PseudoJet.hh:68
const TransformerType::StructureType & structure_of() const
this is a helper to access any structure created by a Transformer (that is, of type Transformer::Stru...
double m() const
returns the invariant mass (If m2() is negative then -sqrt(-m2()) is returned, as in CLHEP)
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_pfractional pt cut imposed on the subjets (computed as a fraction of the original jet)
delta_rminimal distance between 2 subjets (computed as |y1-y2|+|phi1-phi2|)
cos_theta_W_maxthe maximal value for the polarisation angle of the W
mWthe 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
jetthe 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
staticprotected

Definition at line 157 of file JHTopTagger.hh.


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