Loading...
Searching...
No Matches
fastjet::ClusterSequenceStructure Class Reference
Access to extra information

Contains any information related to the clustering that should be directly accessible to PseudoJet. More...

`#include <fastjet/ClusterSequenceStructure.hh>`

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

## Public Member Functions

| ClusterSequenceStructure ()
| default ctor
| ClusterSequenceStructure (const ClusterSequence *cs)
| ctor with initialisation to a given ClusterSequence
virtual | ~ClusterSequenceStructure ()
| default (virtual) dtor
virtual std::string | description () const override
| description
Direct access to the associated ClusterSequence object.
Get access to the associated ClusterSequence (if any)
virtual bool | has_associated_cluster_sequence () const override
| returns true if there is an associated ClusterSequence
virtual const ClusterSequence * | associated_cluster_sequence () const override
| get a (const) pointer to the parent ClusterSequence (NULL if inexistent)
virtual bool | has_valid_cluster_sequence () const override
| returns true if there is a valid associated ClusterSequence
virtual const ClusterSequence * | validated_cs () const override
| if the jet has a valid associated cluster sequence then return a pointer to it; otherwise throw an error
virtual const ClusterSequenceAreaBase * | validated_csab () const override
| if the jet has valid area information then return a pointer to the associated ClusterSequenceAreaBase object; otherwise throw an error
virtual void | set_associated_cs (const ClusterSequence *new_cs)
| set the associated csw
Public Member Functions inherited from fastjet::PseudoJetStructureBase
| PseudoJetStructureBase ()
| default ctor
virtual | ~PseudoJetStructureBase ()
| default (virtual) dtor

## Methods for access to information about jet structure

These allow access to jet constituents, and other jet subtructure information. They only work if the jet is associated with a ClusterSequence.
const ClusterSequence * | _associated_cs
virtual bool | has_partner (const PseudoJet &reference, PseudoJet &partner) const override
| check if it has been recombined with another PseudoJet in which case, return its partner through the argument.
virtual bool | has_child (const PseudoJet &reference, PseudoJet &child) const override
| check if it has been recombined with another PseudoJet in which case, return its child through the argument.
virtual bool | has_parents (const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const override
| check if it is the product of a recombination, in which case return the 2 parents through the 'parent1' and 'parent2' arguments.
virtual bool | object_in_jet (const PseudoJet &reference, const PseudoJet &jet) const override
| check if the reference PseudoJet is contained in the second one passed as argument.
virtual bool | has_constituents () const override
| return true if the structure supports constituents.
virtual std::vector< PseudoJet > | constituents (const PseudoJet &reference) const override
| retrieve the constituents.
virtual bool | has_exclusive_subjets () const override
| return true if the structure supports exclusive_subjets.
virtual std::vector< PseudoJet > | exclusive_subjets (const PseudoJet &reference, const double &dcut) const override
| return a vector of all subjets of the current jet (in the sense of the exclusive algorithm) that would be obtained when running the algorithm with the given dcut.
virtual int | n_exclusive_subjets (const PseudoJet &reference, const double &dcut) const override
| return the size of exclusive_subjets(...); still n ln n with same coefficient, but marginally more efficient than manually taking exclusive_subjets.size()
virtual std::vector< PseudoJet > | exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const override
| return the list of subjets obtained by unclustering the supplied jet down to nsub subjets (or all constituents if there are fewer than nsub).
virtual double | exclusive_subdmerge (const PseudoJet &reference, int nsub) const override
| return the dij that was present in the merging nsub+1 -> nsub subjets inside this jet.
virtual double | exclusive_subdmerge_max (const PseudoJet &reference, int nsub) const override
| return the maximum dij that occurred in the whole event at the stage that the nsub+1 -> nsub merge of subjets occurred inside this jet.
virtual bool | has_pieces (const PseudoJet &reference) const override
| by convention, a jet associated with a ClusterSequence will have its parents as pieces
virtual std::vector< PseudoJet > | pieces (const PseudoJet &reference) const override
| by convention, a jet associated with a ClusterSequence will have its parents as pieces
virtual bool | has_area () const override
| check if it has a defined area
virtual double | area (const PseudoJet &reference) const override
| return the jet (scalar) area.
virtual double | area_error (const PseudoJet &reference) const override
| return the error (uncertainty) associated with the determination of the area of this jet.
virtual PseudoJet | area_4vector (const PseudoJet &reference) const override
| return the jet 4-vector area.
virtual bool | is_pure_ghost (const PseudoJet &reference) const override
| true if this jet is made exclusively of ghosts.

## Detailed Description

Contains any information related to the clustering that should be directly accessible to PseudoJet.

By default, this class implements basic access to the ClusterSequence related to a PseudoJet (like its constituents or its area). But it can be overloaded in order e.g. to give access to the jet substructure.

Definition at line 61 of file ClusterSequenceStructure.hh.

## Constructor & Destructor Documentation

## ClusterSequenceStructure() [1/2]

fastjet::ClusterSequenceStructure::ClusterSequenceStructure | ( |  | ) |

inline

default ctor

Definition at line 64 of file ClusterSequenceStructure.hh.

## ClusterSequenceStructure() [2/2]

fastjet::ClusterSequenceStructure::ClusterSequenceStructure | ( | const ClusterSequence * | cs | ) |

inline

ctor with initialisation to a given ClusterSequence

In principle, this is reserved for initialisation by the parent ClusterSequence

Definition at line 70 of file ClusterSequenceStructure.hh.

## ~ClusterSequenceStructure()

fastjet::ClusterSequenceStructure::~ClusterSequenceStructure | ( |  | ) |

virtual

default (virtual) dtor

Definition at line 45 of file ClusterSequenceStructure.cc.

## Member Function Documentation

## description()

virtual std::string fastjet::ClusterSequenceStructure::description | ( |  | ) | const

inline override virtual

description

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 78 of file ClusterSequenceStructure.hh.

## has_associated_cluster_sequence()

virtual bool fastjet::ClusterSequenceStructure::has_associated_cluster_sequence | ( |  | ) | const

inline override virtual

returns true if there is an associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 89 of file ClusterSequenceStructure.hh.

## associated_cluster_sequence()

const ClusterSequence * fastjet::ClusterSequenceStructure::associated_cluster_sequence | ( |  | ) | const

override virtual

get a (const) pointer to the parent ClusterSequence (NULL if inexistent)

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 78 of file ClusterSequenceStructure.cc.

## has_valid_cluster_sequence()

bool fastjet::ClusterSequenceStructure::has_valid_cluster_sequence | ( |  | ) | const

override virtual

returns true if there is a valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 72 of file ClusterSequenceStructure.cc.

## validated_cs()

const ClusterSequence * fastjet::ClusterSequenceStructure::validated_cs | ( |  | ) | const

override virtual

if the jet has a valid associated cluster sequence then return a pointer to it; otherwise throw an error

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 88 of file ClusterSequenceStructure.cc.

## validated_csab()

const ClusterSequenceAreaBase * fastjet::ClusterSequenceStructure::validated_csab | ( |  | ) | const

override virtual

if the jet has valid area information then return a pointer to the associated ClusterSequenceAreaBase object; otherwise throw an error

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 269 of file ClusterSequenceStructure.cc.

## set_associated_cs()

virtual void fastjet::ClusterSequenceStructure::set_associated_cs | ( | const ClusterSequence * | new_cs | ) |

inline virtual

set the associated csw

Definition at line 109 of file ClusterSequenceStructure.hh.

## has_partner()

bool fastjet::ClusterSequenceStructure::has_partner | ( | const PseudoJet & | reference,
|  | PseudoJet & | partner ) const

override virtual

check if it has been recombined with another PseudoJet in which case, return its partner through the argument.

Otherwise, 'partner' is set to 0.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 105 of file ClusterSequenceStructure.cc.

## has_child()

bool fastjet::ClusterSequenceStructure::has_child | ( | const PseudoJet & | reference,
|  | PseudoJet & | child ) const

override virtual

check if it has been recombined with another PseudoJet in which case, return its child through the argument.

Otherwise, 'child' is set to 0.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 115 of file ClusterSequenceStructure.cc.

## has_parents()

bool fastjet::ClusterSequenceStructure::has_parents | ( | const PseudoJet & | reference,
|  | PseudoJet & | parent1,
|  | PseudoJet & | parent2 ) const

override virtual

check if it is the product of a recombination, in which case return the 2 parents through the 'parent1' and 'parent2' arguments.

Otherwise, set these to 0.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 125 of file ClusterSequenceStructure.cc.

## object_in_jet()

bool fastjet::ClusterSequenceStructure::object_in_jet | ( | const PseudoJet & | reference,
|  | const PseudoJet & | jet ) const

override virtual

check if the reference PseudoJet is contained in the second one passed as argument.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

false is returned if the 2 PseudoJet do not belong the same ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 134 of file ClusterSequenceStructure.cc.

## has_constituents()

bool fastjet::ClusterSequenceStructure::has_constituents | ( |  | ) | const

override virtual

return true if the structure supports constituents.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 148 of file ClusterSequenceStructure.cc.

## constituents()

vector< PseudoJet > fastjet::ClusterSequenceStructure::constituents | ( | const PseudoJet & | reference | ) | const

override virtual

retrieve the constituents.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 158 of file ClusterSequenceStructure.cc.

## has_exclusive_subjets()

bool fastjet::ClusterSequenceStructure::has_exclusive_subjets | ( |  | ) | const

override virtual

return true if the structure supports exclusive_subjets.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 166 of file ClusterSequenceStructure.cc.

## exclusive_subjets()

std::vector< PseudoJet > fastjet::ClusterSequenceStructure::exclusive_subjets | ( | const PseudoJet & | reference,
|  | const double & | dcut ) const

override virtual

return a vector of all subjets of the current jet (in the sense of the exclusive algorithm) that would be obtained when running the algorithm with the given dcut.

Time taken is O(m ln m), where m is the number of subjets that are found. If m gets to be of order of the total number of constituents in the jet, this could be substantially slower than just getting that list of constituents.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 184 of file ClusterSequenceStructure.cc.

## n_exclusive_subjets()

int fastjet::ClusterSequenceStructure::n_exclusive_subjets | ( | const PseudoJet & | reference,
|  | const double & | dcut ) const

override virtual

return the size of exclusive_subjets(...); still n ln n with same coefficient, but marginally more efficient than manually taking exclusive_subjets.size()

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 194 of file ClusterSequenceStructure.cc.

## exclusive_subjets_up_to()

std::vector< PseudoJet > fastjet::ClusterSequenceStructure::exclusive_subjets_up_to | ( | const PseudoJet & | reference,
|  | int | nsub ) const

override virtual

return the list of subjets obtained by unclustering the supplied jet down to nsub subjets (or all constituents if there are fewer than nsub).

requires nsub ln nsub time

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 206 of file ClusterSequenceStructure.cc.

## exclusive_subdmerge()

double fastjet::ClusterSequenceStructure::exclusive_subdmerge | ( | const PseudoJet & | reference,
|  | int | nsub ) const

override virtual

return the dij that was present in the merging nsub+1 -> nsub subjets inside this jet.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 215 of file ClusterSequenceStructure.cc.

## exclusive_subdmerge_max()

double fastjet::ClusterSequenceStructure::exclusive_subdmerge_max | ( | const PseudoJet & | reference,
|  | int | nsub ) const

override virtual

return the maximum dij that occurred in the whole event at the stage that the nsub+1 -> nsub merge of subjets occurred inside this jet.

an Error is thrown if this PseudoJet has no currently valid associated ClusterSequence

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 225 of file ClusterSequenceStructure.cc.

## has_pieces()

bool fastjet::ClusterSequenceStructure::has_pieces | ( | const PseudoJet & | reference | ) | const

override virtual

by convention, a jet associated with a ClusterSequence will have its parents as pieces

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 239 of file ClusterSequenceStructure.cc.

## pieces()

vector< PseudoJet > fastjet::ClusterSequenceStructure::pieces | ( | const PseudoJet & | reference | ) | const

override virtual

by convention, a jet associated with a ClusterSequence will have its parents as pieces

if it has no parents, then there will only be a single piece: itself

Note that to answer that question, we need to access the cluster sequence. If the cluster sequence has gone out of scope, an error will be thrown

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 249 of file ClusterSequenceStructure.cc.

## has_area()

bool fastjet::ClusterSequenceStructure::has_area | ( |  | ) | const

override virtual

check if it has a defined area

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 276 of file ClusterSequenceStructure.cc.

## area()

double fastjet::ClusterSequenceStructure::area | ( | const PseudoJet & | reference | ) | const

override virtual

return the jet (scalar) area.

throws an Error if there is no support for area in the parent CS

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 283 of file ClusterSequenceStructure.cc.

## area_error()

double fastjet::ClusterSequenceStructure::area_error | ( | const PseudoJet & | reference | ) | const

override virtual

return the error (uncertainty) associated with the determination of the area of this jet.

throws an Error if there is no support for area in the parent CS

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 290 of file ClusterSequenceStructure.cc.

## area_4vector()

PseudoJet fastjet::ClusterSequenceStructure::area_4vector | ( | const PseudoJet & | reference | ) | const

override virtual

return the jet 4-vector area.

throws an Error if there is no support for area in the parent CS

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 296 of file ClusterSequenceStructure.cc.

## is_pure_ghost()

bool fastjet::ClusterSequenceStructure::is_pure_ghost | ( | const PseudoJet & | reference | ) | const

override virtual

true if this jet is made exclusively of ghosts.

throws an Error if there is no support for area in the parent CS

Reimplemented from fastjet::PseudoJetStructureBase.

Definition at line 302 of file ClusterSequenceStructure.cc.

## Member Data Documentation

## _associated_cs

const ClusterSequence* fastjet::ClusterSequenceStructure::_associated_cs

protected

Definition at line 271 of file ClusterSequenceStructure.hh.

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

- include/fastjet/ClusterSequenceStructure.hh
- src/ClusterSequenceStructure.cc