FastJet 3.0.2
|
Transformer that prunes a jet. More...
#include <fastjet/tools/Pruner.hh>
Public Types | |
typedef PrunerStructure | StructureType |
A typedef that is needed to ensure that the PseudoJet::structure_of() template function works. | |
Public Member Functions | |
Pruner (const JetAlgorithm jet_alg, double zcut, double Rcut_factor) | |
minimal constructor, which takes a jet algorithm, sets the radius to JetDefinition::max_allowable_R (practically equivalent to infinity) and also tries to use a recombiner based on the one in the jet definition of the particular jet being pruned. | |
Pruner (const JetDefinition &jet_def, double zcut, double Rcut_factor) | |
alternative ctor in which the full reclustering jet definition can be specified. | |
Pruner (const JetDefinition &jet_def, FunctionOfPseudoJet< double > *zcut_dyn, FunctionOfPseudoJet< double > *Rcut_dyn) | |
alternative ctor in which the pt-fraction cut and angular distance cut are functions of the jet being pruned. | |
virtual PseudoJet | result (const PseudoJet &jet) const |
action on a single jet | |
virtual std::string | description () const |
description |
Transformer that prunes a jet.
This transformer prunes a jet according to the ideas presented in arXiv:0903.5081 (S.D. Ellis, C.K. Vermilion and J.R. Walsh).
The jet's constituents are reclustered with a user-specified jet definition, with the modification that objects i and j are only recombined if at least one of the following two criteria is satisfied:
If both these criteria fail, i and j are not recombined, the harder of i and j is kept, and the softer is rejected.
Usage:
Pruner pruner(jet_def, zcut, Rcut_factor); PseudoJet pruned_jet = pruner(jet);
The pruned_jet has a valid associated cluster sequence. In addition the subjets of the original jet that have been vetoed by pruning (i.e. have been 'pruned away') can be accessed using
vector<PseudoJet> rejected_subjets = pruned_jet.structure_of<Pruner>().rejected();
If the re-clustering happens to find more than a single inclusive jet (this should normally not happen if the radius of the jet definition used for the reclustering was set large enough), the hardest of these jets is retured as the result of the Pruner. The other jets can be accessed through
vector<PseudoJet> extra_jets = pruned_jet.structure_of<Pruner>().extra_jets();
Instead of using Rcut_factor and zcut, one can alternatively construct a Pruner by passing two (pointers to) functions of PseudoJet that dynamically compute the Rcut and zcut to be used for the jet being pruned.
When the jet being pruned has area support and explicit ghosts, the resulting pruned jet will likewise have area.
fastjet::Pruner::Pruner | ( | const JetAlgorithm | jet_alg, |
double | zcut, | ||
double | Rcut_factor | ||
) | [inline] |
minimal constructor, which takes a jet algorithm, sets the radius to JetDefinition::max_allowable_R (practically equivalent to infinity) and also tries to use a recombiner based on the one in the jet definition of the particular jet being pruned.
jet_alg | the jet algorithm for the internal clustering |
zcut | pt-fraction cut in the pruning |
Rcut_factor | the angular distance cut in the pruning will be Rcut_factor * 2m/pt |
fastjet::Pruner::Pruner | ( | const JetDefinition & | jet_def, |
double | zcut, | ||
double | Rcut_factor | ||
) | [inline] |
alternative ctor in which the full reclustering jet definition can be specified.
jet_def | the jet definition for the internal clustering |
zcut | pt-fraction cut in the pruning |
Rcut_factor | the angular distance cut in the pruning will be Rcut_factor * 2m/pt |
fastjet::Pruner::Pruner | ( | const JetDefinition & | jet_def, |
FunctionOfPseudoJet< double > * | zcut_dyn, | ||
FunctionOfPseudoJet< double > * | Rcut_dyn | ||
) |
alternative ctor in which the pt-fraction cut and angular distance cut are functions of the jet being pruned.
jet_def | the jet definition for the internal clustering |
zcut_dyn | dynamic pt-fraction cut in the pruning |
Rcut_dyn | dynamic angular distance cut in the pruning |