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

Implementation of the spherical version of the SISCone algorithm (plugin for fastjet v2.1 upwards). More...

#include <fastjet/SISConeSphericalPlugin.hh>

Inheritance diagram for fastjet::SISConeSphericalPlugin:
Collaboration diagram for fastjet::SISConeSphericalPlugin:

Public Types

enum  SplitMergeScale { SM_E , SM_Etilde }
 enum for the different split-merge scale choices; Note that order must be the same as in siscone More...

Public Member Functions

 SISConeSphericalPlugin (double cone_radius_in, double overlap_threshold_in, int n_pass_max_in=0, double protojet_Emin_in=0.0, bool caching_in=false, SplitMergeScale split_merge_scale_in=SM_Etilde, double split_merge_stopping_scale_in=0.0)
 Main constructor for the SISConeSpherical Plugin class.
double protojet_Emin () const
 minimum energy for a protojet to be considered in the split-merge step of the algorithm
double protojet_or_ghost_Emin () const
 return the scale to be passed to SISCone as the protojet_Emin – if we have a ghost separation scale that is above the protojet_ptmin, then the ghost_separation_scale becomes the relevant one to use here
SplitMergeScale split_merge_scale () const
 indicates scale used in split-merge
void set_split_merge_scale (SplitMergeScale sms)
 sets scale used in split-merge
bool split_merge_use_E_weighted_splitting () const
 indicate if the splittings are done using the anti-kt distance
void set_split_merge_use_E_weighted_splitting (bool val)
virtual bool supports_ghosted_passive_areas () const
 overload the default as we don't provide support for passive areas.
virtual std::string description () const
 plugin description
virtual void run_clustering (ClusterSequence &) const
 really do the clustering work
virtual bool is_spherical () const
 returns true because this plugin is intended for spherical geometries (i.e.
Public Member Functions inherited from fastjet::SISConeBasePlugin
 SISConeBasePlugin ()
 default ctor
 SISConeBasePlugin (const SISConeBasePlugin &plugin)
 copy constructor
void set_progressive_removal (bool progressive_removal_in=true)
 set whether to use SISCone with progressive removal instead of the default split_merge step.
bool progressive_removal () const
 returns true if progressive_removal is enabled
double cone_radius () const
 the cone radius
double overlap_threshold () const
 Fraction of overlap energy in a jet above which jets are merged and below which jets are split.
int n_pass_max () const
 the maximum number of passes of stable-cone searching (<=0 is same as infinity).
void set_split_merge_stopping_scale (double scale)
 set the "split_merge_stopping_scale": if the scale variable for all protojets is below this, then stop the split-merge procedure and keep only those jets found so far.
double split_merge_stopping_scale ()
 return the value of the split_merge_stopping_scale (see set_split_merge_stopping_scale(...) for description)
void set_use_jet_def_recombiner (bool choice)
 allow the user to decide if one uses the jet_def's own recombination scheme
bool use_jet_def_recombiner () const
 indicate if the jet_def's recombination scheme is being used
bool caching () const
 indicates whether caching is turned on or not.
virtual double R () const
 the plugin mechanism's standard way of accessing the jet radius
virtual void set_ghost_separation_scale (double scale) const
 set the ghost separation scale for passive area determinations just in the next run (strictly speaking that makes the routine a non const, so related internal info must be stored as a mutable)
virtual double ghost_separation_scale () const
void set_user_scale (const UserScaleBase *user_scale_in)
 set a user-defined scale for stable-cone ordering in progressive removal
const UserScaleBaseuser_scale () const
 returns the user-defined scale in use (0 if none)
Public Member Functions inherited from fastjet::JetDefinition::Plugin
virtual bool exclusive_sequence_meaningful () const
 if this returns false then a warning will be given whenever the user requests "exclusive" jets from the cluster sequence
virtual ~Plugin ()
 a destructor to be replaced if necessary in derived classes...

Protected Member Functions

virtual void reset_stored_plugin () const
 call the re-clustering itself

Additional Inherited Members

Protected Attributes inherited from fastjet::SISConeBasePlugin
double _cone_radius
double _overlap_threshold
int _n_pass_max
bool _caching
double _split_merge_stopping_scale
bool _use_jet_def_recombiner
bool _progressive_removal
double _ghost_sep_scale
const UserScaleBase_user_scale

Detailed Description

Implementation of the spherical version of the SISCone algorithm (plugin for fastjet v2.1 upwards).

SISConeSphericalPlugin is a plugin for fastjet (v2.1 upwards) that provides an interface to the seedless infrared safe cone jet finder by Gregory Soyez and Gavin Salam.

This is the version of SISCone using spherical coordinates. Compared to the original cylindrical version:

  • Particles are within a cone if their opening angle relative to the centre of the cone is less than R
  • The split-merge step uses the total energy in the protojet as the ordering and overlap-measure variable
  • The IR safety of the split-merge step is not guaranteed for events consisting of two back-to-back identical heavy particles that decay. This is because of potential degeneracies in the ordering for the split-merge step.

    For moderate values of R the problem should not be too severe (or may even be absent for some values of the overlap parameter), however the user should be aware of the issue.

    The default split-merge scale may change at a later date to resolve this issue.

SISCone uses geometrical techniques to exhaustively consider all possible distinct cones. It then finds out which ones are stable and sends the result to the Tevatron Run-II type split-merge procedure for overlapping cones.

Four parameters govern the "physics" of the algorithm:

  • the cone_radius (this should be self-explanatory!)
  • the overlap_threshold is the parameter which dictates how much two jets must overlap (E_overlap/min(E1,E2)) if they are to be merged
  • Not all particles are in stable cones in the first round of searching for stable cones; one can therefore optionally have the the jet finder carry out additional passes of searching for stable cones among particles that were in no stable cone in previous passes — the maximum number of passes carried out is n_pass_max. If this is zero then additional passes are carried out until no new stable cones are found.
  • Protojet Emin: protojets that are below this Emin (default = 0) are discarded before each iteration of the split-merge loop.

One parameter governs some internal algorithmic shortcuts:

  • if "caching" is turned on then the last event clustered by siscone is stored – if the current event is identical and the cone_radius and n_pass_max are identical, then the only part of the clustering that needs to be rerun is the split-merge part, leading to significant speed gains; there is a small (O(N) storage and speed) penalty for caching, so it should be kept off (default) if only a single overlap_threshold is used.

The final jets can be accessed by requestion the inclusive_jets(...) from the ClusterSequence object. Note that these PseudoJets have their user_index() set to the index of the pass in which they were found (first pass = 0). NB: This does not currently work for jets that consist of a single particle.

For further information on the details of the algorithm see the SISCone paper, arXiv:0704.0292 [JHEP 0705:086,2007].

For documentation about the implementation, see the siscone/doc/html/index.html file.

Definition at line 94 of file SISConeSphericalPlugin.hh.

Member Enumeration Documentation

◆ SplitMergeScale

enum for the different split-merge scale choices; Note that order must be the same as in siscone

Enumerator
SM_E 

Energy (IR unsafe with momentum conservation).

SM_Etilde 

sum_{i \in jet} E_i [1+sin^2(theta_iJ)]

Definition at line 99 of file SISConeSphericalPlugin.hh.

Constructor & Destructor Documentation

◆ SISConeSphericalPlugin()

fastjet::SISConeSphericalPlugin::SISConeSphericalPlugin ( double cone_radius_in,
double overlap_threshold_in,
int n_pass_max_in = 0,
double protojet_Emin_in = 0.0,
bool caching_in = false,
SplitMergeScale split_merge_scale_in = SM_Etilde,
double split_merge_stopping_scale_in = 0.0 )
inline

Main constructor for the SISConeSpherical Plugin class.

Definition at line 107 of file SISConeSphericalPlugin.hh.

Member Function Documentation

◆ protojet_Emin()

double fastjet::SISConeSphericalPlugin::protojet_Emin ( ) const
inline

minimum energy for a protojet to be considered in the split-merge step of the algorithm

Definition at line 127 of file SISConeSphericalPlugin.hh.

◆ protojet_or_ghost_Emin()

double fastjet::SISConeSphericalPlugin::protojet_or_ghost_Emin ( ) const
inline

return the scale to be passed to SISCone as the protojet_Emin – if we have a ghost separation scale that is above the protojet_ptmin, then the ghost_separation_scale becomes the relevant one to use here

Definition at line 133 of file SISConeSphericalPlugin.hh.

◆ split_merge_scale()

SplitMergeScale fastjet::SISConeSphericalPlugin::split_merge_scale ( ) const
inline

indicates scale used in split-merge

Definition at line 137 of file SISConeSphericalPlugin.hh.

◆ set_split_merge_scale()

void fastjet::SISConeSphericalPlugin::set_split_merge_scale ( SplitMergeScale sms)
inline

sets scale used in split-merge

Definition at line 139 of file SISConeSphericalPlugin.hh.

◆ split_merge_use_E_weighted_splitting()

bool fastjet::SISConeSphericalPlugin::split_merge_use_E_weighted_splitting ( ) const
inline

indicate if the splittings are done using the anti-kt distance

Definition at line 142 of file SISConeSphericalPlugin.hh.

◆ set_split_merge_use_E_weighted_splitting()

void fastjet::SISConeSphericalPlugin::set_split_merge_use_E_weighted_splitting ( bool val)
inline

Definition at line 143 of file SISConeSphericalPlugin.hh.

◆ supports_ghosted_passive_areas()

virtual bool fastjet::SISConeSphericalPlugin::supports_ghosted_passive_areas ( ) const
inlinevirtual

overload the default as we don't provide support for passive areas.

Reimplemented from fastjet::SISConeBasePlugin.

Definition at line 148 of file SISConeSphericalPlugin.hh.

◆ description()

string fastjet::SISConeSphericalPlugin::description ( ) const
virtual

plugin description

Implements fastjet::SISConeBasePlugin.

Definition at line 89 of file SISConeSphericalPlugin.cc.

◆ run_clustering()

void fastjet::SISConeSphericalPlugin::run_clustering ( ClusterSequence & ) const
virtual

really do the clustering work

Implements fastjet::SISConeBasePlugin.

Definition at line 140 of file SISConeSphericalPlugin.cc.

◆ is_spherical()

virtual bool fastjet::SISConeSphericalPlugin::is_spherical ( ) const
inlinevirtual

returns true because this plugin is intended for spherical geometries (i.e.

it's an e+e- algorithm).

Reimplemented from fastjet::JetDefinition::Plugin.

Definition at line 156 of file SISConeSphericalPlugin.hh.

◆ reset_stored_plugin()

void fastjet::SISConeSphericalPlugin::reset_stored_plugin ( ) const
protectedvirtual

call the re-clustering itself

Implements fastjet::SISConeBasePlugin.

Definition at line 297 of file SISConeSphericalPlugin.cc.


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